Skip to content

Commit addcd02

Browse files
committed
perf(napi/parser, linter/plugins): raw transfer deserializer for Vecs use shift instead of multiply where possible (#21142)
Tiny optimization to raw transfer. Use shift instead of multiply where possible when calculating the end position of a `Vec`'s contents.
1 parent 3068ded commit addcd02

10 files changed

Lines changed: 184 additions & 177 deletions

File tree

apps/oxlint/src-js/generated/deserialize.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5836,7 +5836,7 @@ function deserializeVecStatement(pos) {
58365836
let arr = [],
58375837
pos32 = pos >> 2;
58385838
pos = int32[pos32];
5839-
let endPos = pos + int32[pos32 + 2] * 16;
5839+
let endPos = pos + (int32[pos32 + 2] << 4);
58405840
for (; pos !== endPos; ) {
58415841
arr.push(deserializeStatement(pos));
58425842
pos += 16;
@@ -6024,7 +6024,7 @@ function deserializeVecObjectPropertyKind(pos) {
60246024
let arr = [],
60256025
pos32 = pos >> 2;
60266026
pos = int32[pos32];
6027-
let endPos = pos + int32[pos32 + 2] * 16;
6027+
let endPos = pos + (int32[pos32 + 2] << 4);
60286028
for (; pos !== endPos; ) {
60296029
arr.push(deserializeObjectPropertyKind(pos));
60306030
pos += 16;
@@ -6064,7 +6064,7 @@ function deserializeVecExpression(pos) {
60646064
let arr = [],
60656065
pos32 = pos >> 2;
60666066
pos = int32[pos32];
6067-
let endPos = pos + int32[pos32 + 2] * 16;
6067+
let endPos = pos + (int32[pos32 + 2] << 4);
60686068
for (; pos !== endPos; ) {
60696069
arr.push(deserializeExpression(pos));
60706070
pos += 16;
@@ -6102,7 +6102,7 @@ function deserializeVecArgument(pos) {
61026102
let arr = [],
61036103
pos32 = pos >> 2;
61046104
pos = int32[pos32];
6105-
let endPos = pos + int32[pos32 + 2] * 16;
6105+
let endPos = pos + (int32[pos32 + 2] << 4);
61066106
for (; pos !== endPos; ) {
61076107
arr.push(deserializeArgument(pos));
61086108
pos += 16;
@@ -6126,7 +6126,7 @@ function deserializeVecOptionAssignmentTargetMaybeDefault(pos) {
61266126
let arr = [],
61276127
pos32 = pos >> 2;
61286128
pos = int32[pos32];
6129-
let endPos = pos + int32[pos32 + 2] * 16;
6129+
let endPos = pos + (int32[pos32 + 2] << 4);
61306130
for (; pos !== endPos; ) {
61316131
arr.push(deserializeOptionAssignmentTargetMaybeDefault(pos));
61326132
pos += 16;
@@ -6148,7 +6148,7 @@ function deserializeVecAssignmentTargetProperty(pos) {
61486148
let arr = [],
61496149
pos32 = pos >> 2;
61506150
pos = int32[pos32];
6151-
let endPos = pos + int32[pos32 + 2] * 16;
6151+
let endPos = pos + (int32[pos32 + 2] << 4);
61526152
for (; pos !== endPos; ) {
61536153
arr.push(deserializeAssignmentTargetProperty(pos));
61546154
pos += 16;
@@ -6386,7 +6386,7 @@ function deserializeVecOptionBindingPattern(pos) {
63866386
let arr = [],
63876387
pos32 = pos >> 2;
63886388
pos = int32[pos32];
6389-
let endPos = pos + int32[pos32 + 2] * 16;
6389+
let endPos = pos + (int32[pos32 + 2] << 4);
63906390
for (; pos !== endPos; ) {
63916391
arr.push(deserializeOptionBindingPattern(pos));
63926392
pos += 16;
@@ -6450,7 +6450,7 @@ function deserializeVecDecorator(pos) {
64506450
let arr = [],
64516451
pos32 = pos >> 2;
64526452
pos = int32[pos32];
6453-
let endPos = pos + int32[pos32 + 2] * 32;
6453+
let endPos = pos + (int32[pos32 + 2] << 5);
64546454
for (; pos !== endPos; ) {
64556455
arr.push(deserializeDecorator(pos));
64566456
pos += 32;
@@ -6492,7 +6492,7 @@ function deserializeVecClassElement(pos) {
64926492
let arr = [],
64936493
pos32 = pos >> 2;
64946494
pos = int32[pos32];
6495-
let endPos = pos + int32[pos32 + 2] * 16;
6495+
let endPos = pos + (int32[pos32 + 2] << 4);
64966496
for (; pos !== endPos; ) {
64976497
arr.push(deserializeClassElement(pos));
64986498
pos += 16;
@@ -6552,7 +6552,7 @@ function deserializeVecImportDeclarationSpecifier(pos) {
65526552
let arr = [],
65536553
pos32 = pos >> 2;
65546554
pos = int32[pos32];
6555-
let endPos = pos + int32[pos32 + 2] * 16;
6555+
let endPos = pos + (int32[pos32 + 2] << 4);
65566556
for (; pos !== endPos; ) {
65576557
arr.push(deserializeImportDeclarationSpecifier(pos));
65586558
pos += 16;
@@ -6608,7 +6608,7 @@ function deserializeVecExportSpecifier(pos) {
66086608
let arr = [],
66096609
pos32 = pos >> 2;
66106610
pos = int32[pos32];
6611-
let endPos = pos + int32[pos32 + 2] * 128;
6611+
let endPos = pos + (int32[pos32 + 2] << 7);
66126612
for (; pos !== endPos; ) {
66136613
arr.push(deserializeExportSpecifier(pos));
66146614
pos += 128;
@@ -6640,7 +6640,7 @@ function deserializeVecJSXChild(pos) {
66406640
let arr = [],
66416641
pos32 = pos >> 2;
66426642
pos = int32[pos32];
6643-
let endPos = pos + int32[pos32 + 2] * 16;
6643+
let endPos = pos + (int32[pos32 + 2] << 4);
66446644
for (; pos !== endPos; ) {
66456645
arr.push(deserializeJSXChild(pos));
66466646
pos += 16;
@@ -6662,7 +6662,7 @@ function deserializeVecJSXAttributeItem(pos) {
66626662
let arr = [],
66636663
pos32 = pos >> 2;
66646664
pos = int32[pos32];
6665-
let endPos = pos + int32[pos32 + 2] * 16;
6665+
let endPos = pos + (int32[pos32 + 2] << 4);
66666666
for (; pos !== endPos; ) {
66676667
arr.push(deserializeJSXAttributeItem(pos));
66686668
pos += 16;
@@ -6870,7 +6870,7 @@ function deserializeVecTSType(pos) {
68706870
let arr = [],
68716871
pos32 = pos >> 2;
68726872
pos = int32[pos32];
6873-
let endPos = pos + int32[pos32 + 2] * 16;
6873+
let endPos = pos + (int32[pos32 + 2] << 4);
68746874
for (; pos !== endPos; ) {
68756875
arr.push(deserializeTSType(pos));
68766876
pos += 16;
@@ -6882,7 +6882,7 @@ function deserializeVecTSTupleElement(pos) {
68826882
let arr = [],
68836883
pos32 = pos >> 2;
68846884
pos = int32[pos32];
6885-
let endPos = pos + int32[pos32 + 2] * 16;
6885+
let endPos = pos + (int32[pos32 + 2] << 4);
68866886
for (; pos !== endPos; ) {
68876887
arr.push(deserializeTSTupleElement(pos));
68886888
pos += 16;
@@ -6938,7 +6938,7 @@ function deserializeVecTSSignature(pos) {
69386938
let arr = [],
69396939
pos32 = pos >> 2;
69406940
pos = int32[pos32];
6941-
let endPos = pos + int32[pos32 + 2] * 16;
6941+
let endPos = pos + (int32[pos32 + 2] << 4);
69426942
for (; pos !== endPos; ) {
69436943
arr.push(deserializeTSSignature(pos));
69446944
pos += 16;

napi/parser/src-js/generated/deserialize/js.js

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4546,7 +4546,7 @@ function deserializeVecComment(pos) {
45464546
let arr = [],
45474547
pos32 = pos >> 2;
45484548
pos = int32[pos32];
4549-
let endPos = pos + int32[pos32 + 2] * 16;
4549+
let endPos = pos + (int32[pos32 + 2] << 4);
45504550
for (; pos !== endPos; ) {
45514551
arr.push(deserializeComment(pos));
45524552
pos += 16;
@@ -4576,7 +4576,7 @@ function deserializeVecStatement(pos) {
45764576
let arr = [],
45774577
pos32 = pos >> 2;
45784578
pos = int32[pos32];
4579-
let endPos = pos + int32[pos32 + 2] * 16;
4579+
let endPos = pos + (int32[pos32 + 2] << 4);
45804580
for (; pos !== endPos; ) {
45814581
arr.push(deserializeStatement(pos));
45824582
pos += 16;
@@ -4764,7 +4764,7 @@ function deserializeVecObjectPropertyKind(pos) {
47644764
let arr = [],
47654765
pos32 = pos >> 2;
47664766
pos = int32[pos32];
4767-
let endPos = pos + int32[pos32 + 2] * 16;
4767+
let endPos = pos + (int32[pos32 + 2] << 4);
47684768
for (; pos !== endPos; ) {
47694769
arr.push(deserializeObjectPropertyKind(pos));
47704770
pos += 16;
@@ -4804,7 +4804,7 @@ function deserializeVecExpression(pos) {
48044804
let arr = [],
48054805
pos32 = pos >> 2;
48064806
pos = int32[pos32];
4807-
let endPos = pos + int32[pos32 + 2] * 16;
4807+
let endPos = pos + (int32[pos32 + 2] << 4);
48084808
for (; pos !== endPos; ) {
48094809
arr.push(deserializeExpression(pos));
48104810
pos += 16;
@@ -4842,7 +4842,7 @@ function deserializeVecArgument(pos) {
48424842
let arr = [],
48434843
pos32 = pos >> 2;
48444844
pos = int32[pos32];
4845-
let endPos = pos + int32[pos32 + 2] * 16;
4845+
let endPos = pos + (int32[pos32 + 2] << 4);
48464846
for (; pos !== endPos; ) {
48474847
arr.push(deserializeArgument(pos));
48484848
pos += 16;
@@ -4866,7 +4866,7 @@ function deserializeVecOptionAssignmentTargetMaybeDefault(pos) {
48664866
let arr = [],
48674867
pos32 = pos >> 2;
48684868
pos = int32[pos32];
4869-
let endPos = pos + int32[pos32 + 2] * 16;
4869+
let endPos = pos + (int32[pos32 + 2] << 4);
48704870
for (; pos !== endPos; ) {
48714871
arr.push(deserializeOptionAssignmentTargetMaybeDefault(pos));
48724872
pos += 16;
@@ -4888,7 +4888,7 @@ function deserializeVecAssignmentTargetProperty(pos) {
48884888
let arr = [],
48894889
pos32 = pos >> 2;
48904890
pos = int32[pos32];
4891-
let endPos = pos + int32[pos32 + 2] * 16;
4891+
let endPos = pos + (int32[pos32 + 2] << 4);
48924892
for (; pos !== endPos; ) {
48934893
arr.push(deserializeAssignmentTargetProperty(pos));
48944894
pos += 16;
@@ -5126,7 +5126,7 @@ function deserializeVecOptionBindingPattern(pos) {
51265126
let arr = [],
51275127
pos32 = pos >> 2;
51285128
pos = int32[pos32];
5129-
let endPos = pos + int32[pos32 + 2] * 16;
5129+
let endPos = pos + (int32[pos32 + 2] << 4);
51305130
for (; pos !== endPos; ) {
51315131
arr.push(deserializeOptionBindingPattern(pos));
51325132
pos += 16;
@@ -5190,7 +5190,7 @@ function deserializeVecDecorator(pos) {
51905190
let arr = [],
51915191
pos32 = pos >> 2;
51925192
pos = int32[pos32];
5193-
let endPos = pos + int32[pos32 + 2] * 32;
5193+
let endPos = pos + (int32[pos32 + 2] << 5);
51945194
for (; pos !== endPos; ) {
51955195
arr.push(deserializeDecorator(pos));
51965196
pos += 32;
@@ -5216,7 +5216,7 @@ function deserializeVecClassElement(pos) {
52165216
let arr = [],
52175217
pos32 = pos >> 2;
52185218
pos = int32[pos32];
5219-
let endPos = pos + int32[pos32 + 2] * 16;
5219+
let endPos = pos + (int32[pos32 + 2] << 4);
52205220
for (; pos !== endPos; ) {
52215221
arr.push(deserializeClassElement(pos));
52225222
pos += 16;
@@ -5276,7 +5276,7 @@ function deserializeVecImportDeclarationSpecifier(pos) {
52765276
let arr = [],
52775277
pos32 = pos >> 2;
52785278
pos = int32[pos32];
5279-
let endPos = pos + int32[pos32 + 2] * 16;
5279+
let endPos = pos + (int32[pos32 + 2] << 4);
52805280
for (; pos !== endPos; ) {
52815281
arr.push(deserializeImportDeclarationSpecifier(pos));
52825282
pos += 16;
@@ -5332,7 +5332,7 @@ function deserializeVecExportSpecifier(pos) {
53325332
let arr = [],
53335333
pos32 = pos >> 2;
53345334
pos = int32[pos32];
5335-
let endPos = pos + int32[pos32 + 2] * 128;
5335+
let endPos = pos + (int32[pos32 + 2] << 7);
53365336
for (; pos !== endPos; ) {
53375337
arr.push(deserializeExportSpecifier(pos));
53385338
pos += 128;
@@ -5364,7 +5364,7 @@ function deserializeVecJSXChild(pos) {
53645364
let arr = [],
53655365
pos32 = pos >> 2;
53665366
pos = int32[pos32];
5367-
let endPos = pos + int32[pos32 + 2] * 16;
5367+
let endPos = pos + (int32[pos32 + 2] << 4);
53685368
for (; pos !== endPos; ) {
53695369
arr.push(deserializeJSXChild(pos));
53705370
pos += 16;
@@ -5386,7 +5386,7 @@ function deserializeVecJSXAttributeItem(pos) {
53865386
let arr = [],
53875387
pos32 = pos >> 2;
53885388
pos = int32[pos32];
5389-
let endPos = pos + int32[pos32 + 2] * 16;
5389+
let endPos = pos + (int32[pos32 + 2] << 4);
53905390
for (; pos !== endPos; ) {
53915391
arr.push(deserializeJSXAttributeItem(pos));
53925392
pos += 16;
@@ -5594,7 +5594,7 @@ function deserializeVecTSType(pos) {
55945594
let arr = [],
55955595
pos32 = pos >> 2;
55965596
pos = int32[pos32];
5597-
let endPos = pos + int32[pos32 + 2] * 16;
5597+
let endPos = pos + (int32[pos32 + 2] << 4);
55985598
for (; pos !== endPos; ) {
55995599
arr.push(deserializeTSType(pos));
56005600
pos += 16;
@@ -5606,7 +5606,7 @@ function deserializeVecTSTupleElement(pos) {
56065606
let arr = [],
56075607
pos32 = pos >> 2;
56085608
pos = int32[pos32];
5609-
let endPos = pos + int32[pos32 + 2] * 16;
5609+
let endPos = pos + (int32[pos32 + 2] << 4);
56105610
for (; pos !== endPos; ) {
56115611
arr.push(deserializeTSTupleElement(pos));
56125612
pos += 16;
@@ -5662,7 +5662,7 @@ function deserializeVecTSSignature(pos) {
56625662
let arr = [],
56635663
pos32 = pos >> 2;
56645664
pos = int32[pos32];
5665-
let endPos = pos + int32[pos32 + 2] * 16;
5665+
let endPos = pos + (int32[pos32 + 2] << 4);
56665666
for (; pos !== endPos; ) {
56675667
arr.push(deserializeTSSignature(pos));
56685668
pos += 16;
@@ -5782,7 +5782,7 @@ function deserializeVecStaticExport(pos) {
57825782
let arr = [],
57835783
pos32 = pos >> 2;
57845784
pos = int32[pos32];
5785-
let endPos = pos + int32[pos32 + 2] * 32;
5785+
let endPos = pos + (int32[pos32 + 2] << 5);
57865786
for (; pos !== endPos; ) {
57875787
arr.push(deserializeStaticExport(pos));
57885788
pos += 32;
@@ -5794,7 +5794,7 @@ function deserializeVecDynamicImport(pos) {
57945794
let arr = [],
57955795
pos32 = pos >> 2;
57965796
pos = int32[pos32];
5797-
let endPos = pos + int32[pos32 + 2] * 16;
5797+
let endPos = pos + (int32[pos32 + 2] << 4);
57985798
for (; pos !== endPos; ) {
57995799
arr.push(deserializeDynamicImport(pos));
58005800
pos += 16;
@@ -5806,7 +5806,7 @@ function deserializeVecSpan(pos) {
58065806
let arr = [],
58075807
pos32 = pos >> 2;
58085808
pos = int32[pos32];
5809-
let endPos = pos + int32[pos32 + 2] * 8;
5809+
let endPos = pos + (int32[pos32 + 2] << 3);
58105810
for (; pos !== endPos; ) {
58115811
arr.push(deserializeSpan(pos));
58125812
pos += 8;

0 commit comments

Comments
 (0)