starlight-cli 1.0.38 → 1.0.39
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/dist/index.js +12 -7
- package/package.json +1 -1
- package/src/evaluator.js +12 -7
package/dist/index.js
CHANGED
|
@@ -1468,7 +1468,10 @@ async evaluate(node, env = this.global) {
|
|
|
1468
1468
|
case 'Identifier': return env.get(node.name);
|
|
1469
1469
|
case 'IfStatement': return await this.evalIf(node, env);
|
|
1470
1470
|
case 'WhileStatement': return await this.evalWhile(node, env);
|
|
1471
|
-
case 'ForStatement':
|
|
1471
|
+
case 'ForStatement':
|
|
1472
|
+
case 'ForInStatement':
|
|
1473
|
+
return await this.evalFor(node, env);
|
|
1474
|
+
|
|
1472
1475
|
case 'BreakStatement': throw new BreakSignal();
|
|
1473
1476
|
case 'ContinueStatement': throw new ContinueSignal();
|
|
1474
1477
|
case 'ImportStatement': return await this.evalImport(node, env);
|
|
@@ -1484,12 +1487,14 @@ async evaluate(node, env = this.global) {
|
|
|
1484
1487
|
return await Promise.all(node.elements.map(el => this.evaluate(el, env)));
|
|
1485
1488
|
case 'IndexExpression': return await this.evalIndex(node, env);
|
|
1486
1489
|
case 'ObjectExpression': {
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1490
|
+
const out = {};
|
|
1491
|
+
for (const p of node.props) {
|
|
1492
|
+
const key = await this.evaluate(p.key, env);
|
|
1493
|
+
out[key] = await this.evaluate(p.value, env);
|
|
1494
|
+
}
|
|
1495
|
+
return out;
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1493
1498
|
case 'MemberExpression': return await this.evalMember(node, env);
|
|
1494
1499
|
case 'UpdateExpression': return await this.evalUpdate(node, env);
|
|
1495
1500
|
case 'AwaitExpression': {
|
package/package.json
CHANGED
package/src/evaluator.js
CHANGED
|
@@ -125,7 +125,10 @@ async evaluate(node, env = this.global) {
|
|
|
125
125
|
case 'Identifier': return env.get(node.name);
|
|
126
126
|
case 'IfStatement': return await this.evalIf(node, env);
|
|
127
127
|
case 'WhileStatement': return await this.evalWhile(node, env);
|
|
128
|
-
case 'ForStatement':
|
|
128
|
+
case 'ForStatement':
|
|
129
|
+
case 'ForInStatement':
|
|
130
|
+
return await this.evalFor(node, env);
|
|
131
|
+
|
|
129
132
|
case 'BreakStatement': throw new BreakSignal();
|
|
130
133
|
case 'ContinueStatement': throw new ContinueSignal();
|
|
131
134
|
case 'ImportStatement': return await this.evalImport(node, env);
|
|
@@ -141,12 +144,14 @@ async evaluate(node, env = this.global) {
|
|
|
141
144
|
return await Promise.all(node.elements.map(el => this.evaluate(el, env)));
|
|
142
145
|
case 'IndexExpression': return await this.evalIndex(node, env);
|
|
143
146
|
case 'ObjectExpression': {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
147
|
+
const out = {};
|
|
148
|
+
for (const p of node.props) {
|
|
149
|
+
const key = await this.evaluate(p.key, env);
|
|
150
|
+
out[key] = await this.evaluate(p.value, env);
|
|
151
|
+
}
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
154
|
+
|
|
150
155
|
case 'MemberExpression': return await this.evalMember(node, env);
|
|
151
156
|
case 'UpdateExpression': return await this.evalUpdate(node, env);
|
|
152
157
|
case 'AwaitExpression': {
|