403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/philiprehberger-nextjs/node_modules/es-abstract/2025/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/philiprehberger-nextjs/node_modules/es-abstract/2025/GetSetRecord.js
'use strict';

var $RangeError = require('es-errors/range');
var $TypeError = require('es-errors/type');

var Get = require('./Get');
var IsCallable = require('./IsCallable');
var ToIntegerOrInfinity = require('./ToIntegerOrInfinity');
var ToNumber = require('./ToNumber');

var isNaN = require('..//helpers/isNaN');
var isObject = require('es-object-atoms/isObject');

var callBind = require('call-bind');
var isSet = require('is-set');
var stopIterationIterator = require('stop-iteration-iterator');

// https://262.ecma-international.org/16.0/#sec-getsetrecord

module.exports = function GetSetRecord(obj) {
	if (!isObject(obj)) {
		throw new $TypeError('obj is not an Object'); // step 1
	}

	var rawSize = Get(obj, 'size'); // step 2

	var numSize = ToNumber(rawSize); // step 3

	//  4. NOTE: If rawSize is undefined, then numSize will be NaN.
	if (isNaN(numSize)) {
		throw new $TypeError('`size` is not a non-NaN Number'); // step 5
	}

	var intSize = ToIntegerOrInfinity(numSize); // step 6

	if (intSize < 0) {
		throw new $RangeError('set size must be non-negative'); // step 7
	}

	var has = Get(obj, 'has'); // step 8

	if (!IsCallable(has)) {
		throw new $TypeError('has is not a function'); // step 9
	}

	var keys = Get(obj, 'keys'); // step 10
	if (!IsCallable(keys)) {
		throw new $TypeError('keys is not a function'); // step 11
	}
	/* globals StopIteration: false */
	if (isSet(obj) && typeof StopIteration === 'object') {
		var boundKeys = callBind(keys);
		keys = function keys() { // eslint-disable-line no-shadow
			return stopIterationIterator(boundKeys(this));
		};
	}

	return {
		'[[SetObject]]': obj,
		'[[Size]]': intSize,
		'[[Has]]': has,
		'[[Keys]]': keys
	}; // step 12
};

Youez - 2016 - github.com/yon3zu
LinuXploit