core-js-pure
Advanced tools
Comparing version 3.33.1 to 3.33.2
@@ -13,3 +13,3 @@ 'use strict'; | ||
module.exports = function from(obj) { | ||
module.exports = function (obj) { | ||
var object = anObject(obj); | ||
@@ -16,0 +16,0 @@ var alreadyAsync = true; |
@@ -6,4 +6,8 @@ 'use strict'; | ||
module.exports = function (CONSTRUCTOR, METHOD) { | ||
var $namespace = path[CONSTRUCTOR + 'Prototype']; | ||
return $namespace && $namespace[METHOD] || global[CONSTRUCTOR].prototype[METHOD]; | ||
var Namespace = path[CONSTRUCTOR + 'Prototype']; | ||
var pureMethod = Namespace && Namespace[METHOD]; | ||
if (pureMethod) return pureMethod; | ||
var NativeConstructor = global[CONSTRUCTOR]; | ||
var NativePrototype = NativeConstructor && NativeConstructor.prototype; | ||
return NativePrototype && NativePrototype[METHOD]; | ||
}; |
@@ -8,7 +8,7 @@ 'use strict'; | ||
})('versions', []).push({ | ||
version: '3.33.1', | ||
version: '3.33.2', | ||
mode: IS_PURE ? 'pure' : 'global', | ||
copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)', | ||
license: 'https://github.com/zloirock/core-js/blob/v3.33.1/LICENSE', | ||
license: 'https://github.com/zloirock/core-js/blob/v3.33.2/LICENSE', | ||
source: 'https://github.com/zloirock/core-js' | ||
}); |
@@ -12,3 +12,4 @@ 'use strict'; | ||
var $TypeError = TypeError; | ||
var valid = /^[\da-z]+$/; | ||
var pow = Math.pow; | ||
var valid = /^[\d.a-z]+$/; | ||
var charAt = uncurryThis(''.charAt); | ||
@@ -18,2 +19,3 @@ var exec = uncurryThis(valid.exec); | ||
var stringSlice = uncurryThis(''.slice); | ||
var split = uncurryThis(''.split); | ||
@@ -25,3 +27,2 @@ // `Number.fromString` method | ||
var sign = 1; | ||
var R, mathNum; | ||
if (typeof string != 'string') throw new $TypeError(INVALID_NUMBER_REPRESENTATION); | ||
@@ -34,9 +35,11 @@ if (!string.length) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION); | ||
} | ||
R = radix === undefined ? 10 : toIntegerOrInfinity(radix); | ||
var R = radix === undefined ? 10 : toIntegerOrInfinity(radix); | ||
if (R < 2 || R > 36) throw new $RangeError(INVALID_RADIX); | ||
if (!exec(valid, string) || numberToString(mathNum = parseInt(string, R), R) !== string) { | ||
throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION); | ||
} | ||
if (!exec(valid, string)) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION); | ||
var parts = split(string, '.'); | ||
var mathNum = parseInt(parts[0], R); | ||
if (parts.length > 1) mathNum += parseInt(parts[1], R) / pow(R, parts[1].length); | ||
if (numberToString(mathNum, R) !== string) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION); | ||
return sign * mathNum; | ||
} | ||
}); |
@@ -5,3 +5,3 @@ 'use strict'; | ||
var global = require('../internals/global'); | ||
var getBuiltin = require('../internals/get-built-in'); | ||
var getBuiltIn = require('../internals/get-built-in'); | ||
var uncurryThis = require('../internals/function-uncurry-this'); | ||
@@ -26,3 +26,4 @@ var fails = require('../internals/fails'); | ||
var SetHelpers = require('../internals/set-helpers'); | ||
var arrayBufferTransfer = require('../internals/array-buffer-transfer'); | ||
var setIterate = require('../internals/set-iterate'); | ||
var detachTransferable = require('../internals/detach-transferable'); | ||
var ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable'); | ||
@@ -35,14 +36,5 @@ var PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer'); | ||
var Error = global.Error; | ||
var EvalError = global.EvalError; | ||
var RangeError = global.RangeError; | ||
var ReferenceError = global.ReferenceError; | ||
var SyntaxError = global.SyntaxError; | ||
var TypeError = global.TypeError; | ||
var URIError = global.URIError; | ||
var PerformanceMark = global.PerformanceMark; | ||
var WebAssembly = global.WebAssembly; | ||
var CompileError = WebAssembly && WebAssembly.CompileError || Error; | ||
var LinkError = WebAssembly && WebAssembly.LinkError || Error; | ||
var RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error; | ||
var DOMException = getBuiltin('DOMException'); | ||
var DOMException = getBuiltIn('DOMException'); | ||
var Map = MapHelpers.Map; | ||
@@ -54,3 +46,4 @@ var mapHas = MapHelpers.has; | ||
var setAdd = SetHelpers.add; | ||
var objectKeys = getBuiltin('Object', 'keys'); | ||
var setHas = SetHelpers.has; | ||
var objectKeys = getBuiltIn('Object', 'keys'); | ||
var push = uncurryThis([].push); | ||
@@ -70,3 +63,3 @@ var thisBooleanValue = uncurryThis(true.valueOf); | ||
var number = structuredCloneImplementation(Object(7)); | ||
return set2 === set1 || !set2.has(7) || typeof number != 'object' || +number !== 7; | ||
return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7; | ||
}) && structuredCloneImplementation; | ||
@@ -167,6 +160,6 @@ }; | ||
// `ArrayBuffer#slice` and `DataView` are not available in old FF | ||
if (!DataView && typeof value.slice != 'function') throwUnpolyfillable('ArrayBuffer'); | ||
if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer'); | ||
// detached buffers throws in `DataView` and `.slice` | ||
try { | ||
if (typeof value.slice == 'function' && !value.resizable) { | ||
if (isCallable(value.slice) && !value.resizable) { | ||
clone = value.slice(0); | ||
@@ -201,9 +194,3 @@ } else { | ||
var Placeholder = function (object, type, metadata) { | ||
this.object = object; | ||
this.type = type; | ||
this.metadata = metadata; | ||
}; | ||
var structuredCloneInternal = function (value, map, transferredBuffers) { | ||
var structuredCloneInternal = function (value, map) { | ||
if (isSymbol(value)) throwUncloneable('Symbol'); | ||
@@ -241,30 +228,17 @@ if (!isObject(value)) return value; | ||
case 'AggregateError': | ||
cloned = new (getBuiltin('AggregateError'))([]); | ||
cloned = new (getBuiltIn(name))([]); | ||
break; | ||
case 'EvalError': | ||
cloned = new EvalError(); | ||
break; | ||
case 'RangeError': | ||
cloned = new RangeError(); | ||
break; | ||
case 'ReferenceError': | ||
cloned = new ReferenceError(); | ||
break; | ||
case 'SuppressedError': | ||
case 'SyntaxError': | ||
cloned = new SyntaxError(); | ||
break; | ||
case 'TypeError': | ||
cloned = new TypeError(); | ||
break; | ||
case 'URIError': | ||
cloned = new URIError(); | ||
cloned = new (getBuiltIn(name))(); | ||
break; | ||
case 'CompileError': | ||
cloned = new CompileError(); | ||
break; | ||
case 'LinkError': | ||
cloned = new LinkError(); | ||
break; | ||
case 'RuntimeError': | ||
cloned = new RuntimeError(); | ||
cloned = new (getBuiltIn('WebAssembly', name))(); | ||
break; | ||
@@ -280,5 +254,3 @@ default: | ||
case 'SharedArrayBuffer': | ||
cloned = transferredBuffers | ||
? new Placeholder(value, type) | ||
: cloneBuffer(value, map, type); | ||
cloned = cloneBuffer(value, map, type); | ||
break; | ||
@@ -299,5 +271,3 @@ case 'DataView': | ||
length = type === 'DataView' ? value.byteLength : value.length; | ||
cloned = transferredBuffers | ||
? new Placeholder(value, type, { offset: value.byteOffset, length: length }) | ||
: cloneView(value, type, value.byteOffset, length, map); | ||
cloned = cloneView(value, type, value.byteOffset, length, map); | ||
break; | ||
@@ -307,6 +277,6 @@ case 'DOMQuad': | ||
cloned = new DOMQuad( | ||
structuredCloneInternal(value.p1, map, transferredBuffers), | ||
structuredCloneInternal(value.p2, map, transferredBuffers), | ||
structuredCloneInternal(value.p3, map, transferredBuffers), | ||
structuredCloneInternal(value.p4, map, transferredBuffers) | ||
structuredCloneInternal(value.p1, map), | ||
structuredCloneInternal(value.p2, map), | ||
structuredCloneInternal(value.p3, map), | ||
structuredCloneInternal(value.p4, map) | ||
); | ||
@@ -332,3 +302,3 @@ } catch (error) { | ||
for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { | ||
dataTransfer.items.add(structuredCloneInternal(value[i], map, transferredBuffers)); | ||
dataTransfer.items.add(structuredCloneInternal(value[i], map)); | ||
} | ||
@@ -342,3 +312,3 @@ cloned = dataTransfer.files; | ||
cloned = new ImageData( | ||
structuredCloneInternal(value.data, map, transferredBuffers), | ||
structuredCloneInternal(value.data, map), | ||
value.width, | ||
@@ -440,7 +410,7 @@ value.height, | ||
key = keys[i]; | ||
createProperty(cloned, key, structuredCloneInternal(value[key], map, transferredBuffers)); | ||
createProperty(cloned, key, structuredCloneInternal(value[key], map)); | ||
} break; | ||
case 'Map': | ||
value.forEach(function (v, k) { | ||
mapSet(cloned, structuredCloneInternal(k, map, transferredBuffers), structuredCloneInternal(v, map, transferredBuffers)); | ||
mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); | ||
}); | ||
@@ -450,16 +420,19 @@ break; | ||
value.forEach(function (v) { | ||
setAdd(cloned, structuredCloneInternal(v, map, transferredBuffers)); | ||
setAdd(cloned, structuredCloneInternal(v, map)); | ||
}); | ||
break; | ||
case 'Error': | ||
createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map, transferredBuffers)); | ||
createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); | ||
if (hasOwn(value, 'cause')) { | ||
createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map, transferredBuffers)); | ||
createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); | ||
} | ||
if (name === 'AggregateError') { | ||
cloned.errors = structuredCloneInternal(value.errors, map, transferredBuffers); | ||
cloned.errors = structuredCloneInternal(value.errors, map); | ||
} else if (name === 'SuppressedError') { | ||
cloned.error = structuredCloneInternal(value.error, map); | ||
cloned.suppressed = structuredCloneInternal(value.suppressed, map); | ||
} // break omitted | ||
case 'DOMException': | ||
if (ERROR_STACK_INSTALLABLE) { | ||
createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map, transferredBuffers)); | ||
createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); | ||
} | ||
@@ -471,72 +444,2 @@ } | ||
var replacePlaceholders = function (value, map) { | ||
if (!isObject(value)) return value; | ||
if (mapHas(map, value)) return mapGet(map, value); | ||
var type, object, metadata, i, length, keys, key, replacement; | ||
if (value instanceof Placeholder) { | ||
type = value.type; | ||
object = value.object; | ||
switch (type) { | ||
case 'ArrayBuffer': | ||
case 'SharedArrayBuffer': | ||
replacement = cloneBuffer(object, map, type); | ||
break; | ||
case 'DataView': | ||
case 'Int8Array': | ||
case 'Uint8Array': | ||
case 'Uint8ClampedArray': | ||
case 'Int16Array': | ||
case 'Uint16Array': | ||
case 'Int32Array': | ||
case 'Uint32Array': | ||
case 'Float16Array': | ||
case 'Float32Array': | ||
case 'Float64Array': | ||
case 'BigInt64Array': | ||
case 'BigUint64Array': | ||
metadata = value.metadata; | ||
replacement = cloneView(object, type, metadata.offset, metadata.length, map); | ||
} | ||
} else switch (classof(value)) { | ||
case 'Array': | ||
case 'Object': | ||
keys = objectKeys(value); | ||
for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { | ||
key = keys[i]; | ||
value[key] = replacePlaceholders(value[key], map); | ||
} break; | ||
case 'Map': | ||
replacement = new Map(); | ||
value.forEach(function (v, k) { | ||
mapSet(replacement, replacePlaceholders(k, map), replacePlaceholders(v, map)); | ||
}); | ||
break; | ||
case 'Set': | ||
replacement = new Set(); | ||
value.forEach(function (v) { | ||
setAdd(replacement, replacePlaceholders(v, map)); | ||
}); | ||
break; | ||
case 'Error': | ||
value.message = replacePlaceholders(value.message, map); | ||
if (hasOwn(value, 'cause')) { | ||
value.cause = replacePlaceholders(value.cause, map); | ||
} | ||
if (value.name === 'AggregateError') { | ||
value.errors = replacePlaceholders(value.errors, map); | ||
} // break omitted | ||
case 'DOMException': | ||
if (ERROR_STACK_INSTALLABLE) { | ||
value.stack = replacePlaceholders(value.stack, map); | ||
} | ||
} | ||
mapSet(map, value, replacement || value); | ||
return replacement || value; | ||
}; | ||
var tryToTransfer = function (rawTransfer, map) { | ||
@@ -553,3 +456,3 @@ if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence'); | ||
var length = lengthOfArrayLike(transfer); | ||
var buffers = []; | ||
var buffers = new Set(); | ||
var value, type, C, transferred, canvas, context; | ||
@@ -562,9 +465,11 @@ | ||
if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) { | ||
throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); | ||
} | ||
if (type === 'ArrayBuffer') { | ||
push(buffers, value); | ||
setAdd(buffers, value); | ||
continue; | ||
} | ||
if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); | ||
if (PROPER_STRUCTURED_CLONE_TRANSFER) { | ||
@@ -608,21 +513,14 @@ transferred = nativeStructuredClone(value, { transfer: [value] }); | ||
var tryToTransferBuffers = function (transfer, map) { | ||
var i = 0; | ||
var length = lengthOfArrayLike(transfer); | ||
var value, transferred; | ||
while (i < length) { | ||
value = transfer[i++]; | ||
if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); | ||
if (arrayBufferTransfer) { | ||
transferred = arrayBufferTransfer(value, undefined, true); | ||
var detachBuffers = function (buffers) { | ||
setIterate(buffers, function (buffer) { | ||
if (PROPER_STRUCTURED_CLONE_TRANSFER) { | ||
nativeRestrictedStructuredClone(buffer, { transfer: [buffer] }); | ||
} else if (isCallable(buffer.transfer)) { | ||
buffer.transfer(); | ||
} else if (detachTransferable) { | ||
detachTransferable(buffer); | ||
} else { | ||
if (!isCallable(value.transfer)) throwUnpolyfillable('ArrayBuffer', TRANSFERRING); | ||
transferred = value.transfer(); | ||
throwUnpolyfillable('ArrayBuffer', TRANSFERRING); | ||
} | ||
mapSet(map, value, transferred); | ||
} | ||
}); | ||
}; | ||
@@ -636,3 +534,2 @@ | ||
var transfer = options ? options.transfer : undefined; | ||
var transferredBuffers = false; | ||
var map, buffers; | ||
@@ -643,14 +540,9 @@ | ||
buffers = tryToTransfer(transfer, map); | ||
transferredBuffers = !!lengthOfArrayLike(buffers); | ||
} | ||
var clone = structuredCloneInternal(value, map, transferredBuffers); | ||
var clone = structuredCloneInternal(value, map); | ||
// since of an issue with cloning views of transferred buffers, we a forced to transfer / clone them in 2 steps | ||
// since of an issue with cloning views of transferred buffers, we a forced to detach them later | ||
// https://github.com/zloirock/core-js/issues/1265 | ||
if (transferredBuffers) { | ||
map = new Map(); | ||
tryToTransferBuffers(transfer, map); | ||
clone = replacePlaceholders(clone, map); | ||
} | ||
if (buffers) detachBuffers(buffers); | ||
@@ -657,0 +549,0 @@ return clone; |
{ | ||
"name": "core-js-pure", | ||
"version": "3.33.1", | ||
"version": "3.33.2", | ||
"type": "commonjs", | ||
@@ -5,0 +5,0 @@ "description": "Standard library", |
1063179
26815