Socket
Socket
Sign inDemoInstall

es-abstract

Package Overview
Dependencies
Maintainers
1
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

es-abstract - npm Package Compare versions

Comparing version 1.22.5 to 1.23.0

2015/IntegerIndexedElementGet.js

6

2020/IsValidIntegerIndex.js

@@ -9,2 +9,3 @@ 'use strict';

var isTypedArray = require('is-typed-array');
var typedArrayBuffer = require('typed-array-buffer');

@@ -15,3 +16,6 @@

module.exports = function IsValidIntegerIndex(O, index) {
// Assert: O is an Integer-Indexed exotic object.
if (!isTypedArray) {
throw new $TypeError('Assertion failed: `O` must be a Typed Array');
}
typedArrayBuffer(O); // step 1

@@ -18,0 +22,0 @@

52

2023/SetTypedArrayFromArrayLike.js

@@ -8,3 +8,2 @@ 'use strict';

var typedArrayBuffer = require('typed-array-buffer');
var typedArrayByteOffset = require('typed-array-byte-offset');
var typedArrayLength = require('typed-array-length');

@@ -16,14 +15,9 @@ var whichTypedArray = require('which-typed-array');

var Get = require('./Get');
var IsBigIntElementType = require('./IsBigIntElementType');
var IntegerIndexedElementSet = require('./IntegerIndexedElementSet');
var IsDetachedBuffer = require('./IsDetachedBuffer');
var LengthOfArrayLike = require('./LengthOfArrayLike');
var SetValueInBuffer = require('./SetValueInBuffer');
var ToBigInt = require('./ToBigInt');
var ToNumber = require('./ToNumber');
var ToObject = require('./ToObject');
var ToString = require('./ToString');
var TypedArrayElementSize = require('./TypedArrayElementSize');
var TypedArrayElementType = require('./TypedArrayElementType');
// https://262.ecma-international.org/13.0/#sec-settypedarrayfromarraylike
// https://262.ecma-international.org/14.0/#sec-settypedarrayfromarraylike

@@ -52,47 +46,27 @@ module.exports = function SetTypedArrayFromArrayLike(target, targetOffset, source) {

var targetElementSize = TypedArrayElementSize(target); // step 4
var src = ToObject(source); // step 4
var targetType = TypedArrayElementType(target); // step 5
var srcLength = LengthOfArrayLike(src); // step 5
var targetByteOffset = typedArrayByteOffset(target); // step 6
var src = ToObject(source); // step 7
var srcLength = LengthOfArrayLike(src); // step 8
if (targetOffset === Infinity) {
throw new $RangeError('targetOffset must be a finite integer'); // step 9
throw new $RangeError('targetOffset must be a finite integer'); // step 6
}
if (srcLength + targetOffset > targetLength) {
throw new $RangeError('targetOffset + srcLength must be <= target.length'); // step 10
throw new $RangeError('targetOffset + srcLength must be <= target.length'); // step 7
}
var targetByteIndex = (targetOffset * targetElementSize) + targetByteOffset; // step 11
var k = 0; // step 8
var k = 0; // step 12
while (k < srcLength) { // step 9
var Pk = ToString(k); // step 9.a
var limit = targetByteIndex + (targetElementSize * srcLength); // step 13
var value = Get(src, Pk); // step 9.b
while (targetByteIndex < limit) { // step 14
var Pk = ToString(k); // step 14.a
var targetIndex = targetOffset + k; // step 9.c
var value = Get(src, Pk); // step 14.b
IntegerIndexedElementSet(target, targetIndex, value); // step 9.d
if (IsBigIntElementType(targetType)) {
value = ToBigInt(value); // step 14.c
} else {
value = ToNumber(value); // step 14.d
}
if (IsDetachedBuffer(targetBuffer)) {
throw new $TypeError('target’s buffer is detached'); // step 14.e
}
SetValueInBuffer(targetBuffer, targetByteIndex, targetType, value, true, 'Unordered'); // step 14.f
k += 1; // step 14.g
targetByteIndex += targetElementSize; // step 14.h
k += 1; // step 9.e
}
};
'use strict';
var GetIntrinsic = require('get-intrinsic');
var $RangeError = require('es-errors/range');
var $SyntaxError = require('es-errors/syntax');
var $TypeError = require('es-errors/type');
var $ArrayBuffer = GetIntrinsic('%ArrayBuffer%', true);

@@ -27,3 +24,3 @@ var typedArrayBuffer = require('typed-array-buffer');

// https://262.ecma-international.org/13.0/#sec-settypedarrayfromtypedarray
// https://262.ecma-international.org/14.0/#sec-settypedarrayfromtypedarray

@@ -87,51 +84,47 @@ module.exports = function SetTypedArrayFromTypedArray(target, targetOffset, source) {

var same;
var sameSharedArrayBuffer = false;
if (IsSharedArrayBuffer(srcBuffer) && IsSharedArrayBuffer(targetBuffer)) { // step 16
// a. If srcBuffer.[[ArrayBufferData]] and targetBuffer.[[ArrayBufferData]] are the same Shared Data Block values, let same be true; else let same be false.
throw new $SyntaxError('SharedArrayBuffer is not supported by this implementation');
} else {
same = SameValue(srcBuffer, targetBuffer); // step 17
}
var srcByteIndex;
if (same) { // step 18
var srcByteLength = typedArrayByteLength(source); // step 18.a
if (SameValue(srcBuffer, targetBuffer) || sameSharedArrayBuffer) { // step 17
var srcByteLength = typedArrayByteLength(source); // step 17.a
srcBuffer = CloneArrayBuffer(srcBuffer, srcByteOffset, srcByteLength, $ArrayBuffer); // step 18.b
srcBuffer = CloneArrayBuffer(srcBuffer, srcByteOffset, srcByteLength); // step 17.b
// c. NOTE: %ArrayBuffer% is used to clone srcBuffer because is it known to not have any observable side-effects.
srcByteIndex = 0; // step 18.d
srcByteIndex = 0; // step 17.c
} else {
srcByteIndex = srcByteOffset; // step 19
srcByteIndex = srcByteOffset; // step 18
}
var targetByteIndex = (targetOffset * targetElementSize) + targetByteOffset; // step 20
var targetByteIndex = (targetOffset * targetElementSize) + targetByteOffset; // step 19
var limit = targetByteIndex + (targetElementSize * srcLength); // step 21
var limit = targetByteIndex + (targetElementSize * srcLength); // step 20
var value;
if (srcType === targetType) { // step 22
// a. NOTE: If srcType and targetType are the same, the transfer must be performed in a manner that preserves the bit-level encoding of the source data.
if (srcType === targetType) { // step 21
// a. NOTE: The transfer must be performed in a manner that preserves the bit-level encoding of the source data.
while (targetByteIndex < limit) { // step 22.b
value = GetValueFromBuffer(srcBuffer, srcByteIndex, 'Uint8', true, 'Unordered'); // step 22.b.i
while (targetByteIndex < limit) { // step 21.b
value = GetValueFromBuffer(srcBuffer, srcByteIndex, 'Uint8', true, 'Unordered'); // step 21.b.i
SetValueInBuffer(targetBuffer, targetByteIndex, 'Uint8', value, true, 'Unordered'); // step 22.b.ii
SetValueInBuffer(targetBuffer, targetByteIndex, 'Uint8', value, true, 'Unordered'); // step 21.b.ii
srcByteIndex += 1; // step 22.b.iii
srcByteIndex += 1; // step 21.b.iii
targetByteIndex += 1; // step 22.b.iv
targetByteIndex += 1; // step 21.b.iv
}
} else { // step 23
while (targetByteIndex < limit) { // step 23.a
value = GetValueFromBuffer(srcBuffer, srcByteIndex, srcType, true, 'Unordered'); // step 23.a.i
} else { // step 22
while (targetByteIndex < limit) { // step 22.a
value = GetValueFromBuffer(srcBuffer, srcByteIndex, srcType, true, 'Unordered'); // step 22.a.i
SetValueInBuffer(targetBuffer, targetByteIndex, targetType, value, true, 'Unordered'); // step 23.a.ii
SetValueInBuffer(targetBuffer, targetByteIndex, targetType, value, true, 'Unordered'); // step 22.a.ii
srcByteIndex += srcElementSize; // step 23.a.iii
srcByteIndex += srcElementSize; // step 22.a.iii
targetByteIndex += targetElementSize; // step 23.a.iv
targetByteIndex += targetElementSize; // step 22.a.iv
}
}
};

@@ -0,1 +1,13 @@

1.23.0 / 2024-03-04
=================
* [New] add `ES2024`
* [New] `ES2015`+: add `InternalizeJSONProperty`
* [New] `ES2015`+: add `IntegerIndexedElement{Get,Set}`
* [New] `ES2018`+: add `TimeZoneString`
* [New] `ES2022`+: add `DefineMethodProperty`
* [New] `ES2023`: add `DefaultTimeZone`
* [Fix] `ES2023`+: `SetTypedArrayFrom{TypedArray,ArrayLike}`: match engine reality
* [Fix] `ES2024`+: `GetViewByteLength`, `IsViewOutOfBounds`: support engines with only own DV properties
* [Tests] use `safe-bigint`
1.22.5 / 2024-02-28

@@ -2,0 +14,0 @@ =================

@@ -51,2 +51,5 @@ 'use strict';

InstanceofOperator: require('./2015/InstanceofOperator'),
IntegerIndexedElementGet: require('./2015/IntegerIndexedElementGet'),
IntegerIndexedElementSet: require('./2015/IntegerIndexedElementSet'),
InternalizeJSONProperty: require('./2015/InternalizeJSONProperty'),
Invoke: require('./2015/Invoke'),

@@ -53,0 +56,0 @@ IsAccessorDescriptor: require('./2015/IsAccessorDescriptor'),

@@ -51,2 +51,5 @@ 'use strict';

InstanceofOperator: require('./2016/InstanceofOperator'),
IntegerIndexedElementGet: require('./2016/IntegerIndexedElementGet'),
IntegerIndexedElementSet: require('./2016/IntegerIndexedElementSet'),
InternalizeJSONProperty: require('./2016/InternalizeJSONProperty'),
Invoke: require('./2016/Invoke'),

@@ -53,0 +56,0 @@ IsAccessorDescriptor: require('./2016/IsAccessorDescriptor'),

@@ -51,2 +51,5 @@ 'use strict';

InstanceofOperator: require('./2017/InstanceofOperator'),
IntegerIndexedElementGet: require('./2017/IntegerIndexedElementGet'),
IntegerIndexedElementSet: require('./2017/IntegerIndexedElementSet'),
InternalizeJSONProperty: require('./2017/InternalizeJSONProperty'),
Invoke: require('./2017/Invoke'),

@@ -53,0 +56,0 @@ IsAccessorDescriptor: require('./2017/IsAccessorDescriptor'),

@@ -55,2 +55,5 @@ 'use strict';

InstanceofOperator: require('./2018/InstanceofOperator'),
IntegerIndexedElementGet: require('./2018/IntegerIndexedElementGet'),
IntegerIndexedElementSet: require('./2018/IntegerIndexedElementSet'),
InternalizeJSONProperty: require('./2018/InternalizeJSONProperty'),
Invoke: require('./2018/Invoke'),

@@ -134,2 +137,3 @@ IsAccessorDescriptor: require('./2018/IsAccessorDescriptor'),

TimeWithinDay: require('./2018/TimeWithinDay'),
TimeZoneString: require('./2018/TimeZoneString'),
ToBoolean: require('./2018/ToBoolean'),

@@ -136,0 +140,0 @@ ToDateString: require('./2018/ToDateString'),

@@ -58,2 +58,5 @@ 'use strict';

InstanceofOperator: require('./2019/InstanceofOperator'),
IntegerIndexedElementGet: require('./2019/IntegerIndexedElementGet'),
IntegerIndexedElementSet: require('./2019/IntegerIndexedElementSet'),
InternalizeJSONProperty: require('./2019/InternalizeJSONProperty'),
Invoke: require('./2019/Invoke'),

@@ -137,2 +140,3 @@ IsAccessorDescriptor: require('./2019/IsAccessorDescriptor'),

TimeWithinDay: require('./2019/TimeWithinDay'),
TimeZoneString: require('./2019/TimeZoneString'),
ToBoolean: require('./2019/ToBoolean'),

@@ -139,0 +143,0 @@ ToDateString: require('./2019/ToDateString'),

@@ -65,2 +65,5 @@ 'use strict';

InstanceofOperator: require('./2020/InstanceofOperator'),
IntegerIndexedElementGet: require('./2020/IntegerIndexedElementGet'),
IntegerIndexedElementSet: require('./2020/IntegerIndexedElementSet'),
InternalizeJSONProperty: require('./2020/InternalizeJSONProperty'),
Invoke: require('./2020/Invoke'),

@@ -156,2 +159,3 @@ IsAccessorDescriptor: require('./2020/IsAccessorDescriptor'),

TimeWithinDay: require('./2020/TimeWithinDay'),
TimeZoneString: require('./2020/TimeZoneString'),
ToBigInt: require('./2020/ToBigInt'),

@@ -158,0 +162,0 @@ ToBigInt64: require('./2020/ToBigInt64'),

@@ -74,2 +74,5 @@ 'use strict';

InstanceofOperator: require('./2021/InstanceofOperator'),
IntegerIndexedElementGet: require('./2021/IntegerIndexedElementGet'),
IntegerIndexedElementSet: require('./2021/IntegerIndexedElementSet'),
InternalizeJSONProperty: require('./2021/InternalizeJSONProperty'),
Invoke: require('./2021/Invoke'),

@@ -169,2 +172,3 @@ IsAccessorDescriptor: require('./2021/IsAccessorDescriptor'),

TimeWithinDay: require('./2021/TimeWithinDay'),
TimeZoneString: require('./2021/TimeZoneString'),
ToBigInt: require('./2021/ToBigInt'),

@@ -171,0 +175,0 @@ ToBigInt64: require('./2021/ToBigInt64'),

@@ -50,2 +50,3 @@ 'use strict';

DayWithinYear: require('./2022/DayWithinYear'),
DefineMethodProperty: require('./2022/DefineMethodProperty'),
DefinePropertyOrThrow: require('./2022/DefinePropertyOrThrow'),

@@ -77,2 +78,5 @@ DeletePropertyOrThrow: require('./2022/DeletePropertyOrThrow'),

InstanceofOperator: require('./2022/InstanceofOperator'),
IntegerIndexedElementGet: require('./2022/IntegerIndexedElementGet'),
IntegerIndexedElementSet: require('./2022/IntegerIndexedElementSet'),
InternalizeJSONProperty: require('./2022/InternalizeJSONProperty'),
Invoke: require('./2022/Invoke'),

@@ -179,2 +183,3 @@ IsAccessorDescriptor: require('./2022/IsAccessorDescriptor'),

TimeWithinDay: require('./2022/TimeWithinDay'),
TimeZoneString: require('./2022/TimeZoneString'),
ToBigInt: require('./2022/ToBigInt'),

@@ -181,0 +186,0 @@ ToBigInt64: require('./2022/ToBigInt64'),

@@ -53,2 +53,4 @@ 'use strict';

DayWithinYear: require('./2023/DayWithinYear'),
DefaultTimeZone: require('./2023/DefaultTimeZone'),
DefineMethodProperty: require('./2023/DefineMethodProperty'),
DefinePropertyOrThrow: require('./2023/DefinePropertyOrThrow'),

@@ -82,2 +84,5 @@ DeletePropertyOrThrow: require('./2023/DeletePropertyOrThrow'),

InstanceofOperator: require('./2023/InstanceofOperator'),
IntegerIndexedElementGet: require('./2023/IntegerIndexedElementGet'),
IntegerIndexedElementSet: require('./2023/IntegerIndexedElementSet'),
InternalizeJSONProperty: require('./2023/InternalizeJSONProperty'),
Invoke: require('./2023/Invoke'),

@@ -185,2 +190,3 @@ IsAccessorDescriptor: require('./2023/IsAccessorDescriptor'),

TimeWithinDay: require('./2023/TimeWithinDay'),
TimeZoneString: require('./2023/TimeZoneString'),
ToBigInt: require('./2023/ToBigInt'),

@@ -187,0 +193,0 @@ ToBigInt64: require('./2023/ToBigInt64'),

@@ -9,2 +9,3 @@ 'use strict';

return !!value
&& typeof value === 'object'
&& hasOwn(value, '[[Completion]]') // TODO: confirm is a completion record

@@ -11,0 +12,0 @@ && hasOwn(value, '[[Capability]]')

@@ -15,2 +15,3 @@ 'use strict';

var ES2023 = require('./es2023');
var ES2024 = require('./es2024');

@@ -29,3 +30,4 @@ var ES = {

ES2022: ES2022,
ES2023: ES2023
ES2023: ES2023,
ES2024: ES2024
};

@@ -32,0 +34,0 @@ assign(ES, ES5);

{
"name": "es-abstract",
"version": "1.22.5",
"version": "1.23.0",
"author": {

@@ -63,2 +63,5 @@ "name": "Jordan Harband",

"call-bind": "^1.0.7",
"data-view-buffer": "^1.0.1",
"data-view-byte-length": "^1.0.0",
"data-view-byte-offset": "^1.0.0",
"es-define-property": "^1.0.0",

@@ -80,2 +83,3 @@ "es-errors": "^1.3.0",

"is-callable": "^1.2.7",
"is-data-view": "^1.0.1",
"is-negative-zero": "^2.0.3",

@@ -138,2 +142,3 @@ "is-regex": "^1.1.4",

"object.fromentries": "^2.0.7",
"safe-bigint": "^1.0.0",
"safe-publish-latest": "^2.0.0",

@@ -140,0 +145,0 @@ "ses": "^0.18.8",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc