1 | import { Environment } from './environment';
|
2 |
|
3 | import { Reference } from '@glimmer/reference';
|
4 | import { Destroyable } from '../core';
|
5 | import { DynamicScope } from './scope';
|
6 | import { Owner } from './owner';
|
7 | import { GlimmerTreeChanges } from '../dom/changes';
|
8 | import { ExceptionHandler } from './render';
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | export interface VM<O extends Owner = Owner> {
|
16 | env: Environment;
|
17 | dynamicScope(): DynamicScope;
|
18 | getOwner(): O;
|
19 | getSelf(): Reference;
|
20 | associateDestroyable(child: Destroyable): void;
|
21 | }
|
22 |
|
23 | export interface UpdatingVM {
|
24 | env: Environment;
|
25 | dom: GlimmerTreeChanges;
|
26 | alwaysRevalidate: boolean;
|
27 |
|
28 | execute(opcodes: UpdatingOpcode[], handler: ExceptionHandler): void;
|
29 | goto(index: number): void;
|
30 | try(ops: UpdatingOpcode[], handler: ExceptionHandler | null): void;
|
31 | throw(): void;
|
32 | }
|
33 |
|
34 | export interface UpdatingOpcode {
|
35 | evaluate(vm: UpdatingVM): void;
|
36 | }
|