|  | // Copyright 2015 the V8 project authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | assertThrows(function() { | 
|  | Object.getOwnPropertyDescriptor(null, 'x'); | 
|  | }, TypeError); | 
|  |  | 
|  |  | 
|  | assertThrows(function() { | 
|  | Object.getOwnPropertyDescriptor(undefined, 'x'); | 
|  | }, TypeError); | 
|  |  | 
|  |  | 
|  | assertEquals({ | 
|  | configurable: false, | 
|  | enumerable: false, | 
|  | value: 3, | 
|  | writable: false, | 
|  | }, Object.getOwnPropertyDescriptor('abc', 'length')); | 
|  |  | 
|  |  | 
|  | assertEquals({ | 
|  | configurable: false, | 
|  | enumerable: true, | 
|  | value: 'a', | 
|  | writable: false, | 
|  | }, Object.getOwnPropertyDescriptor('abc', 0)); | 
|  |  | 
|  |  | 
|  | assertSame(undefined, Object.getOwnPropertyDescriptor(42, 'x')); | 
|  | assertSame(undefined, Object.getOwnPropertyDescriptor(true, 'x')); | 
|  | assertSame(undefined, Object.getOwnPropertyDescriptor(false, 'x')); | 
|  | assertSame(undefined, Object.getOwnPropertyDescriptor(Symbol(), 'x')); |