Skip to content
Permalink
Newer
Older
100644 20 lines (16 sloc) 827 Bytes
Ignoring revisions in .git-blame-ignore-revs.
September 14, 2020 10:42
1
'use strict';
2
July 27, 2021 16:54
3
var GetIntrinsic = require('get-intrinsic');
September 14, 2020 10:42
4
var $TypeError = GetIntrinsic('%TypeError%');
5
6
var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor');
7
var IsArray = require('./IsArray');
8
var OrdinaryObjectCreate = require('./OrdinaryObjectCreate');
9
July 27, 2021 16:54
10
// https://262.ecma-international.org/6.0/#sec-ordinarycreatefromconstructor
September 14, 2020 10:42
11
12
module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) {
13
GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic
14
var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto);
15
var slots = arguments.length < 3 ? [] : arguments[2];
16
if (!IsArray(slots)) {
17
throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List');
18
}
19
return OrdinaryObjectCreate(proto, slots);
20
};