Intial Commit
This commit is contained in:
42
nodered/rootfs/data/node_modules/es-abstract/2015/GetMethod.js
generated
vendored
Normal file
42
nodered/rootfs/data/node_modules/es-abstract/2015/GetMethod.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
|
||||
var GetIntrinsic = require('../GetIntrinsic');
|
||||
|
||||
var $TypeError = GetIntrinsic('%TypeError%');
|
||||
|
||||
var GetV = require('./GetV');
|
||||
var IsCallable = require('./IsCallable');
|
||||
var IsPropertyKey = require('./IsPropertyKey');
|
||||
|
||||
/**
|
||||
* 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod
|
||||
* 1. Assert: IsPropertyKey(P) is true.
|
||||
* 2. Let func be GetV(O, P).
|
||||
* 3. ReturnIfAbrupt(func).
|
||||
* 4. If func is either undefined or null, return undefined.
|
||||
* 5. If IsCallable(func) is false, throw a TypeError exception.
|
||||
* 6. Return func.
|
||||
*/
|
||||
|
||||
module.exports = function GetMethod(O, P) {
|
||||
// 7.3.9.1
|
||||
if (!IsPropertyKey(P)) {
|
||||
throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true');
|
||||
}
|
||||
|
||||
// 7.3.9.2
|
||||
var func = GetV(O, P);
|
||||
|
||||
// 7.3.9.4
|
||||
if (func == null) {
|
||||
return void 0;
|
||||
}
|
||||
|
||||
// 7.3.9.5
|
||||
if (!IsCallable(func)) {
|
||||
throw new $TypeError(P + 'is not a function');
|
||||
}
|
||||
|
||||
// 7.3.9.6
|
||||
return func;
|
||||
};
|
||||
Reference in New Issue
Block a user