提交 c45db217 编写于 作者: MengZian's avatar MengZian

1693145244301

上级 3a612ce5
/*!
arrayLikeMethods.js
date 1692547463377 [Mon Aug 21 2023 00:04:23 GMT+0800 (China Standard Time)]
date 1693145244301 [Sun Aug 27 2023 22:07:24 GMT+0800 (China Standard Time)]
(c) 2023 Bright_Leader
Licensed under the Apache-2.0.
*/
......@@ -163,9 +163,8 @@ ESLint [ http://eslint.org/ ] configurations
require /* eslint-disable-line no-undef */
===typeFunction)&& /* NodeJS environment [ http://nodejs.org ] or some other environment that uses "module.exports" to import modules? */
function(){
const exports_key="exports";
let exports;
isObjectType(exports=var0[exports_key])||(var0[exports_key]=exports=tryES5CreateNullPrototypeObject());
let key,exports;
isObjectType(exports=var0[key="exports"])||(var0[key]=exports=tryES5CreateNullPrototypeObject());
exports[source_key]="module.exports";
exports[isAsynchronous_key]=isAsynchronous;
factory(exports,var1);
......@@ -308,12 +307,12 @@ const isNotInfinity=function(value){
return value!==infinity&&value!==negativeInfinity;
};
const isNormalNumber=function(value){
const isFiniteNumber=function(value){
return isNumber(value)&&isNotNaN(value)&&isNotInfinity(value);
};
const forceToInteger=function(value){
return isNormalNumber(value)?value-(value%1):value^0;
return isFiniteNumber(value)?value-(value%1):value^0;
};
const UNSIGNED_INT32_MAX=4294967295;
......@@ -534,16 +533,14 @@ const definePropertyIsFunction=isFunction(defineProperty);
return function(target,propertyName,propertyValue,isWritable,isEnumerable,isConfigurable){
returnOrThrowObjectType(target);
definePropertyIsFunction?defineProperty(
target,
propertyName,
{
value:propertyValue,
writable:isWritable,
enumerable:isEnumerable,
configurable:isConfigurable
}
):(target[propertyName]=propertyValue);
let tempObject;
if(definePropertyIsFunction){
(tempObject=new Object_constructor()).value=propertyValue;
tempObject.writable=isWritable;
tempObject.enumerable=isEnumerable;
tempObject.configurable=isConfigurable;
defineProperty(target,propertyName,tempObject);
}else target[propertyName]=propertyValue;
return target;
};
}();
......@@ -838,40 +835,34 @@ const nSymbol=(
globalObject.Symbol /* http://262.ecma-international.org/6.0/#sec-symbol-objects */
);
const nSymbolIsFunction=(
isFunction(nSymbol)&&
isFunction(nSymbol["for"])&& /* http://262.ecma-international.org/6.0/#sec-symbol.for */
isFunction(nSymbol.keyFor) /* http://262.ecma-international.org/6.0/#sec-symbol.keyfor */
);
function isSymbol(value){
return typeof value==="symbol"; /* http://262.ecma-international.org/6.0/#sec-typeof-operator-runtime-semantics-evaluation */
}
const tryES6AssignWellKnownSymbolProperty=function(target,symbolKeyName,propertyValue,writable,enumerable,configurable){
tryES5DefineProperty(
returnOrThrowObjectType(target),
const iterator_key="iterator";
"@@"+symbolKeyName,
propertyValue,
const nSymbolIsFunction=(
isFunction(nSymbol)&&
isSymbol(nSymbol[iterator_key]) /* http://262.ecma-international.org/6.0/#sec-symbol.iterator */
);
writable,enumerable,configurable
);
const retrieveWellKnownSymbol=function(symbolKeyName){
let tempKey;
tryES5DefineProperty(
target,
return(
nSymbolIsFunction&&
symbolKeyName in nSymbol&&
isSymbol(tempKey=nSymbol[symbolKeyName]) /* http://262.ecma-international.org/6.0/#sec-well-known-symbols */
)?tempKey:"@@"+symbolKeyName;
};
(
nSymbolIsFunction&&
symbolKeyName in nSymbol&&
isSymbol(tempKey=nSymbol[symbolKeyName]) /* http://262.ecma-international.org/6.0/#sec-well-known-symbols */
)?tempKey:"Symbol."+symbolKeyName,
propertyValue,
const toStringTag_key="toStringTag",
isConcatSpreadable_key="isConcatSpreadable",
unscopables_key="unscopables";
writable,enumerable,configurable
);
return target;
};
const iterator_wellKnownSymbol=retrieveWellKnownSymbol(iterator_key),
toStringTag_wellKnownSymbol=retrieveWellKnownSymbol(toStringTag_key), /* http://262.ecma-international.org/6.0/#sec-symbol.tostringtag */
isConcatSpreadable_wellKnownSymbol=retrieveWellKnownSymbol(isConcatSpreadable_key), /* http://262.ecma-international.org/6.0/#sec-symbol.isconcatspreadable */
unscopables_wellKnownSymbol=retrieveWellKnownSymbol(unscopables_key); /* http://262.ecma-international.org/6.0/#sec-symbol.unscopables */
function returnThis_makeFunction(){
return function(){
......@@ -879,8 +870,6 @@ function returnThis_makeFunction(){
};
}
const iterator_key="iterator";
const IterableIterator=function(){ /* http://262.ecma-international.org/6.0/#sec-iterator-interface */
/* http://262.ecma-international.org/6.0/#sec-iterable-interface */
......@@ -932,10 +921,10 @@ tryES5DefineProperty(
False,False,False
);
tryES6AssignWellKnownSymbolProperty(
tryES5DefineProperty(
constructorFn_prototype,
iterator_key, /* http://262.ecma-international.org/6.0/#sec-symbol.iterator */
iterator_wellKnownSymbol,
returnThis_makeFunction(), /* http://262.ecma-international.org/6.0/#sec-%iteratorprototype%-@@iterator */
False,False,False
......@@ -1026,10 +1015,10 @@ so we ignore this "if" case entirely and jump to step 9 directly.
False,False,False
);
tryES6AssignWellKnownSymbolProperty(
tryES5DefineProperty(
ArrayIteratorPrototype,
"toStringTag", /* http://262.ecma-international.org/6.0/#sec-symbol.tostringtag */
toStringTag_wellKnownSymbol,
"Array Iterator", /* http://262.ecma-international.org/6.0/#sec-%arrayiteratorprototype%-@@tostringtag */
False,False,True
......@@ -1344,30 +1333,30 @@ http://www.ecma-international.org/wp-content/uploads/ECMA-262_7th_edition_june_2
useDefaultDefinePropertyConfig?True:configurable
);
tryES6AssignWellKnownSymbolProperty(
tryES5DefineProperty(
target,
"isConcatSpreadable", /* http://262.ecma-international.org/6.0/#sec-symbol.isconcatspreadable */
isConcatSpreadable_wellKnownSymbol,
True,
useDefaultDefinePropertyConfig?True:writable,
useDefaultDefinePropertyConfig?False:enumerable,
useDefaultDefinePropertyConfig?True:configurable
);
tryES6AssignWellKnownSymbolProperty(
tryES5DefineProperty(
target,
iterator_key,
iterator_wellKnownSymbol,
arrayLikeValues,
useDefaultDefinePropertyConfig?True:writable,
useDefaultDefinePropertyConfig?False:enumerable,
useDefaultDefinePropertyConfig?True:configurable
);
tryES6AssignWellKnownSymbolProperty(
tryES5DefineProperty(
target,
"unscopables", /* http://262.ecma-international.org/6.0/#sec-symbol.unscopables */
unscopables_wellKnownSymbol,
getArraySymbolunscopables(tryES5CreateNullPrototypeObject()),
useDefaultDefinePropertyConfig?False:writable,
......@@ -1384,7 +1373,7 @@ const exportStaticMethods=function(){
const assist=function(target){
returnOrThrowObjectType(target).isInteger=isInteger;
target.isNotInfinity=isNotInfinity;
target.isNormalNumber=isNormalNumber;
target.isFiniteNumber=isFiniteNumber;
target.forceToInteger=forceToInteger;
target.isUint32=isUint32;
target.isSint32=isSint32;
......@@ -1493,6 +1482,31 @@ temp0[key_plus_value_itemKind]=key_plus_value_itemKind;
createArrayIterator.allowedKinds=temp0;
(temp0=tryES5CreateNullPrototypeObject())[iterator_key]=iterator_wellKnownSymbol;
temp0[toStringTag_key]=toStringTag_wellKnownSymbol;
temp0[isConcatSpreadable_key]=isConcatSpreadable_wellKnownSymbol;
temp0[unscopables_key]=unscopables_wellKnownSymbol;
tryES5DefineProperty(
objectToExport,
"wellKnownSymbols",temp0,
True,True,True
);
(temp0=tryES5CreateNullPrototypeObject())[IteratedObject_doubleBracketString]=IteratedObject_internalSlot;
temp0[ArrayIteratorNextIndex_doubleBracketString]=ArrayIteratorNextIndex_internalSlot;
temp0[ArrayIterationKind_doubleBracketString]=ArrayIterationKind_internalSlot;
tryES5DefineProperty(
objectToExport,
"uniqueSymbols",temp0,
True,True,True
);
(temp0=tryES5CreateNullPrototypeObject()).exportStaticMethods=exportStaticMethods;
temp0.exportInstanceMethods=exportInstanceMethods;
temp0.exportConstructors=exportConstructors;
......@@ -1504,7 +1518,7 @@ mergeObject(
);
(temp0=tryES5CreateNullPrototypeObject()).author="Bright_Leader";
temp0.date=1692547463377;
temp0.date=1693145244301;
mergeObject(
objectToExport,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册