| 123456789101112131415161718192021222324252627282930313233343536373839404142 | 'use strict';var GetIntrinsic = require('get-intrinsic');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;};
 |