@swf2es/runtime 0.1.15 → 0.1.16

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 (48) hide show
  1. package/dist/avm2/cache-fill.d.ts +4 -1
  2. package/dist/avm2/cache-fill.d.ts.map +1 -1
  3. package/dist/avm2/cache-fill.js +5 -6
  4. package/dist/avm2/cache-fill.js.map +1 -1
  5. package/dist/avm2/descriptors.d.ts +6 -1
  6. package/dist/avm2/descriptors.d.ts.map +1 -1
  7. package/dist/avm2/descriptors.js.map +1 -1
  8. package/dist/avm2/errors.d.ts +14 -0
  9. package/dist/avm2/errors.d.ts.map +1 -1
  10. package/dist/avm2/errors.js +17 -0
  11. package/dist/avm2/errors.js.map +1 -1
  12. package/dist/avm2/index.d.ts +1 -0
  13. package/dist/avm2/index.d.ts.map +1 -1
  14. package/dist/avm2/index.js +1 -0
  15. package/dist/avm2/index.js.map +1 -1
  16. package/dist/avm2/names.d.ts +11 -0
  17. package/dist/avm2/names.d.ts.map +1 -1
  18. package/dist/avm2/names.js +12 -0
  19. package/dist/avm2/names.js.map +1 -1
  20. package/dist/avm2/natives/proxy.d.ts.map +1 -1
  21. package/dist/avm2/natives/proxy.js +9 -4
  22. package/dist/avm2/natives/proxy.js.map +1 -1
  23. package/dist/avm2/options.d.ts +5 -0
  24. package/dist/avm2/options.d.ts.map +1 -1
  25. package/dist/avm2/options.js.map +1 -1
  26. package/dist/avm2/property-cache.d.ts +17 -13
  27. package/dist/avm2/property-cache.d.ts.map +1 -1
  28. package/dist/avm2/property-cache.js +50 -10
  29. package/dist/avm2/property-cache.js.map +1 -1
  30. package/dist/avm2/runtime.d.ts +62 -0
  31. package/dist/avm2/runtime.d.ts.map +1 -1
  32. package/dist/avm2/runtime.js +245 -25
  33. package/dist/avm2/runtime.js.map +1 -1
  34. package/dist/avm2/traits.d.ts +7 -0
  35. package/dist/avm2/traits.d.ts.map +1 -1
  36. package/dist/avm2/traits.js +6 -0
  37. package/dist/avm2/traits.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/avm2/cache-fill.ts +5 -7
  40. package/src/avm2/descriptors.ts +6 -2
  41. package/src/avm2/errors.ts +18 -0
  42. package/src/avm2/index.ts +1 -0
  43. package/src/avm2/names.ts +13 -0
  44. package/src/avm2/natives/proxy.ts +20 -4
  45. package/src/avm2/options.ts +5 -0
  46. package/src/avm2/property-cache.ts +57 -11
  47. package/src/avm2/runtime.ts +280 -26
  48. package/src/avm2/traits.ts +7 -1
@@ -5,7 +5,10 @@ import { type Traits } from "./traits.js";
5
5
  /**
6
6
  * Keep what `mn` found on `traits`, `o`'s, in `head`, its cache: a
7
7
  * binding, as getProperty, setProperty and callProperty use it, or a
8
- * dynamic property's name. Not where the name resolves otherwise: through
8
+ * dynamic property's name, on a sealed object too, whose prototypes have
9
+ * dynamic properties all the same (a script may give a class's prototype a
10
+ * function, and call it on the class's objects by name, as an obfuscator
11
+ * may have it do). Not where the name resolves otherwise: through
9
12
  * a property hook (a Proxy's, XML's), an index (a Vector's, an Array's
10
13
  * element), or a Dictionary's key; nor on a primitive's dynamic property,
11
14
  * which its prototypes have.
@@ -1 +1 @@
1
- {"version":3,"file":"cache-fill.d.ts","sourceRoot":"","sources":["../../src/avm2/cache-fill.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAUL,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EASL,KAAK,MAAM,EAEZ,MAAM,aAAa,CAAC;AAErB;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,aAAa,EACnB,CAAC,EAAE,KAAK,EACR,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,SAAS,GACZ,IAAI,CA6EN"}
1
+ {"version":3,"file":"cache-fill.d.ts","sourceRoot":"","sources":["../../src/avm2/cache-fill.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAUL,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EASL,KAAK,MAAM,EAEZ,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,aAAa,EACnB,CAAC,EAAE,KAAK,EACR,MAAM,EAAE,MAAM,EACd,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,SAAS,GACZ,IAAI,CAwEN"}
@@ -7,7 +7,10 @@ import { BIND_Const, BIND_Get, BIND_GetSet, BIND_Method, BIND_Set, BIND_Var, met
7
7
  /**
8
8
  * Keep what `mn` found on `traits`, `o`'s, in `head`, its cache: a
9
9
  * binding, as getProperty, setProperty and callProperty use it, or a
10
- * dynamic property's name. Not where the name resolves otherwise: through
10
+ * dynamic property's name, on a sealed object too, whose prototypes have
11
+ * dynamic properties all the same (a script may give a class's prototype a
12
+ * function, and call it on the class's objects by name, as an obfuscator
13
+ * may have it do). Not where the name resolves otherwise: through
11
14
  * a property hook (a Proxy's, XML's), an index (a Vector's, an Array's
12
15
  * element), or a Dictionary's key; nor on a primitive's dynamic property,
13
16
  * which its prototypes have.
@@ -25,7 +28,6 @@ export function fillCache(head, o, traits, b, mn) {
25
28
  if (name === null ||
26
29
  (typeof o !== "object" && typeof o !== "function") ||
27
30
  hook !== null ||
28
- !traits.dynamic ||
29
31
  traits.refusesNames ||
30
32
  traits.getIndex !== undefined ||
31
33
  traits.index !== undefined ||
@@ -72,10 +74,7 @@ export function fillCache(head, o, traits, b, mn) {
72
74
  head = new PropertyCache();
73
75
  mn.cache = head;
74
76
  }
75
- const e = entryFor(head, traits);
76
- if (e === null) {
77
- return;
78
- }
77
+ const e = entryFor(head, traits, mn);
79
78
  e.traits = traits;
80
79
  e.kind = kind;
81
80
  e.key = key;
@@ -1 +1 @@
1
- {"version":3,"file":"cache-fill.js","sourceRoot":"","sources":["../../src/avm2/cache-fill.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,0EAA0E;AAG1E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AACxD,OAAO,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,MAAM,EACN,SAAS,EACT,SAAS,EACT,MAAM,EACN,OAAO,EACP,aAAa,EACb,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EAEP,aAAa,GACd,MAAM,aAAa,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,IAAmB,EACnB,CAAQ,EACR,MAAc,EACd,CAAS,EACT,EAAa;IAEb,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IAC/B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,IAAY,CAAC;IACjB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,GAAkB,IAAI,CAAC;IAC9B,IAAI,GAAG,GAAkB,IAAI,CAAC;IAC9B,IAAI,IAAI,GAAY,IAAI,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9B,IACE,IAAI,KAAK,IAAI;YACb,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,CAAC;YAClD,IAAI,KAAK,IAAI;YACb,CAAC,MAAM,CAAC,OAAO;YACf,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,QAAQ,KAAK,SAAS;YAC7B,MAAM,CAAC,KAAK,KAAK,SAAS;YAC1B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACrB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,GAAG,UAAU,CAAC;QAClB,GAAG,GAAG,IAAI,CAAC;IACb,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,IAAI,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3D,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,WAAW;gBACd,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,UAAU;gBACb,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACjD,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;gBAClB,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC3B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,MAAM,CAAC;gBACd,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,MAAM,CAAC;gBACd,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7E,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,GAAG,SAAS,CAAC;gBACjB,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7E,MAAM;YACR;gBACE,OAAO;QACX,CAAC;QAED,IAAI,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC;QAC3B,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;IACd,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACZ,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACZ,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;IACd,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"cache-fill.js","sourceRoot":"","sources":["../../src/avm2/cache-fill.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,19 @@
1
1
  import type { Domain, Script } from "./domain.js";
2
2
  import type { Multiname, Namespace, TypeName } from "./names.js";
3
+ import type { ScopeFinds } from "./property-cache.js";
3
4
  import type { ClassRef, VectorRef } from "./traits.js";
4
5
  export type Value = any;
5
6
  export type AsObject = any;
6
7
  export type Method = Function;
7
8
  /** Not a property: distinct from undefined, which a property can hold. */
8
9
  export declare const NOT_FOUND: unique symbol;
9
- /** A scope chain: its objects, outermost first, and a bit per with scope in w. */
10
+ /**
11
+ * A scope chain: its objects, outermost first, and a bit per with scope in
12
+ * w; what findProperty found on it, once asked (Runtime.outerScopeOf).
13
+ */
10
14
  export type Scope = Value[] & {
11
15
  w: number;
16
+ found?: ScopeFinds | null;
12
17
  };
13
18
  /** A method factory: the method's function, once its scope chain is known. */
14
19
  export type Factory = (scope: Scope, sup: AsObject | null) => Method;
@@ -1 +1 @@
1
- {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../../src/avm2/descriptors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../../src/avm2/descriptors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"descriptors.js","sourceRoot":"","sources":["../../src/avm2/descriptors.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,sEAAsE;AACtE,gEAAgE;AAahE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"descriptors.js","sourceRoot":"","sources":["../../src/avm2/descriptors.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,sEAAsE;AACtE,gEAAgE;AAchE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC"}
@@ -3,6 +3,14 @@ import type { Runtime } from "./runtime.js";
3
3
  /** Thrown for an AS3 exception that is an Error the runtime made, before its class existed. */
4
4
  export declare class AsError extends Error {
5
5
  }
6
+ /**
7
+ * Thrown where a SWF asks for something swf2es has not got (Runtime.unsupported).
8
+ * Uncaught, it stops the script as any error of the runtime's own does; an
9
+ * AS3 catch gets it as an AS3 error (Runtime.caught), since content written
10
+ * for several runtimes guards what one of them may lack with try and catch.
11
+ */
12
+ export declare class UnsupportedError extends Error {
13
+ }
6
14
  /**
7
15
  * Where an AS3 error was made, as JavaScript stack lines from the first
8
16
  * compiled method's (their names begin with `$`), the runtime's and the
@@ -10,6 +18,12 @@ export declare class AsError extends Error {
10
18
  * no compiled method made it, and null for anything but an AS3 error.
11
19
  */
12
20
  export declare function stackOf(error: Value): string | null;
21
+ /**
22
+ * What an error the runtime made says in full, its text and arguments as
23
+ * debugger mode words them, for a host to show: the release player's
24
+ * message, which the SWF sees, is the number alone. Null for any other value.
25
+ */
26
+ export declare function detailOf(error: Value): string | null;
13
27
  /**
14
28
  * Error `id`'s message as AS3 sees it: its number, as the release player
15
29
  * and avmshell give it, or with its text and arguments in debugger mode.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/avm2/errors.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAI9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,+FAA+F;AAC/F,qBAAa,OAAQ,SAAQ,KAAK;CAAG;AAErC;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAUnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAQrF;AAED,uDAAuD;AACvD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAOtD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/avm2/errors.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAI9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,+FAA+F;AAC/F,qBAAa,OAAQ,SAAQ,KAAK;CAAG;AAErC;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAE9C;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAUnD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAGpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAQrF;AAED,uDAAuD;AACvD,wBAAgB,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAOtD"}
@@ -7,6 +7,14 @@ import { errorMessages } from "./player-messages.js";
7
7
  /** Thrown for an AS3 exception that is an Error the runtime made, before its class existed. */
8
8
  export class AsError extends Error {
9
9
  }
10
+ /**
11
+ * Thrown where a SWF asks for something swf2es has not got (Runtime.unsupported).
12
+ * Uncaught, it stops the script as any error of the runtime's own does; an
13
+ * AS3 catch gets it as an AS3 error (Runtime.caught), since content written
14
+ * for several runtimes guards what one of them may lack with try and catch.
15
+ */
16
+ export class UnsupportedError extends Error {
17
+ }
10
18
  /**
11
19
  * Where an AS3 error was made, as JavaScript stack lines from the first
12
20
  * compiled method's (their names begin with `$`), the runtime's and the
@@ -23,6 +31,15 @@ export function stackOf(error) {
23
31
  const first = frames.findIndex((line) => /^(?:\s*at (?:[\w$]+\.)?)?\$[\w$]/.test(line));
24
32
  return frames.slice(Math.max(0, first)).join("\n");
25
33
  }
34
+ /**
35
+ * What an error the runtime made says in full, its text and arguments as
36
+ * debugger mode words them, for a host to show: the release player's
37
+ * message, which the SWF sees, is the number alone. Null for any other value.
38
+ */
39
+ export function detailOf(error) {
40
+ const detail = error?.$detail;
41
+ return typeof detail === "string" ? detail : null;
42
+ }
26
43
  /**
27
44
  * Error `id`'s message as AS3 sees it: its number, as the release player
28
45
  * and avmshell give it, or with its text and arguments in debugger mode.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/avm2/errors.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,0EAA0E;AAC1E,4DAA4D;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,+FAA+F;AAC/F,MAAM,OAAO,OAAQ,SAAQ,KAAK;CAAG;AAErC;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY;IAClC,MAAM,IAAI,GAAI,KAAqC,EAAE,QAAQ,CAAC;IAC9D,IAAI,CAAC,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6FAA6F;IAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,YAAqB,EAAE,EAAU,EAAE,IAAa;IAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,UAAU,EAAE,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrF,OAAO,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,QAAQ,CAAC,EAAW,EAAE,CAAQ;IAC5C,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;QAC7F,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/avm2/errors.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,0EAA0E;AAC1E,4DAA4D;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,+FAA+F;AAC/F,MAAM,OAAO,OAAQ,SAAQ,KAAK;CAAG;AAErC;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;CAAG;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY;IAClC,MAAM,IAAI,GAAI,KAAqC,EAAE,QAAQ,CAAC;IAC9D,IAAI,CAAC,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6FAA6F;IAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,MAAM,MAAM,GAAI,KAAsC,EAAE,OAAO,CAAC;IAChE,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,YAAqB,EAAE,EAAU,EAAE,IAAa;IAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,UAAU,EAAE,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrF,OAAO,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,QAAQ,CAAC,EAAW,EAAE,CAAQ;IAC5C,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;QAC7F,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnF,CAAC"}
@@ -5,6 +5,7 @@ export { Reader as Amf3Reader, Writer as Amf3Writer } from "./amf.js";
5
5
  export { builtinLibrary } from "./builtin-library.js";
6
6
  export type { Abc, AsObject, CompileUnit, FoundDefinition, Method, Value } from "./descriptors.js";
7
7
  export { type Domain, frameScripts, frameSites, siteScript, stackFrames } from "./domain.js";
8
+ export { UnsupportedError } from "./errors.js";
8
9
  export { FloatValue, hasFloatLibrary } from "./float.js";
9
10
  export { floatLibrary } from "./float-library.js";
10
11
  export type { ClassHook, NativesProvider } from "./hooks.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avm2/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AACtE,uEAAuE;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,KAAK,EACL,aAAa,EACb,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,KAAK,iBAAiB,EACtB,eAAe,EACf,UAAU,EACV,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,OAAO,EACZ,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,GACR,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,aAAa,EACb,cAAc,EACd,IAAI,EACJ,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExE,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAEnE;AAED,kDAAkD;AAClD,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avm2/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AACtE,uEAAuE;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,KAAK,EACL,aAAa,EACb,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,KAAK,iBAAiB,EACtB,eAAe,EACf,UAAU,EACV,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,OAAO,EACZ,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,GACR,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,aAAa,EACb,cAAc,EACd,IAAI,EACJ,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExE,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAEnE;AAED,kDAAkD;AAClD,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE7C"}
@@ -5,6 +5,7 @@ export { Reader as Amf3Reader, Writer as Amf3Writer } from "./amf.js";
5
5
  /** avmplus' builtin.abc (MPL-2.0), which every runtime loads first. */
6
6
  export { builtinLibrary } from "./builtin-library.js";
7
7
  export { frameScripts, frameSites, siteScript, stackFrames } from "./domain.js";
8
+ export { UnsupportedError } from "./errors.js";
8
9
  export { FloatValue, hasFloatLibrary } from "./float.js";
9
10
  export { floatLibrary } from "./float-library.js";
10
11
  export { messages } from "./messages.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/avm2/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AACtE,uEAAuE;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAe,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,KAAK,EACL,aAAa,EACb,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,WAAW,EAEX,eAAe,EACf,UAAU,EACV,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,GACR,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAoB,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACnF,kFAAkF;AAClF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,aAAa,EACb,cAAc,EACd,IAAI,EACJ,QAAQ,EAGR,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,sFAAsF;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAS5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,kFAAkF;AAClF,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,8FAA8F;AAC9F,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExE,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,OAAO,GAAmB,EAAE;IACxD,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/avm2/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AACtE,uEAAuE;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAe,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,KAAK,EACL,aAAa,EACb,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,WAAW,EAEX,eAAe,EACf,UAAU,EACV,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,GACR,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAoB,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACnF,kFAAkF;AAClF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,aAAa,EACb,cAAc,EACd,IAAI,EACJ,QAAQ,EAGR,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,sFAAsF;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAS5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,kFAAkF;AAClF,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,8FAA8F;AAC9F,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExE,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,OAAO,GAAmB,EAAE;IACxD,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
@@ -47,6 +47,9 @@ export declare const CONSTANT_Multiname = 9;
47
47
  export declare const CONSTANT_MultinameA = 14;
48
48
  export declare const CONSTANT_MultinameL = 27;
49
49
  export declare const CONSTANT_MultinameLA = 28;
50
+ export declare const MADE_Unknown = 0;
51
+ export declare const MADE_Number = 1;
52
+ export declare const MADE_Value = 2;
50
53
  /**
51
54
  * A name as a property lookup uses it: its namespaces, each with the API
52
55
  * version it sees bindings at, and its local name, null for any name.
@@ -88,6 +91,14 @@ export declare class Multiname {
88
91
  cls: AsObject | null;
89
92
  /** Fixed at construction so indexed access needs no getter in its hot path. */
90
93
  readonly elementName: boolean;
94
+ /**
95
+ * What made it, where the code's own value did at run time: a number
96
+ * read or written as an element (MADE_Number), which avmplus hands a
97
+ * Proxy as its string, or a string or any other value (MADE_Value), which
98
+ * it hands it as a QName. MADE_Unknown for a name of the code's own and
99
+ * one the runtime made.
100
+ */
101
+ made: number;
91
102
  constructor(kind: number,
92
103
  /** Its namespaces; one of null, as a Qname's, is any namespace. */
93
104
  namespaces: readonly (Namespace | null)[], versions: readonly number[], name: string | null, attribute: boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../src/avm2/names.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../src/avm2/names.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,10 @@ export const CONSTANT_Multiname = 0x09;
74
74
  export const CONSTANT_MultinameA = 0x0e;
75
75
  export const CONSTANT_MultinameL = 0x1b;
76
76
  export const CONSTANT_MultinameLA = 0x1c;
77
+ // What a name made at run time was made of (Multiname.made).
78
+ export const MADE_Unknown = 0;
79
+ export const MADE_Number = 1;
80
+ export const MADE_Value = 2;
77
81
  /**
78
82
  * A name as a property lookup uses it: its namespaces, each with the API
79
83
  * version it sees bindings at, and its local name, null for any name.
@@ -114,6 +118,14 @@ export class Multiname {
114
118
  cls = null;
115
119
  /** Fixed at construction so indexed access needs no getter in its hot path. */
116
120
  elementName;
121
+ /**
122
+ * What made it, where the code's own value did at run time: a number
123
+ * read or written as an element (MADE_Number), which avmplus hands a
124
+ * Proxy as its string, or a string or any other value (MADE_Value), which
125
+ * it hands it as a QName. MADE_Unknown for a name of the code's own and
126
+ * one the runtime made.
127
+ */
128
+ made = MADE_Unknown;
117
129
  constructor(kind,
118
130
  /** Its namespaces; one of null, as a Qname's, is any namespace. */
119
131
  namespaces, versions, name, attribute) {
@@ -1 +1 @@
1
- {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/avm2/names.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,8DAA8D;AAI9D,OAAO,EAAE,QAAQ,EAAsB,MAAM,qBAAqB,CAAC;AAEnE,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAE5B,MAAM,OAAO,SAAS;IAET,IAAI;IAEJ,GAAG;IAMH,MAAM;IATjB,YACW,IAAY;IACrB,8DAA8D;IACrD,GAAkB;IAC3B;;;;OAIG;IACM,MAAM,GAAuB,SAAS;oBARtC,IAAI;mBAEJ,GAAG;sBAMH,MAAM;IACd,CAAC;IAEJ,0FAA0F;IAC1F,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3E,CAAC;CACF;AAED,0FAA0F;AAC1F,MAAM,QAAQ,GAAoC,EAAE,CAAC;AAErD,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,GAAkB;IACxD,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACjD,MAAM,iBAAiB,GAAyB,CAAC,QAAQ,CAAC,CAAC;AAC3D,MAAM,YAAY,GAAsB,CAAC,GAAG,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA0B,EAAE,GAAW;IACvE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,QAAQ,CAAC,EAAa;IACpC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC;;;GAGG;AACH,MAAM,OAAO,SAAS;IAkCT,IAAI;IAEJ,UAAU;IACV,QAAQ;IAER,SAAS;IAtCpB;;;;OAIG;IACH,GAAG,GAAY,SAAS,CAAC;IACzB,kEAAkE;IAC1D,KAAK,CAA4B;IACzC,sFAAsF;IAC9E,MAAM,GAAsC,IAAI,CAAC;IACzD;;;OAGG;IACH,MAAM,GAAkB,IAAI,CAAC;IAC7B,qFAAqF;IACrF,KAAK,GAAkB,QAAQ,CAAC;IAChC;;;OAGG;IACH,MAAM,GAAkB,IAAI,CAAC;IAC7B;;;OAGG;IACH,MAAM,GAAoB,IAAI,CAAC;IAC/B,+DAA+D;IAC/D,GAAG,GAAoB,IAAI,CAAC;IAC5B,+EAA+E;IACtE,WAAW,CAAU;IAE9B,YACW,IAAY;IACrB,mEAAmE;IAC1D,UAAyC,EACzC,QAA2B,EACpC,IAAmB,EACV,SAAkB;oBALlB,IAAI;0BAEJ,UAAU;wBACV,QAAQ;yBAER,SAAS;QAElB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW;YACd,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;IACjG,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CACV,IAAY,EACZ,UAAyC,EACzC,QAA2B,EAC3B,GAAW,EACX,SAAkB,EAClB,MAAgC;QAEhC,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACtE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;QACb,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC;QACrB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,yCAAyC;IACzC,IAAI,IAAI;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAAI,IAAI,CAAC,MAAmC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+DAA+D;IAC/D,IAAI,SAAS;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,OAAO,CACL,CAAC,KAAK,gBAAgB;YACtB,CAAC,KAAK,iBAAiB;YACvB,CAAC,KAAK,iBAAiB;YACvB,CAAC,KAAK,kBAAkB,CACzB,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,IAAI,WAAW;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,OAAO,CACL,CAAC,KAAK,iBAAiB;YACvB,CAAC,KAAK,kBAAkB;YACxB,CAAC,KAAK,mBAAmB;YACzB,CAAC,KAAK,oBAAoB,CAC3B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,qCAAqC;YACrC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;gBAC1D,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;QAC9B,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;CACF;AAED,kFAAkF;AAClF,MAAM,OAAO,QAAQ;IAIR,IAAI;IACJ,MAAM;IAJjB,KAAK,GAAoC,EAAE,CAAC;IAE5C,YACW,IAAY,EACZ,MAAgB;oBADhB,IAAI;sBACJ,MAAM;IACd,CAAC;IAEJ,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAc,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,CAAS;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,UAAU,KAAK,CAAC,EAAa,EAAE,IAAY;IAC/C,OAAO,IAAI,SAAS,CAClB,cAAc,EACd,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1C,YAAY,EACZ,IAAI,EACJ,KAAK,CACN,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,QAA2B;IACnE,OAAO,IAAI,SAAS,CAAC,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,wFAAwF;AACxF,MAAM,YAAY,GAA2B;IAC3C,yBAAyB,EAAE,2BAA2B;IACtD,0BAA0B,EAAE,4BAA4B;IACxD,4BAA4B,EAAE,8BAA8B;IAC5D,4BAA4B,EAAE,yBAAyB;CACxD,CAAC;AAEF,0HAA0H;AAC1H,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AAClC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,EAAa;IACzC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/avm2/names.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/avm2/natives/proxy.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAG3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA6E3C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAEhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAK1B,CAAC"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/avm2/natives/proxy.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAY3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAoF3C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAEhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAK1B,CAAC"}
@@ -4,19 +4,24 @@
4
4
  // at run time, as proxy[name], as the value it was, a string or a QName.
5
5
  // callProperty gets the QName and the arguments; for-in asks
6
6
  // nextNameIndex, nextName and nextValue.
7
- import { NS_Public, namespace, publicNs, publicQname, qname } from "../names.js";
7
+ import { MADE_Number, MADE_Unknown, NS_Public, namespace, publicNs, publicQname, qname, } from "../names.js";
8
8
  const FLASH_PROXY = namespace(NS_Public, "http://www.adobe.com/2006/actionscript/flash/proxy");
9
9
  /**
10
10
  * The name a flash_proxy method gets for `mn`: a QName that was the name
11
- * stays one, an index comes as its string, as avmplus' getUintProperty
12
- * interns it, and any other name as a QName in its namespace.
11
+ * stays one; a number read or written as an element comes as its string,
12
+ * as avmplus' getUintProperty and getpropertylate_d intern it, whatever
13
+ * the number; a string or another value of the code's comes as a QName,
14
+ * "0" too, as does any other name, in its namespace. A name whose maker
15
+ * is not known is told by its string: an index's is the string.
13
16
  */
14
17
  function nameFor(rt, mn) {
15
18
  if (mn.key !== undefined && mn.key?.$local !== undefined) {
16
19
  return mn.key;
17
20
  }
18
21
  const name = mn.name;
19
- if (name !== null && !mn.attribute && isIndex(name)) {
22
+ if (name !== null &&
23
+ !mn.attribute &&
24
+ (mn.made === MADE_Number || (mn.made === MADE_Unknown && isIndex(name)))) {
20
25
  return name;
21
26
  }
22
27
  // A QName keeps the whole multiname in avmplus; of a set of several it
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/avm2/natives/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/avm2/natives/proxy.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,11 @@ import type { Runtime } from "./runtime.js";
5
5
  export interface RuntimeOptions {
6
6
  /** Where trace and print write a line. */
7
7
  print?: (line: string) => void;
8
+ /**
9
+ * Told what is not supported that the code asked for and caught, once
10
+ * for each: caught, it reaches no one else.
11
+ */
12
+ onUnsupported?: (message: string) => void;
8
13
  /**
9
14
  * Behave as the debugger player: error messages carry avmplus' text
10
15
  * ("Error #1009: Cannot access ..."), and System.isDebugger is true. By
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/avm2/options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;IACrF,wFAAwF;IACxF,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,6GAA6G;IAC7G,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC;IAC1C;;;;OAIG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,iFAAiF;IACjF,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACpD;AAED,MAAM,WAAW,WAAW;IAC1B,iGAAiG;IACjG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CAC3C;AAED,mGAAmG;AACnG,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,kBAAkB,CAAC;IAC3B,qDAAqD;IACrD,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CACzB;AAED,2FAA2F;AAC3F,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,WAAW,GAAG,iBAAiB,CAAC;IACzC,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAAC;IACvC,oCAAoC;IACpC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACtC,yCAAyC;IACzC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;CACjD;AAED,8CAA8C;AAC9C,wBAAgB,WAAW,IAAI,UAAU,CASxC;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE/C"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/avm2/options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;IACrF,wFAAwF;IACxF,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,6GAA6G;IAC7G,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC;IAC1C;;;;OAIG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,iFAAiF;IACjF,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACpD;AAED,MAAM,WAAW,WAAW;IAC1B,iGAAiG;IACjG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CAC3C;AAED,mGAAmG;AACnG,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,kBAAkB,CAAC;IAC3B,qDAAqD;IACrD,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CACzB;AAED,2FAA2F;AAC3F,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,WAAW,GAAG,iBAAiB,CAAC;IACzC,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAAC;IACvC,oCAAoC;IACpC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACtC,yCAAyC;IACzC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;CACjD;AAED,8CAA8C;AAC9C,wBAAgB,WAAW,IAAI,UAAU,CASxC;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/avm2/options.ts"],"names":[],"mappings":"AAAA,2EAA2E;AA6G3E,8CAA8C;AAC9C,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;QACvC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,YAAY,CAAC,IAAY;IACtC,UAAwD,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/avm2/options.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAkH3E,8CAA8C;AAC9C,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;QACvC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,YAAY,CAAC,IAAY;IACtC,UAAwD,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Method, TypeRef } from "./descriptors.js";
1
+ import type { AsObject, Method, TypeRef } from "./descriptors.js";
2
2
  import type { Multiname } from "./names.js";
3
3
  import type { Traits } from "./traits.js";
4
4
  /** What an entry does for its name on its traits; get, set and call take what each can. */
@@ -10,14 +10,8 @@ export declare const IC_GetSet = 5;
10
10
  export declare const IC_Method = 6;
11
11
  /** A method a property hook resolves the name of for get and set, as XML's: callproperty only. */
12
12
  export declare const IC_Call = 7;
13
- /** No binding: a dynamic property, the object's own or else a prototype's, if either has it. */
13
+ /** No binding: a dynamic property, the object's own (a dynamic object's) or else a prototype's, if either has it. */
14
14
  export declare const IC_Dynamic = 8;
15
- /**
16
- * Entries a name replaces before it stops: one seen on more traits than it
17
- * keeps would replace one on every miss, and still miss as often. It keeps
18
- * those it has until the epoch changes.
19
- */
20
- export declare const REPLACEMENTS = 16;
21
15
  /**
22
16
  * One traits' entry for a name. A name's first entry heads its list and
23
17
  * holds what the list shares: the epoch it was filled in and the entry to
@@ -52,10 +46,20 @@ export declare const UNFILLED: PropertyCache;
52
46
  /** The entry of `mn`'s cache for objects with traits `t`, or null. */
53
47
  export declare function cached(t: Traits | undefined, mn: Multiname): PropertyCache | null;
54
48
  /**
55
- * The entry of a cache to fill for traits `t`: its own, a free one, a new
56
- * one while the list is shorter than ENTRIES, else the oldest, until it has
57
- * replaced REPLACEMENTS; then none. A cache of an earlier epoch is emptied
58
- * first.
49
+ * The entry of `mn`'s cache, `head`, to fill for traits `t`: its own, a
50
+ * free one, a new one while the list is shorter than ENTRIES, else the
51
+ * oldest, until it has replaced REPLACEMENTS; then one `t` keeps for `mn`.
52
+ * A cache of an earlier epoch is emptied first.
53
+ */
54
+ export declare function entryFor(head: PropertyCache, t: Traits, mn: Multiname): PropertyCache;
55
+ /**
56
+ * Which of a scope chain's objects binds each name findProperty looked up
57
+ * on it, the innermost that does, or null where none does, in the epoch it
58
+ * was found in: a chain's objects never change, nor do their traits'
59
+ * bindings within an epoch. Only for a chain without a with scope, which
60
+ * has a name by its dynamic properties too.
59
61
  */
60
- export declare function entryFor(head: PropertyCache, t: Traits): PropertyCache | null;
62
+ export declare class ScopeFinds extends Map<Multiname, AsObject | null> {
63
+ epoch: number;
64
+ }
61
65
  //# sourceMappingURL=property-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"property-cache.d.ts","sourceRoot":"","sources":["../../src/avm2/property-cache.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,2FAA2F;AAC3F,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,kGAAkG;AAClG,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,gGAAgG;AAChG,eAAO,MAAM,UAAU,IAAI,CAAC;AAI5B;;;;GAIG;AACH,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B;;;;GAIG;AACH,qBAAa,aAAa;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,IAAI,SAAK;IACT,wDAAwD;IACxD,GAAG,SAAM;IACT,iCAAiC;IACjC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1B,wDAAwD;IACxD,IAAI,EAAE,OAAO,CAAQ;IACrB,8DAA8D;IAC9D,EAAE,SAAK;IACP,IAAI,EAAE,aAAa,GAAG,IAAI,CAAQ;IAClC,KAAK,SAAM;IACX,6FAA6F;IAC7F,MAAM,EAAE,aAAa,GAAG,IAAI,CAAQ;IACpC,QAAQ,SAAK;CACd;AAID,gDAAgD;AAChD,wBAAgB,KAAK,IAAI,MAAM,CAE9B;AAUD,4EAA4E;AAC5E,wBAAgB,UAAU,IAAI,IAAI,CAYjC;AAED,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,eAAsB,CAAC;AAC5C,6FAA6F;AAC7F,eAAO,MAAM,QAAQ,eAAsB,CAAC;AAE5C,sEAAsE;AACtE,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,aAAa,GAAG,IAAI,CAejF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAqC7E"}
1
+ {"version":3,"file":"property-cache.d.ts","sourceRoot":"","sources":["../../src/avm2/property-cache.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,2FAA2F;AAC3F,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,kGAAkG;AAClG,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,qHAAqH;AACrH,eAAO,MAAM,UAAU,IAAI,CAAC;AAW5B;;;;GAIG;AACH,qBAAa,aAAa;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,IAAI,SAAK;IACT,wDAAwD;IACxD,GAAG,SAAM;IACT,iCAAiC;IACjC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1B,wDAAwD;IACxD,IAAI,EAAE,OAAO,CAAQ;IACrB,8DAA8D;IAC9D,EAAE,SAAK;IACP,IAAI,EAAE,aAAa,GAAG,IAAI,CAAQ;IAClC,KAAK,SAAM;IACX,6FAA6F;IAC7F,MAAM,EAAE,aAAa,GAAG,IAAI,CAAQ;IACpC,QAAQ,SAAK;CACd;AAID,gDAAgD;AAChD,wBAAgB,KAAK,IAAI,MAAM,CAE9B;AAYD,4EAA4E;AAC5E,wBAAgB,UAAU,IAAI,IAAI,CAiBjC;AAED,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,eAAsB,CAAC;AAC5C,6FAA6F;AAC7F,eAAO,MAAM,QAAQ,eAAsB,CAAC;AAE5C,sEAAsE;AACtE,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,aAAa,GAAG,IAAI,CAoBjF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,GAAG,aAAa,CAqCrF;AAoBD;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,GAAG,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7D,KAAK,SAAW;CACjB"}
@@ -11,6 +11,11 @@
11
11
  // entry still looks for the property on the object, which may have lost it,
12
12
  // then on its prototypes, which may have gained or lost it, and leaves
13
13
  // what neither has to the full lookup.
14
+ //
15
+ // A name looked up on more traits than its cache keeps, as `x` is on every
16
+ // class with an x, stops replacing entries; what it finds on traits it has
17
+ // no entry for is kept on those traits instead, by name, so that the one
18
+ // class it is mostly read on is not left to the full lookup.
14
19
  /** What an entry does for its name on its traits; get, set and call take what each can. */
15
20
  export const IC_Slot = 1;
16
21
  export const IC_Const = 2;
@@ -20,7 +25,7 @@ export const IC_GetSet = 5;
20
25
  export const IC_Method = 6;
21
26
  /** A method a property hook resolves the name of for get and set, as XML's: callproperty only. */
22
27
  export const IC_Call = 7;
23
- /** No binding: a dynamic property, the object's own or else a prototype's, if either has it. */
28
+ /** No binding: a dynamic property, the object's own (a dynamic object's) or else a prototype's, if either has it. */
24
29
  export const IC_Dynamic = 8;
25
30
  /** Entries a name keeps, for as many traits, before it replaces the oldest. */
26
31
  const ENTRIES = 8;
@@ -29,7 +34,7 @@ const ENTRIES = 8;
29
34
  * keeps would replace one on every miss, and still miss as often. It keeps
30
35
  * those it has until the epoch changes.
31
36
  */
32
- export const REPLACEMENTS = 16;
37
+ const REPLACEMENTS = 16;
33
38
  /**
34
39
  * One traits' entry for a name. A name's first entry heads its list and
35
40
  * holds what the list shares: the epoch it was filled in and the entry to
@@ -60,6 +65,8 @@ export function epoch() {
60
65
  }
61
66
  /** The caches filled in this epoch, which invalidate empties so that they keep no traits or code. */
62
67
  const filled = [];
68
+ /** The traits given entries of their own in this epoch (Traits.manyTraitsEntries). */
69
+ const filledTraits = [];
63
70
  /** Note that `head`'s cache is being filled in this epoch. */
64
71
  function filling(head) {
65
72
  filled.push(head);
@@ -75,6 +82,10 @@ export function invalidate() {
75
82
  }
76
83
  }
77
84
  filled.length = 0;
85
+ for (let i = 0; i < filledTraits.length; i++) {
86
+ filledTraits[i].manyTraitsEntries = null;
87
+ }
88
+ filledTraits.length = 0;
78
89
  current++;
79
90
  }
80
91
  /** The cache of a transient runtime name: never filled. */
@@ -83,25 +94,29 @@ export const NO_CACHE = new PropertyCache();
83
94
  export const UNFILLED = new PropertyCache();
84
95
  /** The entry of `mn`'s cache for objects with traits `t`, or null. */
85
96
  export function cached(t, mn) {
86
- let e = mn.cache;
87
- if (t === undefined || e.epoch !== epoch()) {
97
+ const head = mn.cache;
98
+ if (t === undefined || head.epoch !== epoch()) {
88
99
  return null;
89
100
  }
101
+ let e = head;
90
102
  do {
91
103
  if (e.traits === t) {
92
104
  return e;
93
105
  }
94
106
  e = e.next;
95
107
  } while (e !== null);
108
+ if (head.replaced === REPLACEMENTS && t.manyTraitsEntries !== null) {
109
+ return t.manyTraitsEntries.get(mn) ?? null;
110
+ }
96
111
  return null;
97
112
  }
98
113
  /**
99
- * The entry of a cache to fill for traits `t`: its own, a free one, a new
100
- * one while the list is shorter than ENTRIES, else the oldest, until it has
101
- * replaced REPLACEMENTS; then none. A cache of an earlier epoch is emptied
102
- * first.
114
+ * The entry of `mn`'s cache, `head`, to fill for traits `t`: its own, a
115
+ * free one, a new one while the list is shorter than ENTRIES, else the
116
+ * oldest, until it has replaced REPLACEMENTS; then one `t` keeps for `mn`.
117
+ * A cache of an earlier epoch is emptied first.
103
118
  */
104
- export function entryFor(head, t) {
119
+ export function entryFor(head, t, mn) {
105
120
  if (head.epoch !== epoch()) {
106
121
  for (let e = head; e !== null; e = e.next) {
107
122
  e.traits = null;
@@ -126,11 +141,36 @@ export function entryFor(head, t) {
126
141
  return added;
127
142
  }
128
143
  if (head.replaced === REPLACEMENTS) {
129
- return null;
144
+ return traitsEntry(t, mn);
130
145
  }
131
146
  head.replaced++;
132
147
  const victim = head.victim;
133
148
  head.victim = victim.next ?? head;
134
149
  return victim;
135
150
  }
151
+ /** The entry `t` keeps for `mn`, a name its cache has no room for. */
152
+ function traitsEntry(t, mn) {
153
+ let entries = t.manyTraitsEntries;
154
+ if (entries === null) {
155
+ entries = new Map();
156
+ t.manyTraitsEntries = entries;
157
+ filledTraits.push(t);
158
+ }
159
+ let e = entries.get(mn);
160
+ if (e === undefined) {
161
+ e = new PropertyCache();
162
+ entries.set(mn, e);
163
+ }
164
+ return e;
165
+ }
166
+ /**
167
+ * Which of a scope chain's objects binds each name findProperty looked up
168
+ * on it, the innermost that does, or null where none does, in the epoch it
169
+ * was found in: a chain's objects never change, nor do their traits'
170
+ * bindings within an epoch. Only for a chain without a with scope, which
171
+ * has a name by its dynamic properties too.
172
+ */
173
+ export class ScopeFinds extends Map {
174
+ epoch = current;
175
+ }
136
176
  //# sourceMappingURL=property-cache.js.map