@rezless/vm 0.6.2 → 0.7.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 (104) hide show
  1. package/dist/builtins/base64.d.ts +5 -2
  2. package/dist/builtins/base64.d.ts.map +1 -1
  3. package/dist/builtins/base64.js +7 -5
  4. package/dist/builtins/base64.js.map +1 -1
  5. package/dist/builtins/detected.d.ts.map +1 -1
  6. package/dist/builtins/detected.js +1 -1
  7. package/dist/builtins/detected.js.map +1 -1
  8. package/dist/builtins/hash.d.ts +1 -0
  9. package/dist/builtins/hash.d.ts.map +1 -1
  10. package/dist/builtins/hash.js +12 -2
  11. package/dist/builtins/hash.js.map +1 -1
  12. package/dist/builtins/index.d.ts.map +1 -1
  13. package/dist/builtins/index.js +18 -7
  14. package/dist/builtins/index.js.map +1 -1
  15. package/dist/builtins/inventory.d.ts +7 -5
  16. package/dist/builtins/inventory.d.ts.map +1 -1
  17. package/dist/builtins/inventory.js +36 -14
  18. package/dist/builtins/inventory.js.map +1 -1
  19. package/dist/builtins/json.d.ts.map +1 -1
  20. package/dist/builtins/json.js +45 -34
  21. package/dist/builtins/json.js.map +1 -1
  22. package/dist/builtins/link-info.js +2 -2
  23. package/dist/builtins/link-info.js.map +1 -1
  24. package/dist/builtins/linksetdata.d.ts.map +1 -1
  25. package/dist/builtins/linksetdata.js +6 -9
  26. package/dist/builtins/linksetdata.js.map +1 -1
  27. package/dist/builtins/lists.d.ts +15 -0
  28. package/dist/builtins/lists.d.ts.map +1 -1
  29. package/dist/builtins/lists.js +118 -11
  30. package/dist/builtins/lists.js.map +1 -1
  31. package/dist/builtins/math.d.ts +2 -0
  32. package/dist/builtins/math.d.ts.map +1 -1
  33. package/dist/builtins/math.js +30 -5
  34. package/dist/builtins/math.js.map +1 -1
  35. package/dist/builtins/object.d.ts +5 -2
  36. package/dist/builtins/object.d.ts.map +1 -1
  37. package/dist/builtins/object.js +13 -5
  38. package/dist/builtins/object.js.map +1 -1
  39. package/dist/builtins/prim-accessors.d.ts +1 -0
  40. package/dist/builtins/prim-accessors.d.ts.map +1 -1
  41. package/dist/builtins/prim-accessors.js +51 -24
  42. package/dist/builtins/prim-accessors.js.map +1 -1
  43. package/dist/builtins/prim-params.d.ts.map +1 -1
  44. package/dist/builtins/prim-params.js +6 -2
  45. package/dist/builtins/prim-params.js.map +1 -1
  46. package/dist/builtins/script-control.d.ts +4 -3
  47. package/dist/builtins/script-control.d.ts.map +1 -1
  48. package/dist/builtins/script-control.js +22 -8
  49. package/dist/builtins/script-control.js.map +1 -1
  50. package/dist/builtins/strings.d.ts +6 -0
  51. package/dist/builtins/strings.d.ts.map +1 -1
  52. package/dist/builtins/strings.js +47 -6
  53. package/dist/builtins/strings.js.map +1 -1
  54. package/dist/builtins/time.d.ts +3 -5
  55. package/dist/builtins/time.d.ts.map +1 -1
  56. package/dist/builtins/time.js +4 -7
  57. package/dist/builtins/time.js.map +1 -1
  58. package/dist/clock.d.ts +16 -6
  59. package/dist/clock.d.ts.map +1 -1
  60. package/dist/clock.js +38 -11
  61. package/dist/clock.js.map +1 -1
  62. package/dist/dispatch.d.ts +3 -2
  63. package/dist/dispatch.d.ts.map +1 -1
  64. package/dist/dispatch.js +15 -10
  65. package/dist/dispatch.js.map +1 -1
  66. package/dist/interpreter.d.ts +5 -9
  67. package/dist/interpreter.d.ts.map +1 -1
  68. package/dist/interpreter.js +143 -70
  69. package/dist/interpreter.js.map +1 -1
  70. package/dist/linkset.d.ts +11 -3
  71. package/dist/linkset.d.ts.map +1 -1
  72. package/dist/linkset.js +32 -11
  73. package/dist/linkset.js.map +1 -1
  74. package/dist/memory.d.ts +5 -2
  75. package/dist/memory.d.ts.map +1 -1
  76. package/dist/memory.js +5 -2
  77. package/dist/memory.js.map +1 -1
  78. package/dist/prim-params.d.ts +27 -10
  79. package/dist/prim-params.d.ts.map +1 -1
  80. package/dist/prim-params.js +198 -122
  81. package/dist/prim-params.js.map +1 -1
  82. package/dist/prim.d.ts +1 -1
  83. package/dist/prim.d.ts.map +1 -1
  84. package/dist/prim.js +2 -2
  85. package/dist/prim.js.map +1 -1
  86. package/dist/runtime.d.ts +11 -3
  87. package/dist/runtime.d.ts.map +1 -1
  88. package/dist/script.d.ts +24 -10
  89. package/dist/script.d.ts.map +1 -1
  90. package/dist/script.js +118 -65
  91. package/dist/script.js.map +1 -1
  92. package/dist/typecheck.d.ts +3 -1
  93. package/dist/typecheck.d.ts.map +1 -1
  94. package/dist/typecheck.js +25 -5
  95. package/dist/typecheck.js.map +1 -1
  96. package/dist/values/coerce.d.ts +1 -1
  97. package/dist/values/coerce.d.ts.map +1 -1
  98. package/dist/values/coerce.js +10 -6
  99. package/dist/values/coerce.js.map +1 -1
  100. package/dist/values/format.d.ts +3 -1
  101. package/dist/values/format.d.ts.map +1 -1
  102. package/dist/values/format.js +10 -6
  103. package/dist/values/format.js.map +1 -1
  104. package/package.json +2 -2
package/dist/script.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { truncateUtf8 } from './values/utf8.js';
2
- import { ResetScriptSignal } from './builtins/object.js';
3
- import { ScriptRemovedSignal } from './builtins/inventory.js';
2
+ import { HaltSignal, ResetScriptSignal } from './builtins/object.js';
4
3
  import { Mulberry32 } from './random.js';
5
4
  import { inventoryItemName } from './inventory.js';
6
5
  import { NULL_KEY } from './values/types.js';
@@ -17,7 +16,8 @@ import { CONSTANT_TABLE } from './generated/constants_table.js';
17
16
  import { DEBUG_CHANNEL, HTTP_BODY_TRUNCATED } from './generated/constants.js';
18
17
  import { own } from './own.js';
19
18
  import { deterministicKey } from './keys.js';
20
- import { Memory, StackHeapCollision, codeBytes } from './memory.js';
19
+ import { Memory, RuntimeError, codeBytes } from './memory.js';
20
+ import { invalidPrograms } from './typecheck.js';
21
21
  /**
22
22
  * Public handle for a loaded LSL script. Tests interact almost entirely
23
23
  * with this surface: drive events via fire(), inspect chat / calls,
@@ -30,6 +30,7 @@ export class Script {
30
30
  globals;
31
31
  userFunctions;
32
32
  functions;
33
+ invalidPrograms;
33
34
  handlersByState;
34
35
  started = false;
35
36
  stubs;
@@ -43,6 +44,8 @@ export class Script {
43
44
  running = true;
44
45
  /** Events parked while `running === false`; replayed when re-enabled. */
45
46
  parkedEvents = [];
47
+ /** The handler chain suspended in llSleep or a builtin delay, if any. */
48
+ task = null;
46
49
  constructor(ast, options = {}) {
47
50
  this.ast = ast;
48
51
  // Auto-wrap: if no host prim was provided, create a default 1-prim linkset.
@@ -112,6 +115,8 @@ export class Script {
112
115
  permissions: { granted: 0, agent: NULL_KEY, requests: [] },
113
116
  lifecycle: {
114
117
  dead: false,
118
+ dying: false,
119
+ removed: false,
115
120
  },
116
121
  filename,
117
122
  source,
@@ -127,6 +132,7 @@ export class Script {
127
132
  initGlobals(this.globals, ast.globals);
128
133
  this.userFunctions = new Map(ast.functions.map((f) => [f.name, f]));
129
134
  this.functions = options.functions ?? {};
135
+ this.invalidPrograms = invalidPrograms(ast, this.functions);
130
136
  this.stubs = options.stubs ?? 'allow';
131
137
  this.handlersByState = indexHandlers(ast);
132
138
  if (!this.handlersByState.has('default')) {
@@ -206,9 +212,10 @@ export class Script {
206
212
  : typedList([HTTP_BODY_TRUNCATED, req.bodyMaxLength], ['integer', 'integer']),
207
213
  body: cut,
208
214
  };
215
+ const started = this.host.scripts.filter((s) => s.handles('http_response'));
209
216
  for (const s of this.host.scripts)
210
217
  this.clockView.scheduleOn(s, this.now, 'http_response', payload);
211
- this.linkset.drainQueue();
218
+ this.linkset.settle(started);
212
219
  }
213
220
  /** Convenience: respond to the most recent HTTP request. */
214
221
  respondToLastHttp(response) {
@@ -244,9 +251,10 @@ export class Script {
244
251
  throw new Error(`unknown dataserver request key: ${key}`);
245
252
  req.fulfilled = true;
246
253
  const payload = { queryid: key, data: value };
254
+ const started = this.host.scripts.filter((s) => s.handles('dataserver'));
247
255
  for (const s of this.host.scripts)
248
256
  this.clockView.scheduleOn(s, this.now, 'dataserver', payload);
249
- this.linkset.drainQueue();
257
+ this.linkset.settle(started);
250
258
  }
251
259
  /** Convenience: respond to the most recent dataserver request. */
252
260
  respondToLastDataserver(value) {
@@ -272,8 +280,9 @@ export class Script {
272
280
  const granted = req.permissions & (permissions ?? req.permissions);
273
281
  this.state.permissions.granted = granted;
274
282
  this.state.permissions.agent = req.agent;
283
+ const started = this.handles('run_time_permissions') ? [this] : [];
275
284
  this.clockView.schedule(this.now, 'run_time_permissions', { perm: granted });
276
- this.linkset.drainQueue();
285
+ this.linkset.settle(started);
277
286
  }
278
287
  /** Answer the most recent unanswered permission request with No. */
279
288
  denyPermissions() {
@@ -308,8 +317,8 @@ export class Script {
308
317
  return this.state.lifecycle.dead;
309
318
  }
310
319
  /**
311
- * Match chat against this script's listens and queue `listen` events for
312
- * every match. Does not drain — caller does that. Used by Linkset.deliverChat
320
+ * Match chat against this script's listens and queue one `listen` event
321
+ * if any of them match; returns whether one did. Does not drain — caller does that. Used by Linkset.deliverChat
313
322
  * for cross-script delivery.
314
323
  */
315
324
  matchChatListens(opts) {
@@ -330,15 +339,16 @@ export class Script {
330
339
  id: opts.key,
331
340
  msg: opts.message,
332
341
  });
342
+ return true;
333
343
  }
344
+ return false;
334
345
  }
335
346
  /**
336
347
  * Deliver chat to this script only. Linkset-wide delivery (every listening
337
348
  * script in the linkset) is `linkset.deliverChat`.
338
349
  */
339
350
  deliverChat(opts) {
340
- this.matchChatListens(opts);
341
- this.linkset.drainQueue();
351
+ this.linkset.settle(this.matchChatListens(opts) && this.handles('listen') ? [this] : []);
342
352
  }
343
353
  /**
344
354
  * Override an `ll*` function for the lifetime of this Script. Replaces
@@ -375,7 +385,10 @@ export class Script {
375
385
  *
376
386
  * Synchronous: runs the handler to completion before returning, including
377
387
  * any state transitions triggered by `state foo;` (state_exit / change /
378
- * state_entry chain runs before fire() returns).
388
+ * state_entry chain runs before fire() returns). A handler that sleeps
389
+ * moves the clock to its wake time, running every other script's due
390
+ * events on the way. A script already sleeping handles the event after
391
+ * its current handler.
379
392
  *
380
393
  * If the current state has no handler for `eventName`, this is a no-op
381
394
  * — matches LSL behavior of silently dropping unhandled events.
@@ -391,16 +404,16 @@ export class Script {
391
404
  this.started = true;
392
405
  const entry = this.handlersByState.get(this.state.currentState)?.get('state_entry');
393
406
  if (entry && eventName !== 'state_entry') {
394
- this.runHandler(entry, []);
395
- this.linkset.drainQueue();
407
+ this.begin(entry, [], {});
408
+ this.linkset.settle([this]);
396
409
  }
397
410
  }
398
- const handler = this.handlersByState.get(this.state.currentState)?.get(eventName);
399
- if (handler) {
400
- const args = bindPayload(eventName, payload);
401
- this.withDetected(payload, () => this.runHandler(handler, args));
402
- }
403
- this.linkset.drainQueue();
411
+ const started = this.handles(eventName) ? [this] : [];
412
+ if (this.task)
413
+ this.clockView.schedule(this.now, eventName, payload);
414
+ else
415
+ this.deliver(eventName, payload);
416
+ this.linkset.settle(started);
404
417
  }
405
418
  /**
406
419
  * Run state_entry of the default state. If the script has been auto-started
@@ -411,32 +424,42 @@ export class Script {
411
424
  return;
412
425
  if (this.started)
413
426
  return;
427
+ this.boot();
428
+ this.linkset.settle([this]);
429
+ }
430
+ boot() {
414
431
  this.started = true;
415
432
  const entry = this.handlersByState.get('default')?.get('state_entry');
416
- if (entry) {
417
- this.runHandler(entry, []);
418
- }
419
- this.linkset.drainQueue();
433
+ if (entry)
434
+ this.begin(entry, [], {});
420
435
  }
421
436
  /**
422
437
  * Reset the script as if `llResetScript` had been called: clear globals,
423
438
  * reseed them from the AST initializers, return to the default state,
424
439
  * cancel timers, and run state_entry. Used internally when llResetScript
425
440
  * is invoked from inside a handler; tests can also call it directly.
441
+ * A sleeping handler is abandoned.
426
442
  */
427
443
  reset() {
444
+ this.restart();
445
+ this.linkset.settle([this]);
446
+ }
447
+ restart() {
448
+ this.abandon();
428
449
  this.state.memory.releaseStack();
429
450
  this.globals.clear();
430
451
  try {
431
452
  initGlobals(this.globals, this.ast.globals);
432
453
  }
433
454
  catch (e) {
434
- if (e instanceof StackHeapCollision)
455
+ if (e instanceof RuntimeError)
435
456
  this.crash(e);
436
457
  throw e;
437
458
  }
438
459
  this.state.currentState = 'default';
439
460
  this.state.lifecycle.dead = false;
461
+ this.state.lifecycle.dying = false;
462
+ this.state.lifecycle.removed = false;
440
463
  this.state.listens.length = 0;
441
464
  this.state.permissions.granted = 0;
442
465
  this.state.permissions.agent = NULL_KEY;
@@ -454,10 +477,9 @@ export class Script {
454
477
  if (this.state.coverage)
455
478
  this.state.coverage.hitState('default');
456
479
  // Per LSL: if the script is stopped, reset just clears state — no
457
- // state_entry runs until it's restarted. If it's running, fire
458
- // state_entry now via start().
480
+ // state_entry runs until it's restarted.
459
481
  if (this.running)
460
- this.start();
482
+ this.boot();
461
483
  }
462
484
  /**
463
485
  * Internal: invoked by `Linkset.drainQueue` to deliver one queued event.
@@ -468,33 +490,59 @@ export class Script {
468
490
  if (this.state.lifecycle.dead)
469
491
  return;
470
492
  if (event === '__reset') {
471
- this.reset();
493
+ this.restart();
472
494
  return;
473
495
  }
474
496
  const handler = this.handlersByState.get(this.state.currentState)?.get(event);
475
- if (!handler)
476
- return;
477
- const args = bindPayload(event, payload);
478
- this.withDetected(payload, () => this.runHandler(handler, args));
497
+ if (handler)
498
+ this.begin(handler, bindPayload(event, payload), payload);
479
499
  }
480
- /**
481
- * Push a detected context (if the payload includes `detected`) for the
482
- * duration of `fn`, so llDetectedKey / Name / Pos / etc. inside the
483
- * handler resolve to the right entries.
484
- */
485
- withDetected(payload, fn) {
486
- const detected = payload['detected'];
487
- if (!Array.isArray(detected) || detected.length === 0) {
488
- fn();
500
+ /** Whether the current state has a handler for `event`. */
501
+ handles(event) {
502
+ return this.handlersByState.get(this.state.currentState).has(event);
503
+ }
504
+ /** Virtual time a sleeping handler wakes at, or undefined when the script is idle. */
505
+ get wakeAt() {
506
+ return this.task?.wakeAt;
507
+ }
508
+ /** Internal: invoked by `Linkset.drainQueue` when a sleeping handler's wake time comes. */
509
+ wake() {
510
+ const task = this.task;
511
+ if (!task)
489
512
  return;
490
- }
491
- this.state.detectedStack.push({ entries: detected });
513
+ this.task = null;
514
+ this.step(task);
515
+ }
516
+ begin(handler, args, payload) {
517
+ this.step({ run: this.runHandler(handler, args, payload), startedAt: this.now, wakeAt: 0 });
518
+ }
519
+ step(task) {
520
+ let r;
492
521
  try {
493
- fn();
522
+ r = task.run.next();
494
523
  }
495
- finally {
496
- this.state.detectedStack.pop();
524
+ catch (e) {
525
+ this.finish(task);
526
+ throw e;
497
527
  }
528
+ if (!r.done) {
529
+ this.task = { ...task, wakeAt: r.value.until };
530
+ return;
531
+ }
532
+ this.finish(task);
533
+ if (r.value)
534
+ this.restart();
535
+ }
536
+ finish(task) {
537
+ if (this.now === task.startedAt)
538
+ return;
539
+ this.clockView.busyUntilMs = this.now;
540
+ this.linkset.clock.requeue(this);
541
+ }
542
+ abandon() {
543
+ const task = this.task;
544
+ this.task = null;
545
+ task?.run.return(false);
498
546
  }
499
547
  /**
500
548
  * Run a handler and process any state-change signal it raises.
@@ -505,31 +553,34 @@ export class Script {
505
553
  * with a small loop so that a `state_exit` or `state_entry` that itself
506
554
  * does `state foo;` continues the chain correctly.
507
555
  */
508
- runHandler(handler, args) {
509
- if (this.state.lifecycle.dead)
510
- return;
511
- const startedAt = this.now;
556
+ *runHandler(handler, args, payload) {
557
+ const detected = payload['detected'];
558
+ const pushed = Array.isArray(detected) && detected.length > 0;
559
+ if (pushed)
560
+ this.state.detectedStack.push({ entries: detected });
512
561
  try {
513
562
  this.state.memory.startEvent();
514
- this.runHandlerChain(handler, args);
563
+ return yield* this.runHandlerChain(handler, args);
515
564
  }
516
565
  catch (e) {
517
- if (e instanceof StackHeapCollision)
566
+ if (e instanceof RuntimeError)
518
567
  this.crash(e);
519
568
  throw e;
520
569
  }
521
570
  finally {
522
- if (this.now > startedAt)
523
- this.clockView.busyUntilMs = this.now;
571
+ if (pushed)
572
+ this.state.detectedStack.pop();
524
573
  }
525
574
  }
526
- runHandlerChain(handler, args) {
575
+ /** Returns true when the chain ended in llResetScript. */
576
+ *runHandlerChain(handler, args) {
527
577
  const ctx = {
528
578
  state: this.state,
529
579
  mocks: this.mocks,
530
580
  globals: this.globals,
531
581
  userFunctions: this.userFunctions,
532
582
  functions: this.functions,
583
+ invalidPrograms: this.invalidPrograms,
533
584
  script: this,
534
585
  prim: this.host,
535
586
  linkset: this.linkset,
@@ -542,28 +593,28 @@ export class Script {
542
593
  const { handler: h, args: a } = pending;
543
594
  pending = null;
544
595
  try {
545
- execHandler(ctx, h, a);
596
+ yield* execHandler(ctx, h, a);
546
597
  }
547
598
  catch (e) {
548
- if (e instanceof ResetScriptSignal) {
549
- this.reset();
550
- return;
551
- }
552
- if (e instanceof ScriptRemovedSignal)
553
- return;
599
+ if (e instanceof ResetScriptSignal)
600
+ return true;
601
+ if (e instanceof HaltSignal)
602
+ return false;
554
603
  if (!(e instanceof StateChangeSignal))
555
604
  throw e;
605
+ if (this.state.lifecycle.removed)
606
+ return false;
556
607
  const target = e.target;
557
608
  if (target === this.state.currentState || this.state.lifecycle.dead)
558
609
  continue;
559
610
  const exit = this.handlersByState.get(this.state.currentState)?.get('state_exit');
560
611
  if (exit) {
561
612
  try {
562
- execHandler(ctx, exit, []);
613
+ yield* execHandler(ctx, exit, []);
563
614
  }
564
615
  catch (e2) {
565
- if (e2 instanceof ScriptRemovedSignal)
566
- return;
616
+ if (e2 instanceof HaltSignal)
617
+ return false;
567
618
  if (e2 instanceof StateChangeSignal) {
568
619
  // Discard further changes inside state_exit per LSL convention.
569
620
  }
@@ -586,6 +637,7 @@ export class Script {
586
637
  }
587
638
  }
588
639
  }
640
+ return false;
589
641
  }
590
642
  /** Stop the script after a fatal run-time error, reporting it on DEBUG_CHANNEL. */
591
643
  crash(error) {
@@ -605,6 +657,7 @@ export class Script {
605
657
  markDead() {
606
658
  this.state.lifecycle.dead = true;
607
659
  this.clockView.cancelTimer();
660
+ this.abandon();
608
661
  }
609
662
  /**
610
663
  * Replay any events parked while this script was disabled. Caller is
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import type { Script as Ast, Diagnostic } from '@rezless/parser';
1
+ import type { Script as Ast, Diagnostic, Node } from '@rezless/parser';
2
2
  import type { FunctionSignature } from './script.js';
3
3
  /**
4
4
  * `functions` declares names outside the LSL definitions that tests provide through
5
5
  * `script.mock`; calls to any other undeclared name are rejected, as in SL.
6
6
  */
7
7
  export declare function typecheck(ast: Ast, filename: string, functions?: Readonly<Record<string, FunctionSignature>>): Diagnostic[];
8
+ /** Functions and handlers that use the value of a key print, which Mono can't run. */
9
+ export declare function invalidPrograms(ast: Ast, functions?: Readonly<Record<string, FunctionSignature>>): ReadonlySet<Node>;
8
10
  //# sourceMappingURL=typecheck.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../src/typecheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,IAAI,GAAG,EAIb,UAAU,EAMX,MAAM,iBAAiB,CAAA;AAOxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAcpD;;;GAGG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAM,GAC1D,UAAU,EAAE,CAEd"}
1
+ {"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../src/typecheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,IAAI,GAAG,EAIb,UAAU,EAEV,IAAI,EAIL,MAAM,iBAAiB,CAAA;AAOxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAcpD;;;GAGG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAM,GAC1D,UAAU,EAAE,CAEd;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAC7B,GAAG,EAAE,GAAG,EACR,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAM,GAC1D,WAAW,CAAC,IAAI,CAAC,CAInB"}
package/dist/typecheck.js CHANGED
@@ -9,6 +9,12 @@ import { own } from './own.js';
9
9
  export function typecheck(ast, filename, functions = {}) {
10
10
  return new Checker(ast, filename, functions).run();
11
11
  }
12
+ /** Functions and handlers that use the value of a key print, which Mono can't run. */
13
+ export function invalidPrograms(ast, functions = {}) {
14
+ const checker = new Checker(ast, '<inline>', functions);
15
+ checker.run();
16
+ return checker.invalid;
17
+ }
12
18
  const CASTS = {
13
19
  integer: ['integer', 'float', 'string', 'list'],
14
20
  float: ['integer', 'float', 'string', 'list'],
@@ -103,6 +109,9 @@ class Checker {
103
109
  labelScopes = [];
104
110
  /** Every label in the current function or handler; Mono rejects duplicates. */
105
111
  labels = new Set();
112
+ /** The function or handler being checked. */
113
+ owner = null;
114
+ invalid = new Set();
106
115
  constructor(ast, filename, declared) {
107
116
  this.ast = ast;
108
117
  this.filename = filename;
@@ -152,6 +161,7 @@ class Checker {
152
161
  for (const f of this.ast.functions) {
153
162
  this.returnType = f.returnType ?? 'void';
154
163
  this.inFunction = true;
164
+ this.owner = f;
155
165
  this.body(f.params, f.body);
156
166
  if (f.returnType && !alwaysReturns(f.body)) {
157
167
  this.error(f, `Not all code paths return a value in ${f.name}`);
@@ -176,6 +186,7 @@ class Checker {
176
186
  this.error(h, `Event '${h.name}' takes (${want})`);
177
187
  }
178
188
  this.returnType = 'void';
189
+ this.owner = h;
179
190
  this.body(h.params, h.body);
180
191
  }
181
192
  }
@@ -232,14 +243,19 @@ class Checker {
232
243
  case 'BlockStatement':
233
244
  return this.block(s, mode);
234
245
  case 'VariableDeclaration':
235
- if (s.init)
236
- this.expectAssignable(s, s.typeName, this.expr(s.init));
246
+ if (s.init) {
247
+ const t = this.expr(s.init);
248
+ if (s.typeName === 'key' && s.init.kind === 'PrintExpression' && t === 'key') {
249
+ this.error(s, 'Internal server compile error');
250
+ }
251
+ this.expectAssignable(s, s.typeName, t);
252
+ }
237
253
  this.declare(this.scopes[this.scopes.length - 1], s, s.name, s.typeName);
238
254
  return [];
239
255
  case 'EmptyStatement':
240
256
  return [];
241
257
  case 'ExpressionStatement':
242
- this.expr(s.expression);
258
+ this.expr(s.expression.kind === 'PrintExpression' ? s.expression.argument : s.expression);
243
259
  return [];
244
260
  case 'IfStatement': {
245
261
  this.condition(s.test);
@@ -418,8 +434,12 @@ class Checker {
418
434
  this.mismatch(e, `'${e.operator}' not defined for ${t}`);
419
435
  return t;
420
436
  }
421
- case 'PrintExpression':
422
- return this.expr(e.argument);
437
+ case 'PrintExpression': {
438
+ const t = this.expr(e.argument);
439
+ if (t === 'key' && this.owner)
440
+ this.invalid.add(this.owner);
441
+ return t;
442
+ }
423
443
  }
424
444
  }
425
445
  component(e) {