Show More
Commit Description:
submission report
Commit Description:
submission report
References:
File last commit:
Show/Diff file:
Action:
node_modules/es-abstract/2018/CreateMethodProperty.js
| 40 lines
| 985 B
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var GetIntrinsic = require('../GetIntrinsic'); | ||||
var $TypeError = GetIntrinsic('%TypeError%'); | ||||
var DefineOwnProperty = require('../helpers/DefineOwnProperty'); | ||||
var FromPropertyDescriptor = require('./FromPropertyDescriptor'); | ||||
var IsDataDescriptor = require('./IsDataDescriptor'); | ||||
var IsPropertyKey = require('./IsPropertyKey'); | ||||
var SameValue = require('./SameValue'); | ||||
var Type = require('./Type'); | ||||
// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty | ||||
module.exports = function CreateMethodProperty(O, P, V) { | ||||
if (Type(O) !== 'Object') { | ||||
throw new $TypeError('Assertion failed: Type(O) is not Object'); | ||||
} | ||||
if (!IsPropertyKey(P)) { | ||||
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); | ||||
} | ||||
var newDesc = { | ||||
'[[Configurable]]': true, | ||||
'[[Enumerable]]': false, | ||||
'[[Value]]': V, | ||||
'[[Writable]]': true | ||||
}; | ||||
return DefineOwnProperty( | ||||
IsDataDescriptor, | ||||
SameValue, | ||||
FromPropertyDescriptor, | ||||
O, | ||||
P, | ||||
newDesc | ||||
); | ||||
}; | ||||