@agoric/xsnap 0.14.3-u14.0 → 0.14.3-u16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +3 -3
  2. package/api.js +4 -2
  3. package/build.env +1 -1
  4. package/moddable/modules/data/base64/base64.js +28 -0
  5. package/moddable/modules/data/base64/manifest.json +11 -0
  6. package/moddable/modules/data/base64/modBase64.c +188 -0
  7. package/moddable/modules/data/binaryMessage/BinaryMessage.js +106 -0
  8. package/moddable/modules/data/crc/crc.c +205 -0
  9. package/moddable/modules/data/crc/crc.js +36 -0
  10. package/moddable/modules/data/crc/manifest.json +8 -0
  11. package/moddable/modules/data/hex/hex.js +28 -0
  12. package/moddable/modules/data/hex/manifest.json +11 -0
  13. package/moddable/modules/data/hex/modHex.c +139 -0
  14. package/moddable/modules/data/logical/logical.js +32 -0
  15. package/moddable/modules/data/logical/modLogical.c +98 -0
  16. package/moddable/modules/data/qrcode/manifest.json +9 -0
  17. package/moddable/modules/data/qrcode/qrcode.c +93 -0
  18. package/moddable/modules/data/qrcode/qrcode.js +23 -0
  19. package/moddable/modules/data/qrcode/qrcodegen.c +1025 -0
  20. package/moddable/modules/data/qrcode/qrcodegen.h +267 -0
  21. package/moddable/modules/data/text/decoder/manifest.json +8 -0
  22. package/moddable/modules/data/text/decoder/textdecoder.c +480 -0
  23. package/moddable/modules/data/text/decoder/textdecoder.js +27 -0
  24. package/moddable/modules/data/text/encoder/manifest.json +8 -0
  25. package/moddable/modules/data/text/encoder/textencoder.c +232 -0
  26. package/moddable/modules/data/text/encoder/textencoder.js +24 -0
  27. package/moddable/modules/data/tinyint/tinyint.c +150 -0
  28. package/moddable/modules/data/tinyint/tinyint.js +53 -0
  29. package/moddable/modules/data/url/manifest.json +17 -0
  30. package/moddable/modules/data/url/url.c +1959 -0
  31. package/moddable/modules/data/url/url.js +210 -0
  32. package/moddable/modules/data/wavreader/manifest.json +8 -0
  33. package/moddable/modules/data/wavreader/wavreader.js +128 -0
  34. package/moddable/modules/data/zlib/deflate.c +161 -0
  35. package/moddable/modules/data/zlib/deflate.js +63 -0
  36. package/moddable/modules/data/zlib/inflate.c +145 -0
  37. package/moddable/modules/data/zlib/inflate.js +66 -0
  38. package/moddable/modules/data/zlib/manifest_deflate.json +9 -0
  39. package/moddable/modules/data/zlib/manifest_inflate.json +9 -0
  40. package/moddable/modules/data/zlib/miniz.c +4924 -0
  41. package/moddable/xs/includes/xs.d.ts +73 -0
  42. package/moddable/xs/includes/xs.h +1533 -0
  43. package/moddable/xs/includes/xsmc.h +206 -0
  44. package/moddable/xs/makefiles/lin/makefile +33 -0
  45. package/moddable/xs/makefiles/lin/xsc.mk +118 -0
  46. package/moddable/xs/makefiles/lin/xsid.mk +90 -0
  47. package/moddable/xs/makefiles/lin/xsl.mk +168 -0
  48. package/moddable/xs/makefiles/lin/xst.mk +201 -0
  49. package/moddable/xs/makefiles/mac/makefile +33 -0
  50. package/moddable/xs/makefiles/mac/xsc.mk +130 -0
  51. package/moddable/xs/makefiles/mac/xsid.mk +102 -0
  52. package/moddable/xs/makefiles/mac/xsl.mk +177 -0
  53. package/moddable/xs/makefiles/mac/xst.mk +203 -0
  54. package/moddable/xs/makefiles/mac/xst_no_asan.txt +52 -0
  55. package/moddable/xs/makefiles/win/build.bat +26 -0
  56. package/moddable/xs/makefiles/win/xsc.mak +142 -0
  57. package/moddable/xs/makefiles/win/xsid.mak +113 -0
  58. package/moddable/xs/makefiles/win/xsl.mak +186 -0
  59. package/moddable/xs/makefiles/win/xst.mak +195 -0
  60. package/moddable/xs/platforms/lin_xs.h +99 -0
  61. package/moddable/xs/platforms/mac_xs.h +97 -0
  62. package/moddable/xs/platforms/wasm_xs.h +79 -0
  63. package/moddable/xs/platforms/win_xs.h +104 -0
  64. package/moddable/xs/platforms/xsHost.h +63 -0
  65. package/moddable/xs/platforms/xsPlatform.h +618 -0
  66. package/moddable/xs/sources/xsAPI.c +2555 -0
  67. package/moddable/xs/sources/xsAll.c +294 -0
  68. package/moddable/xs/sources/xsAll.h +2741 -0
  69. package/moddable/xs/sources/xsArguments.c +222 -0
  70. package/moddable/xs/sources/xsArray.c +2657 -0
  71. package/moddable/xs/sources/xsAtomics.c +844 -0
  72. package/moddable/xs/sources/xsBigInt.c +1859 -0
  73. package/moddable/xs/sources/xsBoolean.c +109 -0
  74. package/moddable/xs/sources/xsCode.c +4493 -0
  75. package/moddable/xs/sources/xsCommon.c +1710 -0
  76. package/moddable/xs/sources/xsCommon.h +1142 -0
  77. package/moddable/xs/sources/xsDataView.c +2890 -0
  78. package/moddable/xs/sources/xsDate.c +1541 -0
  79. package/moddable/xs/sources/xsDebug.c +2710 -0
  80. package/moddable/xs/sources/xsDefaults.c +134 -0
  81. package/moddable/xs/sources/xsError.c +353 -0
  82. package/moddable/xs/sources/xsFunction.c +776 -0
  83. package/moddable/xs/sources/xsGenerator.c +865 -0
  84. package/moddable/xs/sources/xsGlobal.c +839 -0
  85. package/moddable/xs/sources/xsJSON.c +1091 -0
  86. package/moddable/xs/sources/xsLexical.c +1969 -0
  87. package/moddable/xs/sources/xsLockdown.c +933 -0
  88. package/moddable/xs/sources/xsMapSet.c +1649 -0
  89. package/moddable/xs/sources/xsMarshall.c +1020 -0
  90. package/moddable/xs/sources/xsMath.c +624 -0
  91. package/moddable/xs/sources/xsMemory.c +1941 -0
  92. package/moddable/xs/sources/xsModule.c +3101 -0
  93. package/moddable/xs/sources/xsNumber.c +560 -0
  94. package/moddable/xs/sources/xsObject.c +1102 -0
  95. package/moddable/xs/sources/xsPlatforms.c +480 -0
  96. package/moddable/xs/sources/xsProfile.c +577 -0
  97. package/moddable/xs/sources/xsPromise.c +1199 -0
  98. package/moddable/xs/sources/xsProperty.c +636 -0
  99. package/moddable/xs/sources/xsProxy.c +1014 -0
  100. package/moddable/xs/sources/xsRegExp.c +1168 -0
  101. package/moddable/xs/sources/xsRun.c +4889 -0
  102. package/moddable/xs/sources/xsScope.c +1293 -0
  103. package/moddable/xs/sources/xsScript.c +288 -0
  104. package/moddable/xs/sources/xsScript.h +1186 -0
  105. package/moddable/xs/sources/xsSnapshot.c +2161 -0
  106. package/moddable/xs/sources/xsSnapshot.h +51 -0
  107. package/moddable/xs/sources/xsSourceMap.c +218 -0
  108. package/moddable/xs/sources/xsString.c +3332 -0
  109. package/moddable/xs/sources/xsSymbol.c +503 -0
  110. package/moddable/xs/sources/xsSyntaxical.c +4193 -0
  111. package/moddable/xs/sources/xsTree.c +1893 -0
  112. package/moddable/xs/sources/xsType.c +1488 -0
  113. package/moddable/xs/sources/xsdtoa.c +6672 -0
  114. package/moddable/xs/sources/xsmc.c +340 -0
  115. package/moddable/xs/sources/xsre.c +7578 -0
  116. package/package.json +37 -20
  117. package/scripts/get_xsnap_version.sh +14 -0
  118. package/scripts/test-package.sh +21 -0
  119. package/src/avaAssertXS.js +6 -2
  120. package/src/avaHandler.cjs +2 -5
  121. package/src/avaXS.js +7 -8
  122. package/src/build.js +161 -28
  123. package/src/replay.js +0 -3
  124. package/src/xsnap.js +105 -91
  125. package/src/xsrepl.js +2 -3
  126. package/xsnap-native/xsnap/makefiles/lin/makefile +10 -0
  127. package/xsnap-native/xsnap/makefiles/lin/xsnap-worker.mk +156 -0
  128. package/xsnap-native/xsnap/makefiles/lin/xsnap.mk +144 -0
  129. package/xsnap-native/xsnap/makefiles/mac/makefile +10 -0
  130. package/xsnap-native/xsnap/makefiles/mac/xsnap-worker.mk +165 -0
  131. package/xsnap-native/xsnap/makefiles/mac/xsnap.mk +153 -0
  132. package/xsnap-native/xsnap/sources/xsnap-worker.c +1008 -0
  133. package/xsnap-native/xsnap/sources/xsnap.c +717 -0
  134. package/xsnap-native/xsnap/sources/xsnap.h +142 -0
  135. package/xsnap-native/xsnap/sources/xsnapPlatform.c +1501 -0
  136. package/xsnap-native/xsnap/sources/xsnapPlatform.h +105 -0
  137. package/CHANGELOG.md +0 -654
@@ -0,0 +1,1186 @@
1
+ /*
2
+ * Copyright (c) 2016-2017 Moddable Tech, Inc.
3
+ *
4
+ * This file is part of the Moddable SDK Runtime.
5
+ *
6
+ * The Moddable SDK Runtime is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Lesser General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * The Moddable SDK Runtime is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public License
17
+ * along with the Moddable SDK Runtime. If not, see <http://www.gnu.org/licenses/>.
18
+ *
19
+ * This file incorporates work covered by the following copyright and
20
+ * permission notice:
21
+ *
22
+ * Copyright (C) 2010-2016 Marvell International Ltd.
23
+ * Copyright (C) 2002-2010 Kinoma, Inc.
24
+ *
25
+ * Licensed under the Apache License, Version 2.0 (the "License");
26
+ * you may not use this file except in compliance with the License.
27
+ * You may obtain a copy of the License at
28
+ *
29
+ * http://www.apache.org/licenses/LICENSE-2.0
30
+ *
31
+ * Unless required by applicable law or agreed to in writing, software
32
+ * distributed under the License is distributed on an "AS IS" BASIS,
33
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
34
+ * See the License for the specific language governing permissions and
35
+ * limitations under the License.
36
+ */
37
+
38
+ #ifndef __XS6SCRIPT__
39
+ #define __XS6SCRIPT__
40
+
41
+ #include "xsCommon.h"
42
+
43
+ typedef void (*txReport)(void* console, txString thePath, txInteger theLine, txString theFormat, c_va_list theArguments);
44
+
45
+ typedef txS2 txToken;
46
+ typedef txS4 txTokenFlag;
47
+
48
+ typedef struct sxKeyword txKeyword;
49
+ typedef struct sxSymbol txSymbol;
50
+ typedef struct sxScope txScope;
51
+
52
+ typedef struct sxParser txParser;
53
+ typedef struct sxParserChunk txParserChunk;
54
+ typedef struct sxParserJump txParserJump;
55
+
56
+ typedef struct sxByteCode txByteCode;
57
+ typedef struct sxBigIntCode txBigIntCode;
58
+ typedef struct sxBranchCode txBranchCode;
59
+ typedef struct sxIndexCode txIndexCode;
60
+ typedef struct sxIntegerCode txIntegerCode;
61
+ typedef struct sxNumberCode txNumberCode;
62
+ typedef struct sxStringCode txStringCode;
63
+ typedef struct sxSymbolCode txSymbolCode;
64
+ typedef struct sxTargetCode txTargetCode;
65
+ typedef struct sxTargetAlias txTargetAlias;
66
+ typedef struct sxVariableCode txVariableCode;
67
+ typedef struct sxCoder txCoder;
68
+
69
+ struct sxKeyword {
70
+ char text[30];
71
+ txToken token;
72
+ };
73
+
74
+ struct sxSymbol {
75
+ txSymbol* next;
76
+ txID ID;
77
+ txSize length;
78
+ txString string;
79
+ txU4 sum;
80
+ txInteger usage;
81
+ };
82
+
83
+ typedef void (*txNodeCall)(void*, void*);
84
+ typedef void (*txNodeCallAssign)(void*, void*, txFlag);
85
+ typedef txFlag (*txNodeCallThis)(void*, void*, txFlag);
86
+ typedef void (*txNodeDistribute)(void*, txNodeCall, void*);
87
+
88
+ typedef struct {
89
+ txNodeDistribute distribute;
90
+ txNodeCall bind;
91
+ txNodeCall hoist;
92
+ txNodeCall code;
93
+ txNodeCallAssign codeAssign;
94
+ txNodeCall codeDelete;
95
+ txNodeCall codeReference;
96
+ txNodeCallThis codeThis;
97
+ } txNodeDispatch;
98
+
99
+ typedef struct {
100
+ txToken code;
101
+ txToken token;
102
+ txString name;
103
+ txInteger size;
104
+ const txNodeDispatch* dispatch;
105
+ } txNodeDescription;
106
+
107
+ typedef struct sxNode txNode;
108
+
109
+ typedef struct sxDeclareNode txDeclareNode;
110
+ typedef struct sxDefineNode txDefineNode;
111
+ typedef struct sxExportNode txExportNode;
112
+ typedef struct sxHostNode txHostNode;
113
+ typedef struct sxImportNode txImportNode;
114
+ typedef struct sxLabelNode txLabelNode;
115
+ typedef struct sxNativeNode txNativeNode;
116
+ typedef struct sxSpecifierNode txSpecifierNode;
117
+ typedef struct sxStringNode txStringNode;
118
+
119
+ #define mxNodePart\
120
+ txNode* next;\
121
+ const txNodeDescription* description;\
122
+ txSymbol* path;\
123
+ txInteger line;\
124
+ txUnsigned flags
125
+
126
+ #define mxAccessNodePart\
127
+ txSymbol* symbol;\
128
+ txNode* initializer;\
129
+ txDeclareNode* declaration
130
+
131
+ #define mxDeclareNodePart\
132
+ txDeclareNode* nextDeclareNode;\
133
+ txInteger index;\
134
+ txSpecifierNode* importSpecifier;\
135
+ txSpecifierNode* firstExportSpecifier
136
+
137
+ struct sxNode {
138
+ mxNodePart;
139
+ };
140
+
141
+ typedef struct {
142
+ txNode* next;
143
+ const txNodeDescription* description;
144
+ txSymbol* symbol;
145
+ txInteger line;
146
+ txUnsigned flags;
147
+ } txNodeLink;
148
+
149
+ typedef struct {
150
+ txNode* next;
151
+ const txNodeDescription* description;
152
+ txNode* first;
153
+ txInteger length;
154
+ } txNodeList;
155
+
156
+
157
+ typedef struct {
158
+ mxNodePart;
159
+ mxAccessNodePart;
160
+ } txAccessNode;
161
+
162
+ typedef struct {
163
+ mxNodePart;
164
+ txNodeList* items;
165
+ txInteger count;
166
+ } txArrayNode;
167
+
168
+ typedef struct {
169
+ mxNodePart;
170
+ txNodeList* items;
171
+ txInteger count;
172
+ } txArrayBindingNode;
173
+
174
+ typedef struct {
175
+ mxNodePart;
176
+ txNode* reference;
177
+ txNode* value;
178
+ } txAssignNode;
179
+
180
+ typedef struct {
181
+ mxNodePart;
182
+ txBigInt value;
183
+ } txBigIntNode;
184
+
185
+ typedef struct {
186
+ mxNodePart;
187
+ txNode* left;
188
+ txNode* right;
189
+ } txBinaryExpressionNode;
190
+
191
+ typedef struct {
192
+ mxNodePart;
193
+ txNode* target;
194
+ txNode* initializer;
195
+ } txBindingNode;
196
+
197
+ typedef struct {
198
+ mxNodePart;
199
+ txNode* statement;
200
+ txScope* scope;
201
+ } txBlockNode;
202
+
203
+ typedef struct {
204
+ mxNodePart;
205
+ txNode* statement;
206
+ txScope* scope;
207
+ } txBodyNode;
208
+
209
+ typedef struct {
210
+ mxNodePart;
211
+ txSymbol* symbol;
212
+ } txBreakContinueNode;
213
+
214
+ typedef struct {
215
+ mxNodePart;
216
+ txNode* reference;
217
+ txNode* params;
218
+ txScope* scope;
219
+ } txCallNewNode;
220
+
221
+ typedef struct {
222
+ mxNodePart;
223
+ txNode* expression;
224
+ txNode* statement;
225
+ txTargetCode* target;
226
+ } txCaseNode;
227
+
228
+ typedef struct {
229
+ mxNodePart;
230
+ txNode* parameter;
231
+ txNode* statement;
232
+ txScope* scope;
233
+ txScope* statementScope;
234
+ } txCatchNode;
235
+
236
+ typedef struct {
237
+ mxNodePart;
238
+ txSymbol* symbol;
239
+ txNode* heritage;
240
+ txNodeList* items;
241
+ txNode* constructorInit;
242
+ txNode* instanceInit;
243
+ txNode* constructor;
244
+ txScope* symbolScope;
245
+ txScope* scope;
246
+ txAccessNode* instanceInitAccess;
247
+ } txClassNode;
248
+
249
+ struct sxDeclareNode {
250
+ mxNodePart;
251
+ mxAccessNodePart;
252
+ mxDeclareNodePart;
253
+ };
254
+
255
+ struct sxDefineNode {
256
+ mxNodePart;
257
+ mxAccessNodePart;
258
+ mxDeclareNodePart;
259
+ txDefineNode* nextDefineNode;
260
+ };
261
+
262
+ typedef struct {
263
+ mxNodePart;
264
+ txNode* reference;
265
+ } txDeleteNode;
266
+
267
+ typedef struct {
268
+ mxNodePart;
269
+ txNode* statement;
270
+ txNode* expression;
271
+ } txDoNode;
272
+
273
+ struct sxExportNode {
274
+ mxNodePart;
275
+ txNodeList* specifiers;
276
+ txNode* from;
277
+ };
278
+
279
+ typedef struct {
280
+ mxNodePart;
281
+ txNodeList* items;
282
+ txDeclareNode* declaration;
283
+ txBoolean mapped;
284
+ } txExpressionsNode;
285
+
286
+ typedef struct {
287
+ mxNodePart;
288
+ txNode* item;
289
+ txNode* value;
290
+ } txFieldNode;
291
+
292
+ typedef struct {
293
+ mxNodePart;
294
+ txNode* initialization;
295
+ txNode* expression;
296
+ txNode* iteration;
297
+ txNode* statement;
298
+ txScope* scope;
299
+ } txForNode;
300
+
301
+ typedef struct {
302
+ mxNodePart;
303
+ txNode* reference;
304
+ txNode* expression;
305
+ txNode* statement;
306
+ txScope* scope;
307
+ } txForInForOfNode;
308
+
309
+ typedef struct {
310
+ mxNodePart;
311
+ txSymbol* symbol;
312
+ txNode* params;
313
+ txNode* body;
314
+ txScope* scope;
315
+ txInteger scopeCount;
316
+ } txFunctionNode;
317
+
318
+ struct sxHostNode {
319
+ mxNodePart;
320
+ txSymbol* symbol;
321
+ txNode* params;
322
+ txStringNode* at;
323
+ txHostNode* nextHostNode;
324
+ txInteger paramsCount;
325
+ };
326
+
327
+ typedef struct {
328
+ mxNodePart;
329
+ txNode* expression;
330
+ txNode* thenStatement;
331
+ txNode* elseStatement;
332
+ } txIfNode;
333
+
334
+ struct sxImportNode {
335
+ mxNodePart;
336
+ txNodeList* specifiers;
337
+ txNode* from;
338
+ };
339
+
340
+ typedef struct {
341
+ mxNodePart;
342
+ txNode* body;
343
+ } txIncludeNode;
344
+
345
+ typedef struct {
346
+ mxNodePart;
347
+ txInteger value;
348
+ } txIntegerNode;
349
+
350
+ struct sxLabelNode {
351
+ mxNodePart;
352
+ txSymbol* symbol;
353
+ txNode* statement;
354
+ txLabelNode* nextLabel;
355
+ };
356
+
357
+ typedef struct {
358
+ mxNodePart;
359
+ txNode* reference;
360
+ txSymbol* symbol;
361
+ } txMemberNode;
362
+
363
+ typedef struct {
364
+ mxNodePart;
365
+ txNode* reference;
366
+ txNode* at;
367
+ } txMemberAtNode;
368
+
369
+ typedef struct {
370
+ mxNodePart;
371
+ txNode* body;
372
+ txScope* scope;
373
+ txInteger scopeCount;
374
+ txSpecifierNode* firstEmptySpecifier;
375
+ } txModuleNode;
376
+
377
+ typedef struct {
378
+ mxNodePart;
379
+ txNumber value;
380
+ } txNumberNode;
381
+
382
+ typedef struct {
383
+ mxNodePart;
384
+ txNodeList* items;
385
+ } txObjectNode;
386
+
387
+ typedef struct {
388
+ mxNodePart;
389
+ txNodeList* items;
390
+ } txObjectBindingNode;
391
+
392
+ typedef struct {
393
+ mxNodePart;
394
+ txNodeList* items;
395
+ } txParamsNode;
396
+
397
+ typedef struct {
398
+ mxNodePart;
399
+ txNodeList* items;
400
+ txDeclareNode* declaration;
401
+ txBoolean mapped;
402
+ } txParamsBindingNode;
403
+
404
+ typedef struct {
405
+ mxNodePart;
406
+ txNode* left;
407
+ } txPostfixExpressionNode;
408
+
409
+ typedef struct {
410
+ mxNodePart;
411
+ // mxAccessNodePart
412
+ txSymbol* symbol;
413
+ txNode* reference;
414
+ txDeclareNode* declaration;
415
+ } txPrivateMemberNode;
416
+
417
+ typedef struct {
418
+ mxNodePart;
419
+ txSymbol* symbol;
420
+ txNode* value;
421
+ txAccessNode* symbolAccess;
422
+ txAccessNode* valueAccess;
423
+ } txPrivatePropertyNode;
424
+
425
+ typedef struct {
426
+ mxNodePart;
427
+ txNode* body;
428
+ txScope* scope;
429
+ txInteger scopeCount;
430
+ txInteger variableCount;
431
+ } txProgramNode;
432
+
433
+ typedef struct {
434
+ mxNodePart;
435
+ txSymbol* symbol;
436
+ txNode* value;
437
+ } txPropertyNode;
438
+
439
+ typedef struct {
440
+ mxNodePart;
441
+ txNode* at;
442
+ txNode* value;
443
+ txAccessNode* atAccess;
444
+ } txPropertyAtNode;
445
+
446
+ typedef struct {
447
+ mxNodePart;
448
+ txSymbol* symbol;
449
+ txNode* binding;
450
+ } txPropertyBindingNode;
451
+
452
+ typedef struct {
453
+ mxNodePart;
454
+ txNode* at;
455
+ txNode* binding;
456
+ } txPropertyBindingAtNode;
457
+
458
+ typedef struct {
459
+ mxNodePart;
460
+ txNode* expression;
461
+ txNode* thenExpression;
462
+ txNode* elseExpression;
463
+ } txQuestionMarkNode;
464
+
465
+ typedef struct {
466
+ mxNodePart;
467
+ txNode* value;
468
+ txNode* modifier;
469
+ } txRegexpNode;
470
+
471
+ typedef struct {
472
+ mxNodePart;
473
+ txNode* binding;
474
+ } txRestBindingNode;
475
+
476
+ typedef struct {
477
+ mxNodePart;
478
+ } txSkipBindingNode;
479
+
480
+ struct sxSpecifierNode {
481
+ mxNodePart;
482
+ txSymbol* symbol;
483
+ txSymbol* asSymbol;
484
+ txNode* from;
485
+ txDeclareNode* declaration;
486
+ txSpecifierNode* nextSpecifier;
487
+ };
488
+
489
+ typedef struct {
490
+ mxNodePart;
491
+ txNode* expression;
492
+ } txSpreadNode;
493
+
494
+ typedef struct {
495
+ mxNodePart;
496
+ txNode* expression;
497
+ } txStatementNode;
498
+
499
+ typedef struct {
500
+ mxNodePart;
501
+ txNodeList* items;
502
+ } txStatementsNode;
503
+
504
+ struct sxStringNode {
505
+ mxNodePart;
506
+ txInteger length;
507
+ txString value;
508
+ };
509
+
510
+ typedef struct {
511
+ mxNodePart;
512
+ txNode* params;
513
+ } txSuperNode;
514
+
515
+ typedef struct {
516
+ mxNodePart;
517
+ txNode* expression;
518
+ txNodeList* items;
519
+ txScope* scope;
520
+ } txSwitchNode;
521
+
522
+ typedef struct {
523
+ mxNodePart;
524
+ txNode* reference;
525
+ txNodeList* items;
526
+ } txTemplateNode;
527
+
528
+ typedef struct {
529
+ mxNodePart;
530
+ txNode* string;
531
+ txNode* raw;
532
+ } txTemplateItemNode;
533
+
534
+ typedef struct {
535
+ mxNodePart;
536
+ txNode* tryBlock;
537
+ txNode* catchBlock;
538
+ txNode* finallyBlock;
539
+ } txTryNode;
540
+
541
+ typedef struct {
542
+ mxNodePart;
543
+ txNode* right;
544
+ } txUnaryExpressionNode;
545
+
546
+ typedef struct {
547
+ mxNodePart;
548
+ txNode* expression;
549
+ txNode* statement;
550
+ } txWhileNode;
551
+
552
+ typedef struct {
553
+ mxNodePart;
554
+ txNode* expression;
555
+ txNode* statement;
556
+ txScope* scope;
557
+ txDeclareNode* declaration;
558
+ } txWithNode;
559
+
560
+ struct sxParserChunk {
561
+ txParserChunk* next;
562
+ };
563
+
564
+ struct sxScope {
565
+ txParser* parser;
566
+ txScope* scope;
567
+ txInteger closureNodeCount;
568
+ txInteger declareNodeCount;
569
+ txInteger defineNodeCount;
570
+ txInteger nativeNodeCount;
571
+ txDeclareNode* firstDeclareNode;
572
+ txDeclareNode* lastDeclareNode;
573
+ txDefineNode* firstDefineNode;
574
+ txDefineNode* lastDefineNode;
575
+ txNativeNode* firstNativeNode;
576
+ txNativeNode* lastNativeNode;
577
+ txToken token;
578
+ txUnsigned flags;
579
+ txNode* node;
580
+ };
581
+
582
+ struct sxParserJump {
583
+ c_jmp_buf jmp_buf;
584
+ txParserJump* nextJump;
585
+ };
586
+
587
+ struct sxParser {
588
+ txParserChunk* first;
589
+ txParserJump* firstJump;
590
+ void* console;
591
+ int error;
592
+ char* stackLimit;
593
+
594
+ void* dtoa;
595
+
596
+ txSize symbolModulo;
597
+ txSymbol** symbolTable;
598
+
599
+ txID hostNodeIndex;
600
+ txHostNode* firstHostNode;
601
+ txHostNode* lastHostNode;
602
+
603
+ void* stream;
604
+ txGetter getter;
605
+ txSymbol* origin;
606
+ txSymbol* path;
607
+ txString name;
608
+
609
+ int cFlag;
610
+ txUnsigned flags;
611
+
612
+ int ahead;
613
+ txU4 character;
614
+ txU4 lookahead;
615
+ #if mxCESU8
616
+ txU4 surrogate;
617
+ #endif
618
+ int line;
619
+ int crlf;
620
+ int escaped;
621
+ txBigInt bigint;
622
+ txInteger integer;
623
+ txSize modifierLength;
624
+ txString modifier;
625
+ txNumber number;
626
+ txSize rawLength;
627
+ txString raw;
628
+ txSize stringLength;
629
+ txString string;
630
+ txSymbol* symbol;
631
+ txToken token;
632
+
633
+ int line2;
634
+ int crlf2;
635
+ int escaped2;
636
+ txBigInt bigint2;
637
+ txInteger integer2;
638
+ txSize modifierLength2;
639
+ txString modifier2;
640
+ txNumber number2;
641
+ txSize rawLength2;
642
+ txString raw2;
643
+ txSize stringLength2;
644
+ txString string2;
645
+ txSymbol* symbol2;
646
+ txToken token2;
647
+
648
+ txSymbol* function;
649
+
650
+ int errorCount;
651
+ txString errorMessage;
652
+ txSymbol* errorSymbol;
653
+ int warningCount;
654
+ txReport reportError;
655
+ txReport reportWarning;
656
+
657
+ txSymbol* source;
658
+ int* lines;
659
+
660
+ txNode* root;
661
+ int nodeCount;
662
+
663
+ txString emptyString;
664
+ txSymbol* ObjectSymbol;
665
+ txSymbol* __dirnameSymbol;
666
+ txSymbol* __filenameSymbol;
667
+ txSymbol* __jsx__Symbol;
668
+ txSymbol* __proto__Symbol;
669
+ txSymbol* allSymbol;
670
+ txSymbol* argsSymbol;
671
+ txSymbol* argumentsSymbol;
672
+ txSymbol* arrowSymbol;
673
+ txSymbol* asSymbol;
674
+ txSymbol* asyncSymbol;
675
+ txSymbol* awaitSymbol;
676
+ txSymbol* callerSymbol;
677
+ txSymbol* constructorSymbol;
678
+ txSymbol* defaultSymbol;
679
+ txSymbol* doneSymbol;
680
+ txSymbol* evalSymbol;
681
+ txSymbol* exportsSymbol;
682
+ txSymbol* fillSymbol;
683
+ txSymbol* freezeSymbol;
684
+ txSymbol* fromSymbol;
685
+ txSymbol* getSymbol;
686
+ txSymbol* idSymbol;
687
+ txSymbol* includeSymbol;
688
+ txSymbol* InfinitySymbol;
689
+ txSymbol* lengthSymbol;
690
+ txSymbol* letSymbol;
691
+ txSymbol* metaSymbol;
692
+ txSymbol* moduleSymbol;
693
+ txSymbol* nameSymbol;
694
+ txSymbol* NaNSymbol;
695
+ txSymbol* nextSymbol;
696
+ txSymbol* newTargetSymbol;
697
+ txSymbol* ofSymbol;
698
+ txSymbol* privateConstructorSymbol;
699
+ txSymbol* prototypeSymbol;
700
+ txSymbol* RangeErrorSymbol;
701
+ txSymbol* rawSymbol;
702
+ txSymbol* returnSymbol;
703
+ txSymbol* setSymbol;
704
+ txSymbol* sliceSymbol;
705
+ txSymbol* SyntaxErrorSymbol;
706
+ txSymbol* staticSymbol;
707
+ txSymbol* StringSymbol;
708
+ txSymbol* targetSymbol;
709
+ txSymbol* thisSymbol;
710
+ txSymbol* throwSymbol;
711
+ txSymbol* toStringSymbol;
712
+ txSymbol* undefinedSymbol;
713
+ txSymbol* uriSymbol;
714
+ txSymbol* valueSymbol;
715
+ txSymbol* withSymbol;
716
+ txSymbol* yieldSymbol;
717
+
718
+ char* buffer;
719
+ txSize bufferSize;
720
+ txSize total;
721
+ };
722
+
723
+ enum {
724
+ XS_NO_TOKEN = 0,
725
+ XS_TOKEN_ACCESS,
726
+ XS_TOKEN_ADD,
727
+ XS_TOKEN_ADD_ASSIGN,
728
+ XS_TOKEN_AND,
729
+ XS_TOKEN_AND_ASSIGN,
730
+ XS_TOKEN_ARG,
731
+ XS_TOKEN_ARGUMENTS,
732
+ XS_TOKEN_ARGUMENTS_SLOPPY,
733
+ XS_TOKEN_ARGUMENTS_STRICT,
734
+ XS_TOKEN_ARRAY,
735
+ XS_TOKEN_ARRAY_BINDING,
736
+ XS_TOKEN_ARROW,
737
+ XS_TOKEN_ASSIGN,
738
+ XS_TOKEN_AWAIT,
739
+ XS_TOKEN_BIGINT,
740
+ XS_TOKEN_BINDING,
741
+ XS_TOKEN_BIT_AND,
742
+ XS_TOKEN_BIT_AND_ASSIGN,
743
+ XS_TOKEN_BIT_NOT,
744
+ XS_TOKEN_BIT_OR,
745
+ XS_TOKEN_BIT_OR_ASSIGN,
746
+ XS_TOKEN_BIT_XOR,
747
+ XS_TOKEN_BIT_XOR_ASSIGN,
748
+ XS_TOKEN_BLOCK,
749
+ XS_TOKEN_BODY,
750
+ XS_TOKEN_BREAK,
751
+ XS_TOKEN_CALL,
752
+ XS_TOKEN_CASE,
753
+ XS_TOKEN_CATCH,
754
+ XS_TOKEN_CHAIN,
755
+ XS_TOKEN_CLASS,
756
+ XS_TOKEN_COALESCE,
757
+ XS_TOKEN_COALESCE_ASSIGN,
758
+ XS_TOKEN_COLON,
759
+ XS_TOKEN_COMMA,
760
+ XS_TOKEN_CONST,
761
+ XS_TOKEN_CONTINUE,
762
+ XS_TOKEN_CURRENT,
763
+ XS_TOKEN_DEBUGGER,
764
+ XS_TOKEN_DECREMENT,
765
+ XS_TOKEN_DEFAULT,
766
+ XS_TOKEN_DEFINE,
767
+ XS_TOKEN_DELEGATE,
768
+ XS_TOKEN_DELETE,
769
+ XS_TOKEN_DIVIDE,
770
+ XS_TOKEN_DIVIDE_ASSIGN,
771
+ XS_TOKEN_DO,
772
+ XS_TOKEN_DOT,
773
+ XS_TOKEN_ELISION,
774
+ XS_TOKEN_ELSE,
775
+ XS_TOKEN_ENUM,
776
+ XS_TOKEN_EOF,
777
+ XS_TOKEN_EQUAL,
778
+ XS_TOKEN_EVAL,
779
+ XS_TOKEN_EXPONENTIATION,
780
+ XS_TOKEN_EXPONENTIATION_ASSIGN,
781
+ XS_TOKEN_EXPORT,
782
+ XS_TOKEN_EXPRESSIONS,
783
+ XS_TOKEN_EXTENDS,
784
+ XS_TOKEN_FALSE,
785
+ XS_TOKEN_FIELD,
786
+ XS_TOKEN_FINALLY,
787
+ XS_TOKEN_FOR,
788
+ XS_TOKEN_FOR_AWAIT_OF,
789
+ XS_TOKEN_FOR_IN,
790
+ XS_TOKEN_FOR_OF,
791
+ XS_TOKEN_FUNCTION,
792
+ XS_TOKEN_GENERATOR,
793
+ XS_TOKEN_GETTER,
794
+ XS_TOKEN_HOST,
795
+ XS_TOKEN_IDENTIFIER,
796
+ XS_TOKEN_IF,
797
+ XS_TOKEN_IMPLEMENTS,
798
+ XS_TOKEN_IMPORT,
799
+ XS_TOKEN_IMPORT_CALL,
800
+ XS_TOKEN_IMPORT_META,
801
+ XS_TOKEN_IN,
802
+ XS_TOKEN_INCLUDE,
803
+ XS_TOKEN_INCREMENT,
804
+ XS_TOKEN_INSTANCEOF,
805
+ XS_TOKEN_INTEGER,
806
+ XS_TOKEN_INTERFACE,
807
+ XS_TOKEN_ITEMS,
808
+ XS_TOKEN_LABEL,
809
+ XS_TOKEN_LEFT_BRACE,
810
+ XS_TOKEN_LEFT_BRACKET,
811
+ XS_TOKEN_LEFT_PARENTHESIS,
812
+ XS_TOKEN_LEFT_SHIFT,
813
+ XS_TOKEN_LEFT_SHIFT_ASSIGN,
814
+ XS_TOKEN_LESS,
815
+ XS_TOKEN_LESS_EQUAL,
816
+ XS_TOKEN_LET,
817
+ XS_TOKEN_MEMBER,
818
+ XS_TOKEN_MEMBER_AT,
819
+ XS_TOKEN_MINUS,
820
+ XS_TOKEN_MODULE,
821
+ XS_TOKEN_MODULO,
822
+ XS_TOKEN_MODULO_ASSIGN,
823
+ XS_TOKEN_MORE,
824
+ XS_TOKEN_MORE_EQUAL,
825
+ XS_TOKEN_MULTIPLY,
826
+ XS_TOKEN_MULTIPLY_ASSIGN,
827
+ XS_TOKEN_NEW,
828
+ XS_TOKEN_NOT,
829
+ XS_TOKEN_NOT_EQUAL,
830
+ XS_TOKEN_NULL,
831
+ XS_TOKEN_NUMBER,
832
+ XS_TOKEN_OBJECT,
833
+ XS_TOKEN_OBJECT_BINDING,
834
+ XS_TOKEN_OPTION,
835
+ XS_TOKEN_OR,
836
+ XS_TOKEN_OR_ASSIGN,
837
+ XS_TOKEN_PACKAGE,
838
+ XS_TOKEN_PARAMS,
839
+ XS_TOKEN_PARAMS_BINDING,
840
+ XS_TOKEN_PLUS,
841
+ XS_TOKEN_PRIVATE,
842
+ XS_TOKEN_PRIVATE_IDENTIFIER,
843
+ XS_TOKEN_PRIVATE_MEMBER,
844
+ XS_TOKEN_PRIVATE_PROPERTY,
845
+ XS_TOKEN_PROGRAM,
846
+ XS_TOKEN_PROPERTY,
847
+ XS_TOKEN_PROPERTY_AT,
848
+ XS_TOKEN_PROPERTY_BINDING,
849
+ XS_TOKEN_PROPERTY_BINDING_AT,
850
+ XS_TOKEN_PROTECTED,
851
+ XS_TOKEN_PUBLIC,
852
+ XS_TOKEN_QUESTION_MARK,
853
+ XS_TOKEN_REGEXP,
854
+ XS_TOKEN_REST_BINDING,
855
+ XS_TOKEN_RETURN,
856
+ XS_TOKEN_RIGHT_BRACE,
857
+ XS_TOKEN_RIGHT_BRACKET,
858
+ XS_TOKEN_RIGHT_PARENTHESIS,
859
+ XS_TOKEN_SEMICOLON,
860
+ XS_TOKEN_SETTER,
861
+ XS_TOKEN_SHORT,
862
+ XS_TOKEN_SIGNED_RIGHT_SHIFT,
863
+ XS_TOKEN_SIGNED_RIGHT_SHIFT_ASSIGN,
864
+ XS_TOKEN_SKIP_BINDING,
865
+ XS_TOKEN_SPECIFIER,
866
+ XS_TOKEN_SPREAD,
867
+ XS_TOKEN_STATEMENT,
868
+ XS_TOKEN_STATEMENTS,
869
+ XS_TOKEN_STATIC,
870
+ XS_TOKEN_STRICT_EQUAL,
871
+ XS_TOKEN_STRICT_NOT_EQUAL,
872
+ XS_TOKEN_STRING,
873
+ XS_TOKEN_SUBTRACT,
874
+ XS_TOKEN_SUBTRACT_ASSIGN,
875
+ XS_TOKEN_SUPER,
876
+ XS_TOKEN_SWITCH,
877
+ XS_TOKEN_TARGET,
878
+ XS_TOKEN_TEMPLATE,
879
+ XS_TOKEN_TEMPLATE_HEAD,
880
+ XS_TOKEN_TEMPLATE_MIDDLE,
881
+ XS_TOKEN_TEMPLATE_TAIL,
882
+ XS_TOKEN_THIS,
883
+ XS_TOKEN_THROW,
884
+ XS_TOKEN_TRUE,
885
+ XS_TOKEN_TRY,
886
+ XS_TOKEN_TYPEOF,
887
+ XS_TOKEN_UNDEFINED,
888
+ XS_TOKEN_UNSIGNED_RIGHT_SHIFT,
889
+ XS_TOKEN_UNSIGNED_RIGHT_SHIFT_ASSIGN,
890
+ XS_TOKEN_VAR,
891
+ XS_TOKEN_VOID,
892
+ XS_TOKEN_WHILE,
893
+ XS_TOKEN_WITH,
894
+ XS_TOKEN_YIELD,
895
+ XS_TOKEN_COUNT
896
+ };
897
+
898
+ enum {
899
+ /* mxCFlag = 1 << 0, */
900
+ /* mxDebugFlag = 1 << 1, */
901
+ /* mxEvalFlag = 1 << 2, */
902
+ /* mxProgramFlag = 1 << 3, */
903
+ /* mxStrictFlag = 1 << 4, */
904
+ /* mxSuperFlag = 1 << 5, */
905
+ /* mxTargetFlag = 1 << 6, */
906
+ /* mxFieldFlag = 1 << 15, */
907
+ /* mxFunctionFlag = 1 << 16, */
908
+ /* mxGeneratorFlag = 1 << 21, */
909
+ mxParserFlags = mxCFlag | mxDebugFlag | mxProgramFlag,
910
+
911
+
912
+ mxArgumentsFlag = 1 << 7,
913
+ mxArrowFlag = 1 << 8,
914
+ mxAsyncFlag = 1 << 9,
915
+ mxAwaitingFlag = 1 << 10,
916
+ mxBaseFlag = 1 << 11,
917
+ mxDeclareNodeClosureFlag = 1 << 12,
918
+ mxDeclareNodeUseClosureFlag = 1 << 13,
919
+ mxDefaultFlag = 1 << 14,
920
+ mxDerivedFlag = 1 << 17,
921
+ mxElisionFlag = 1 << 18,
922
+ mxExpressionNoValue = 1 << 19,
923
+ mxForFlag = 1 << 20,
924
+ mxGetterFlag = 1 << 22,
925
+ mxMethodFlag = 1 << 23,
926
+ mxNotSimpleParametersFlag = 1 << 24,
927
+ mxSetterFlag = 1 << 25,
928
+ mxShorthandFlag = 1 << 26,
929
+ mxSpreadFlag = 1 << 27,
930
+ mxStaticFlag = 1 << 28,
931
+ mxTailRecursionFlag = 1 << 29,
932
+ mxYieldFlag = 1 << 30,
933
+ mxYieldingFlag = 1 << 31,
934
+
935
+ mxEvalParametersFlag = 1 << 25,
936
+
937
+ mxDefineNodeBoundFlag = 1 << 15,
938
+ mxDefineNodeCodedFlag = 1 << 16,
939
+
940
+
941
+ mxStringEscapeFlag = 1 << 0,
942
+ mxStringErrorFlag = 1 << 1,
943
+ mxStringLegacyFlag = 1 << 2,
944
+ };
945
+
946
+ /* xsScript.c */
947
+
948
+ extern void fxCheckParserStack(txParser* parser, txInteger line);
949
+ extern txString fxCombinePath(txParser* parser, txString base, txString name);
950
+ extern void fxDisposeParserChunks(txParser* parser);
951
+ extern void fxInitializeParser(txParser* parser, void* console, txSize bufferSize, txSize symbolModulo);
952
+ extern void* fxNewParserChunk(txParser* parser, txSize size);
953
+ extern void* fxNewParserChunkClear(txParser* parser, txSize size);
954
+ extern txString fxNewParserString(txParser* parser, txString buffer, txSize size);
955
+ extern txSymbol* fxNewParserSymbol(txParser* parser, txString buffer);
956
+ extern void fxReportMemoryError(txParser* parser, txInteger line, txString theFormat, ...);
957
+ extern void fxReportParserError(txParser* parser, txInteger line, txString theFormat, ...);
958
+ extern void fxTerminateParser(txParser* parser);
959
+
960
+ /* xsLexical.c */
961
+
962
+ extern void fxCheckStrictKeyword(txParser* parser);
963
+ extern void fxGetNextCharacter(txParser* parser);
964
+ extern void fxGetNextRegExp(txParser* parser, txU4 c);
965
+ extern void fxGetNextToken(txParser* parser);
966
+ extern void fxGetNextToken2(txParser* parser);
967
+ extern void fxGetNextTokenTemplate(txParser* parser);
968
+ extern void fxGetNextTokenJSON(txParser* parser);
969
+ extern void fxGetNextTokenJSXAttribute(txParser* parser);
970
+ extern void fxGetNextTokenJSXChild(txParser* parser);
971
+
972
+ /* xsSyntaxical.c */
973
+
974
+ extern void fxProgram(txParser* parser);
975
+ extern void fxModule(txParser* parser);
976
+ extern void fxJSONValue(txParser* parser);
977
+
978
+ /* xsTree.c */
979
+
980
+ extern void fxIncludeTree(txParser* parser, void* stream, txGetter getter, txUnsigned flags, txString path);
981
+ extern void fxParserTree(txParser* parser, void* theStream, txGetter theGetter, txUnsigned flags, txString* name);
982
+
983
+ extern void fxNodeListDistribute(txNodeList* list, txNodeCall call, void* param);
984
+
985
+ extern txAccessNode* fxAccessNodeNew(txParser* parser, txToken token, txSymbol* symbol);
986
+ extern txDeclareNode* fxDeclareNodeNew(txParser* parser, txToken token, txSymbol* symbol);
987
+ extern txDefineNode* fxDefineNodeNew(txParser* parser, txToken token, txSymbol* symbol);
988
+ extern txFieldNode* fxFieldNodeNew(txParser* parser, txToken token);
989
+ extern txSpecifierNode* fxSpecifierNodeNew(txParser* parser, txToken token);
990
+ extern txNode* fxValueNodeNew(txParser* parser, txToken token);
991
+
992
+ extern const txNodeDescription gxTokenDescriptions[XS_TOKEN_COUNT];
993
+
994
+ /* xsSourceMap.c */
995
+
996
+ extern void fxParserSourceMap(txParser* parser, void* theStream, txGetter theGetter, txUnsigned flags, txString* name);
997
+
998
+ /* xsScope.c */
999
+
1000
+ extern void fxParserBind(txParser* parser);
1001
+ extern void fxParserHoist(txParser* parser);
1002
+
1003
+ extern void fxNodeBind(void* it, void* param);
1004
+ extern void fxNodeHoist(void* it, void* param);
1005
+
1006
+ extern void fxAccessNodeBind(void* it, void* param);
1007
+ extern void fxArrayNodeBind(void* it, void* param);
1008
+ extern void fxArrayBindingNodeBind(void* it, void* param);
1009
+ extern void fxAssignNodeBind(void* it, void* param);
1010
+ extern void fxBindingNodeBind(void* it, void* param);
1011
+ extern void fxBlockNodeBind(void* it, void* param);
1012
+ extern void fxBlockNodeHoist(void* it, void* param);
1013
+ extern void fxBodyNodeHoist(void* it, void* param);
1014
+ extern void fxCallNodeHoist(void* it, void* param);
1015
+ extern void fxCatchNodeBind(void* it, void* param);
1016
+ extern void fxCatchNodeHoist(void* it, void* param);
1017
+ extern void fxClassNodeHoist(void* it, void* param);
1018
+ extern void fxClassNodeBind(void* it, void* param);
1019
+ extern void fxCoalesceExpressionNodeHoist(void* it, void* param);
1020
+ extern void fxDeclareNodeBind(void* it, void* param);
1021
+ extern void fxDeclareNodeHoist(void* it, void* param);
1022
+ extern void fxDefineNodeBind(void* it, void* param);
1023
+ extern void fxDefineNodeHoist(void* it, void* param);
1024
+ extern void fxDelegateNodeBind(void* it, void* param);
1025
+ extern void fxExportNodeBind(void* it, void* param);
1026
+ extern void fxExportNodeHoist(void* it, void* param);
1027
+ extern void fxFieldNodeBind(void* it, void* param);
1028
+ extern void fxForNodeBind(void* it, void* param);
1029
+ extern void fxForNodeHoist(void* it, void* param);
1030
+ extern void fxForInForOfNodeBind(void* it, void* param);
1031
+ extern void fxForInForOfNodeHoist(void* it, void* param);
1032
+ extern void fxFunctionNodeBind(void* it, void* param);
1033
+ extern void fxFunctionNodeHoist(void* it, void* param);
1034
+ extern void fxHostNodeBind(void* it, void* param);
1035
+ extern void fxHostNodeHoist(void* it, void* param);
1036
+ extern void fxImportNodeHoist(void* it, void* param);
1037
+ extern void fxModuleNodeBind(void* it, void* param);
1038
+ extern void fxModuleNodeHoist(void* it, void* param);
1039
+ extern void fxObjectNodeBind(void* it, void* param);
1040
+ extern void fxObjectBindingNodeBind(void* it, void* param);
1041
+ extern void fxParamsNodeBind(void* it, void* param);
1042
+ extern void fxParamsBindingNodeBind(void* it, void* param);
1043
+ extern void fxParamsBindingNodeHoist(void* it, void* param);
1044
+ extern void fxPostfixExpressionNodeBind(void* it, void* param);
1045
+ extern void fxPrivateMemberNodeBind(void* it, void* param);
1046
+ extern void fxProgramNodeBind(void* it, void* param);
1047
+ extern void fxProgramNodeHoist(void* it, void* param);
1048
+ extern void fxPropertyNodeHoist(void* it, void* param);
1049
+ extern void fxSpreadNodeBind(void* it, void* param);
1050
+ extern void fxStatementNodeHoist(void* it, void* param);
1051
+ extern void fxStringNodeHoist(void* it, void* param);
1052
+ extern void fxSuperNodeBind(void* it, void* param);
1053
+ extern void fxSwitchNodeBind(void* it, void* param);
1054
+ extern void fxSwitchNodeHoist(void* it, void* param);
1055
+ extern void fxTemplateNodeBind(void* it, void* param);
1056
+ extern void fxTryNodeBind(void* it, void* param);
1057
+ extern void fxWithNodeBind(void* it, void* param);
1058
+ extern void fxWithNodeHoist(void* it, void* param);
1059
+
1060
+ /* xsCode.c */
1061
+
1062
+ extern txScript* fxParserCode(txParser* parser);
1063
+
1064
+ extern void fxNodeCode(void* it, void* param);
1065
+ extern void fxNodeCodeAssign(void* it, void* param, txFlag flag);
1066
+ extern void fxNodeCodeDelete(void* it, void* param);
1067
+ extern void fxNodeCodeReference(void* it, void* param);
1068
+ extern txFlag fxNodeCodeThis(void* it, void* param, txFlag flag);
1069
+
1070
+ extern void fxAccessNodeCode(void* it, void* param);
1071
+ extern void fxAccessNodeCodeAssign(void* it, void* param, txFlag flag);
1072
+ extern void fxAccessNodeCodeDelete(void* it, void* param);
1073
+ extern void fxAccessNodeCodeReference(void* it, void* param);
1074
+ extern txFlag fxAccessNodeCodeThis(void* it, void* param, txFlag flag);
1075
+ extern void fxAndExpressionNodeCode(void* it, void* param);
1076
+ extern void fxArgumentsNodeCode(void* it, void* param);
1077
+ extern void fxArrayNodeCode(void* it, void* param);
1078
+ extern void fxArrayBindingNodeCode(void* it, void* param);
1079
+ extern void fxArrayBindingNodeCodeAssign(void* it, void* param, txFlag flag);
1080
+ extern void fxAssignNodeCode(void* it, void* param);
1081
+ extern void fxAwaitNodeCode(void* it, void* param);
1082
+ extern void fxBigIntNodeCode(void* it, void* param);
1083
+ extern void fxBinaryExpressionNodeCode(void* it, void* param);
1084
+ extern void fxBindingNodeCode(void* it, void* param);
1085
+ extern void fxBindingNodeCodeAssign(void* it, void* param, txFlag flag);
1086
+ extern void fxBindingNodeCodeReference(void* it, void* param);
1087
+ extern void fxBlockNodeCode(void* it, void* param);
1088
+ extern void fxBodyNodeCode(void* it, void* param);
1089
+ extern void fxBreakContinueNodeCode(void* it, void* param);
1090
+ extern void fxCallNodeCode(void* it, void* param);
1091
+ extern void fxCatchNodeCode(void* it, void* param);
1092
+ extern void fxChainNodeCode(void* it, void* param);
1093
+ extern txFlag fxChainNodeCodeThis(void* it, void* param, txFlag flag);
1094
+ extern void fxClassNodeCode(void* it, void* param);
1095
+ extern void fxCoalesceExpressionNodeCode(void* it, void* param);
1096
+ extern void fxCompoundExpressionNodeCode(void* it, void* param);
1097
+ extern void fxDebuggerNodeCode(void* it, void* param);
1098
+ extern void fxDeclareNodeCode(void* it, void* param);
1099
+ extern void fxDeclareNodeCodeAssign(void* it, void* param, txFlag flag);
1100
+ extern void fxDeclareNodeCodeReference(void* it, void* param);
1101
+ extern void fxDefineNodeCode(void* it, void* param);
1102
+ extern void fxDelegateNodeCode(void* it, void* param);
1103
+ extern void fxDeleteNodeCode(void* it, void* param);
1104
+ extern void fxDoNodeCode(void* it, void* param);
1105
+ extern void fxExportNodeCode(void* it, void* param);
1106
+ extern void fxExpressionsNodeCode(void* it, void* param);
1107
+ extern void fxExpressionsNodeCodeDelete(void* it, void* param);
1108
+ extern txFlag fxExpressionsNodeCodeThis(void* it, void* param, txFlag flag);
1109
+ extern void fxFieldNodeCode(void* it, void* param);
1110
+ extern void fxForNodeCode(void* it, void* param);
1111
+ extern void fxForInForOfNodeCode(void* it, void* param);
1112
+ extern void fxFunctionNodeCode(void* it, void* param);
1113
+ extern void fxHostNodeCode(void* it, void* param);
1114
+ extern void fxIfNodeCode(void* it, void* param);
1115
+ extern void fxIncludeNodeCode(void* it, void* param);
1116
+ extern void fxImportNodeCode(void* it, void* param);
1117
+ extern void fxImportCallNodeCode(void* it, void* param);
1118
+ extern void fxImportMetaNodeCode(void* it, void* param);
1119
+ extern void fxIntegerNodeCode(void* it, void* param);
1120
+ extern void fxLabelNodeCode(void* it, void* param);
1121
+ extern void fxMemberNodeCode(void* it, void* param);
1122
+ extern void fxMemberNodeCodeAssign(void* it, void* param, txFlag flag);
1123
+ extern void fxMemberNodeCodeDelete(void* it, void* param);
1124
+ extern void fxMemberNodeCodeReference(void* it, void* param);
1125
+ extern txFlag fxMemberNodeCodeThis(void* it, void* param, txFlag flag);
1126
+ extern void fxMemberAtNodeCode(void* it, void* param);
1127
+ extern void fxMemberAtNodeCodeAssign(void* it, void* param, txFlag flag);
1128
+ extern void fxMemberAtNodeCodeDelete(void* it, void* param);
1129
+ extern void fxMemberAtNodeCodeReference(void* it, void* param);
1130
+ extern txFlag fxMemberAtNodeCodeThis(void* it, void* param, txFlag flag);
1131
+ extern void fxModuleNodeCode(void* it, void* param);
1132
+ extern void fxNewNodeCode(void* it, void* param);
1133
+ extern void fxNumberNodeCode(void* it, void* param);
1134
+ extern void fxObjectNodeCode(void* it, void* param);
1135
+ extern void fxObjectBindingNodeCode(void* it, void* param);
1136
+ extern void fxObjectBindingNodeCodeAssign(void* it, void* param, txFlag flag);
1137
+ extern void fxOptionNodeCode(void* it, void* param);
1138
+ extern txFlag fxOptionNodeCodeThis(void* it, void* param, txFlag flag);
1139
+ extern void fxOrExpressionNodeCode(void* it, void* param);
1140
+ extern void fxParamsNodeCode(void* it, void* param);
1141
+ extern void fxParamsBindingNodeCode(void* it, void* param);
1142
+ extern void fxPostfixExpressionNodeCode(void* it, void* param);
1143
+ extern void fxPrivateIdentifierNodeCode(void* it, void* param);
1144
+ extern void fxPrivateMemberNodeCode(void* it, void* param);
1145
+ extern void fxPrivateMemberNodeCodeAssign(void* it, void* param, txFlag flag);
1146
+ extern void fxPrivateMemberNodeCodeDelete(void* it, void* param);
1147
+ extern void fxPrivateMemberNodeCodeReference(void* it, void* param);
1148
+ extern txFlag fxPrivateMemberNodeCodeThis(void* it, void* param, txFlag flag);
1149
+ extern void fxProgramNodeCode(void* it, void* param);
1150
+ extern void fxQuestionMarkNodeCode(void* it, void* param);
1151
+ extern void fxRegexpNodeCode(void* it, void* param);
1152
+ extern void fxReturnNodeCode(void* it, void* param);
1153
+ extern void fxStatementNodeCode(void* it, void* param);
1154
+ extern void fxStatementsNodeCode(void* it, void* param);
1155
+ extern void fxStringNodeCode(void* it, void* param);
1156
+ extern void fxSuperNodeCode(void* it, void* param);
1157
+ extern void fxSwitchNodeCode(void* it, void* param);
1158
+ extern void fxTemplateNodeCode(void* it, void* param);
1159
+ extern void fxThisNodeCode(void* it, void* param);
1160
+ extern void fxThrowNodeCode(void* it, void* param);
1161
+ extern void fxTryNodeCode(void* it, void* param);
1162
+ extern void fxUnaryExpressionNodeCode(void* it, void* param);
1163
+ extern void fxUndefinedNodeCodeAssign(void* it, void* param, txFlag flag);
1164
+ extern void fxUndefinedNodeCodeDelete(void* it, void* param);
1165
+ extern void fxUndefinedNodeCodeReference(void* it, void* param);
1166
+ extern void fxValueNodeCode(void* it, void* param);
1167
+ extern void fxWhileNodeCode(void* it, void* param);
1168
+ extern void fxWithNodeCode(void* it, void* param);
1169
+ extern void fxYieldNodeCode(void* it, void* param);
1170
+
1171
+ #define mxTryParser(PARSER) \
1172
+ txParserJump __JUMP__; \
1173
+ __JUMP__.nextJump = (PARSER)->firstJump; \
1174
+ (PARSER)->firstJump = &__JUMP__; \
1175
+ if (c_setjmp(__JUMP__.jmp_buf) == 0) {
1176
+
1177
+ #define mxCatchParser(PARSER) \
1178
+ (PARSER)->firstJump = __JUMP__.nextJump; \
1179
+ } \
1180
+ else for ( \
1181
+ (PARSER)->firstJump = __JUMP__.nextJump; \
1182
+ (__JUMP__.nextJump); \
1183
+ __JUMP__.nextJump = NULL)
1184
+
1185
+ #endif /* __XS6SCRIPT__ */
1186
+