Skip to content

Commit 16eb13c

Browse files
committed
[Refactor] extract TA tables to separate files
1 parent 226cfb1 commit 16eb13c

38 files changed

+384
-425
lines changed

.gitattributes

+5
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@
167167
/2016/min.js spackled linguist-generated=true
168168
/2016/modulo.js spackled linguist-generated=true
169169
/2016/msFromTime.js spackled linguist-generated=true
170+
/2016/tables/typed-array-objects.js spackled linguist-generated=true
170171
/2016/thisBooleanValue.js spackled linguist-generated=true
171172
/2016/thisNumberValue.js spackled linguist-generated=true
172173
/2016/thisStringValue.js spackled linguist-generated=true
@@ -439,6 +440,7 @@
439440
/2018/min.js spackled linguist-generated=true
440441
/2018/modulo.js spackled linguist-generated=true
441442
/2018/msFromTime.js spackled linguist-generated=true
443+
/2018/tables/typed-array-objects.js spackled linguist-generated=true
442444
/2018/thisBooleanValue.js spackled linguist-generated=true
443445
/2018/thisNumberValue.js spackled linguist-generated=true
444446
/2018/thisStringValue.js spackled linguist-generated=true
@@ -914,6 +916,7 @@
914916
/2021/min.js spackled linguist-generated=true
915917
/2021/modulo.js spackled linguist-generated=true
916918
/2021/msFromTime.js spackled linguist-generated=true
919+
/2021/tables/typed-array-objects.js spackled linguist-generated=true
917920
/2021/thisBigIntValue.js spackled linguist-generated=true
918921
/2021/thisBooleanValue.js spackled linguist-generated=true
919922
/2021/thisNumberValue.js spackled linguist-generated=true
@@ -1134,6 +1137,7 @@
11341137
/2022/modulo.js spackled linguist-generated=true
11351138
/2022/msFromTime.js spackled linguist-generated=true
11361139
/2022/substring.js spackled linguist-generated=true
1140+
/2022/tables/typed-array-objects.js spackled linguist-generated=true
11371141
/2022/thisBigIntValue.js spackled linguist-generated=true
11381142
/2022/thisBooleanValue.js spackled linguist-generated=true
11391143
/2022/thisNumberValue.js spackled linguist-generated=true
@@ -1350,6 +1354,7 @@
13501354
/2023/modulo.js spackled linguist-generated=true
13511355
/2023/msFromTime.js spackled linguist-generated=true
13521356
/2023/substring.js spackled linguist-generated=true
1357+
/2023/tables/typed-array-objects.js spackled linguist-generated=true
13531358
/2023/thisBigIntValue.js spackled linguist-generated=true
13541359
/2023/thisBooleanValue.js spackled linguist-generated=true
13551360
/2023/thisNumberValue.js spackled linguist-generated=true

2015/GetValueFromBuffer.js

+2-13
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,7 @@ var IsDetachedBuffer = require('./IsDetachedBuffer');
2222
var isArrayBuffer = require('is-array-buffer');
2323
var safeConcat = require('safe-array-concat');
2424

25-
var table49 = {
26-
__proto__: null,
27-
$Int8: 1,
28-
$Uint8: 1,
29-
$Uint8C: 1,
30-
$Int16: 2,
31-
$Uint16: 2,
32-
$Int32: 4,
33-
$Uint32: 4,
34-
$Float32: 4,
35-
$Float64: 8
36-
};
25+
var tableTAO = require('./tables/typed-array-objects');
3726

3827
var isUnsignedElementType = function isUnsignedElementType(type) { return $charAt(type, 0) === 'U'; };
3928

@@ -68,7 +57,7 @@ module.exports = function GetValueFromBuffer(arrayBuffer, byteIndex, type) {
6857

6958
// 4. Let block be arrayBuffer’s [[ArrayBufferData]] internal slot.
7059

71-
var elementSize = table49['$' + type]; // step 5
60+
var elementSize = tableTAO.size['$' + type]; // step 5
7261
if (!elementSize) {
7362
throw new $TypeError('Assertion failed: `type` must be one of "Int8", "Uint8", "Uint8C", "Int16", "Uint16", "Int32", "Uint32", "Float32", or "Float64"');
7463
}

2015/SetValueInBuffer.js

+4-15
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,7 @@ var ToUint8Clamp = require('./ToUint8Clamp');
1616
var isArrayBuffer = require('is-array-buffer');
1717
var hasOwn = require('hasown');
1818

19-
var table49 = {
20-
__proto__: null,
21-
Int8: 1,
22-
Uint8: 1,
23-
Uint8C: 1,
24-
Int16: 2,
25-
Uint16: 2,
26-
Int32: 4,
27-
Uint32: 4,
28-
Float32: 4,
29-
Float64: 8
30-
};
19+
var tableTAO = require('./tables/typed-array-objects');
3120

3221
var TypeToAO = {
3322
__proto__: null,
@@ -57,7 +46,7 @@ module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value)
5746
throw new $TypeError('Assertion failed: `byteIndex` must be an integer');
5847
}
5948

60-
if (typeof type !== 'string' || !hasOwn(table49, type)) {
49+
if (typeof type !== 'string' || !hasOwn(tableTAO.size, '$' + type)) {
6150
throw new $TypeError('Assertion failed: `type` must be a Typed Array Element Type');
6251
}
6352

@@ -85,7 +74,7 @@ module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value)
8574

8675
// 6. Assert: block is not undefined.
8776

88-
var elementSize = table49[type]; // step 7
77+
var elementSize = tableTAO.size['$' + type]; // step 7
8978
if (!elementSize) {
9079
throw new $TypeError('Assertion failed: `type` must be one of "Int8", "Uint8", "Uint8C", "Int16", "Uint16", "Int32", "Uint32", "Float32", or "Float64"');
9180
}
@@ -99,7 +88,7 @@ module.exports = function SetValueInBuffer(arrayBuffer, byteIndex, type, value)
9988
} else if (type === 'Float64') { // step 2
10089
rawBytes = valueToFloat64Bytes(value, isLittleEndian);
10190
} else {
102-
var n = table49[type]; // step 3.a
91+
var n = elementSize; // step 3.a
10392

10493
var convOp = TypeToAO[type]; // step 3.b
10594

2015/tables/typed-array-objects.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'use strict';
2+
3+
// https://262.ecma-international.org/6.0/#table-49
4+
5+
module.exports = {
6+
__proto__: null,
7+
name: {
8+
__proto__: null,
9+
$Int8Array: 'Int8',
10+
$Uint8Array: 'Uint8',
11+
$Uint8ClampedArray: 'Uint8C',
12+
$Int16Array: 'Int16',
13+
$Uint16Array: 'Uint16',
14+
$Int32Array: 'Int32',
15+
$Uint32Array: 'Uint32',
16+
$Float32Array: 'Float32',
17+
$Float64Array: 'Float64'
18+
},
19+
size: {
20+
__proto__: null,
21+
$Int8: 1,
22+
$Uint8: 1,
23+
$Uint8C: 1,
24+
$Int16: 2,
25+
$Uint16: 2,
26+
$Int32: 4,
27+
$Uint32: 4,
28+
$Float32: 4,
29+
$Float64: 8
30+
}
31+
};

2016/GetValueFromBuffer.js

+2-13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

2016/SetValueInBuffer.js

+4-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

2016/tables/typed-array-objects.js

+31
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

2017/GetValueFromBuffer.js

+2-13
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,7 @@ var isArrayBuffer = require('is-array-buffer');
1919
var isSharedArrayBuffer = require('is-shared-array-buffer');
2020
var safeConcat = require('safe-array-concat');
2121

22-
var table50 = {
23-
__proto__: null,
24-
$Int8: 1,
25-
$Uint8: 1,
26-
$Uint8C: 1,
27-
$Int16: 2,
28-
$Uint16: 2,
29-
$Int32: 4,
30-
$Uint32: 4,
31-
$Float32: 4,
32-
$Float64: 8
33-
};
22+
var tableTAO = require('./tables/typed-array-objects');
3423

3524
var defaultEndianness = require('../helpers/defaultEndianness');
3625

@@ -74,7 +63,7 @@ module.exports = function GetValueFromBuffer(arrayBuffer, byteIndex, type, isTyp
7463

7564
// 4. Let block be arrayBuffer.[[ArrayBufferData]].
7665

77-
var elementSize = table50['$' + type]; // step 5
66+
var elementSize = tableTAO.size['$' + type]; // step 5
7867
if (!elementSize) {
7968
throw new $TypeError('Assertion failed: `type` must be one of "Int8", "Uint8", "Uint8C", "Int16", "Uint16", "Int32", "Uint32", "Float32", or "Float64"');
8069
}

2017/SetValueInBuffer.js

+4-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

2017/tables/typed-array-objects.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'use strict';
2+
3+
// https://262.ecma-international.org/8.0/#table-59
4+
5+
module.exports = {
6+
__proto__: null,
7+
name: {
8+
__proto__: null,
9+
$Int8Array: 'Int8',
10+
$Uint8Array: 'Uint8',
11+
$Uint8ClampedArray: 'Uint8C',
12+
$Int16Array: 'Int16',
13+
$Uint16Array: 'Uint16',
14+
$Int32Array: 'Int32',
15+
$Uint32Array: 'Uint32',
16+
$Float32Array: 'Float32',
17+
$Float64Array: 'Float64'
18+
},
19+
size: {
20+
__proto__: null,
21+
$Int8: 1,
22+
$Uint8: 1,
23+
$Uint8C: 1,
24+
$Int16: 2,
25+
$Uint16: 2,
26+
$Int32: 4,
27+
$Uint32: 4,
28+
$Float32: 4,
29+
$Float64: 8
30+
}
31+
};

2018/GetValueFromBuffer.js

+2-13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)