porffor 0.17.0-94400a2b8 → 0.17.0-a1f691e30
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.
- package/compiler/codegen.js +15 -5
- package/package.json +1 -1
package/compiler/codegen.js
CHANGED
@@ -72,6 +72,9 @@ const generate = (scope, decl, global = false, name = undefined, valueUnused = f
|
|
72
72
|
case 'ExpressionStatement':
|
73
73
|
return generateExp(scope, decl);
|
74
74
|
|
75
|
+
case 'SequenceExpression':
|
76
|
+
return generateSequence(scope, decl);
|
77
|
+
|
75
78
|
case 'CallExpression':
|
76
79
|
return generateCall(scope, decl, global, name, valueUnused);
|
77
80
|
|
@@ -1454,6 +1457,18 @@ const generateExp = (scope, decl) => {
|
|
1454
1457
|
return out;
|
1455
1458
|
};
|
1456
1459
|
|
1460
|
+
const generateSequence = (scope, decl) => {
|
1461
|
+
let out = [];
|
1462
|
+
|
1463
|
+
const exprs = decl.expressions;
|
1464
|
+
for (let i = 0; i < exprs.length; i++) {
|
1465
|
+
if (i > 0) disposeLeftover(out);
|
1466
|
+
out.push(...generate(scope, exprs[i]));
|
1467
|
+
}
|
1468
|
+
|
1469
|
+
return out;
|
1470
|
+
};
|
1471
|
+
|
1457
1472
|
const CTArrayUtil = {
|
1458
1473
|
getLengthI32: pointer => [
|
1459
1474
|
...number(0, Valtype.i32),
|
@@ -2329,11 +2344,6 @@ const generateAssign = (scope, decl, _global, _name, valueUnused = false) => {
|
|
2329
2344
|
const { type, name } = decl.left;
|
2330
2345
|
const [ local, isGlobal ] = lookupName(scope, name);
|
2331
2346
|
|
2332
|
-
if (type === 'ObjectPattern') {
|
2333
|
-
// hack: ignore object parts of `var a = {} = 2`
|
2334
|
-
return generate(scope, decl.right);
|
2335
|
-
}
|
2336
|
-
|
2337
2347
|
if (isFuncType(decl.right.type)) {
|
2338
2348
|
// hack for a = function () { ... }
|
2339
2349
|
decl.right.id = { name };
|
package/package.json
CHANGED