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 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': return await this.evalFor(node, env);
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
- const out = {};
1488
- for (const p of node.props) {
1489
- out[p.key] = await this.evaluate(p.value, env);
1490
- }
1491
- return out;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "starlight-cli",
3
- "version": "1.0.38",
3
+ "version": "1.0.39",
4
4
  "description": "Starlight Programming Language CLI",
5
5
  "bin": {
6
6
  "starlight": "index.js"
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': return await this.evalFor(node, env);
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
- const out = {};
145
- for (const p of node.props) {
146
- out[p.key] = await this.evaluate(p.value, env);
147
- }
148
- return out;
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': {