保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'use strict';
 
var GetIntrinsic = require('get-intrinsic');
var $TypeError = GetIntrinsic('%TypeError%');
 
var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor');
var IsArray = require('./IsArray');
var OrdinaryObjectCreate = require('./OrdinaryObjectCreate');
 
// https://262.ecma-international.org/6.0/#sec-ordinarycreatefromconstructor
 
module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) {
    GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic
    var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto);
    var slots = arguments.length < 3 ? [] : arguments[2];
    if (!IsArray(slots)) {
        throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List');
    }
    return OrdinaryObjectCreate(proto, slots);
};