Sha256: 9f33c9e0fba4b5605ca95af4f267ed266cfe5a7ec0c5a739353a37d4b5eee5f3

Contents?: true

Size: 1.03 KB

Versions: 216

Compression:

Stored size: 1.03 KB

Contents

'use strict';

var GetIntrinsic = require('get-intrinsic');

var $TypeError = GetIntrinsic('%TypeError%');

var $setProto = require('../helpers/setProto');

var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf');
var Type = require('./Type');

// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof

module.exports = function OrdinarySetPrototypeOf(O, V) {
	if (Type(V) !== 'Object' && Type(V) !== 'Null') {
		throw new $TypeError('Assertion failed: V must be Object or Null');
	}
	/*
	var extensible = IsExtensible(O);
	var current = OrdinaryGetPrototypeOf(O);
	if (SameValue(V, current)) {
		return true;
	}
	if (!extensible) {
		return false;
	}
	*/
	try {
		$setProto(O, V);
	} catch (e) {
		return false;
	}
	return OrdinaryGetPrototypeOf(O) === V;
	/*
	var p = V;
	var done = false;
	while (!done) {
		if (p === null) {
			done = true;
		} else if (SameValue(p, O)) {
			return false;
		} else {
			if (wat) {
				done = true;
			} else {
				p = p.[[Prototype]];
			}
		}
	}
	O.[[Prototype]] = V;
	return true;
	*/
};

Version data entries

216 entries across 27 versions & 2 rubygems

Version Path
immosquare-cleaner-0.1.32 node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2023/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2021/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2022/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2021/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2022/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2023/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js