Sha256: e793966dfa8a67858ae7899b6a59a20902231e9282a8f704d19944d0575bc915
Contents?: true
Size: 1.05 KB
Versions: 243
Compression:
Stored size: 1.05 KB
Contents
'use strict'; var GetIntrinsic = require('get-intrinsic'); var $Function = GetIntrinsic('%Function%'); var $TypeError = GetIntrinsic('%TypeError%'); var $SyntaxError = GetIntrinsic('%SyntaxError%'); var Get = require('./Get'); var IsConstructor = require('./IsConstructor'); var Type = require('./Type'); // https://262.ecma-international.org/6.0/#sec-getprototypefromconstructor module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic if (Type(intrinsic) !== 'Object') { throw new $TypeError('intrinsicDefaultProto must be an object'); } if (!IsConstructor(constructor)) { throw new $TypeError('Assertion failed: `constructor` must be a constructor'); } var proto = Get(constructor, 'prototype'); if (Type(proto) !== 'Object') { if (!(constructor instanceof $Function)) { // ignore other realms, for now throw new $SyntaxError('cross-realm constructors not currently supported'); } proto = intrinsic; } return proto; };
Version data entries
243 entries across 27 versions & 2 rubygems