Show More
Commit Description:
submission report
Commit Description:
submission report
References:
File last commit:
Show/Diff file:
Action:
node_modules/es-abstract/2017/Get.js
| 30 lines
| 734 B
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var GetIntrinsic = require('../GetIntrinsic'); | ||||
var $TypeError = GetIntrinsic('%TypeError%'); | ||||
var inspect = require('object-inspect'); | ||||
var IsPropertyKey = require('./IsPropertyKey'); | ||||
var Type = require('./Type'); | ||||
/** | ||||
* 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p | ||||
* 1. Assert: Type(O) is Object. | ||||
* 2. Assert: IsPropertyKey(P) is true. | ||||
* 3. Return O.[[Get]](P, O). | ||||
*/ | ||||
module.exports = function Get(O, P) { | ||||
// 7.3.1.1 | ||||
if (Type(O) !== 'Object') { | ||||
throw new $TypeError('Assertion failed: Type(O) is not Object'); | ||||
} | ||||
// 7.3.1.2 | ||||
if (!IsPropertyKey(P)) { | ||||
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); | ||||
} | ||||
// 7.3.1.3 | ||||
return O[P]; | ||||
}; | ||||