@swf2es/runtime 0.1.15 → 0.1.17
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/avm2/amf.d.ts +1 -1
- package/dist/avm2/amf.d.ts.map +1 -1
- package/dist/avm2/amf.js +4 -3
- package/dist/avm2/amf.js.map +1 -1
- package/dist/avm2/as3-types.d.ts +25 -0
- package/dist/avm2/as3-types.d.ts.map +1 -0
- package/dist/avm2/as3-types.js +9 -0
- package/dist/avm2/as3-types.js.map +1 -0
- package/dist/avm2/builtin-types.generated.d.ts +553 -0
- package/dist/avm2/builtin-types.generated.d.ts.map +1 -0
- package/dist/avm2/builtin-types.generated.js +11 -0
- package/dist/avm2/builtin-types.generated.js.map +1 -0
- package/dist/avm2/cache-fill.d.ts +4 -1
- package/dist/avm2/cache-fill.d.ts.map +1 -1
- package/dist/avm2/cache-fill.js +5 -6
- package/dist/avm2/cache-fill.js.map +1 -1
- package/dist/avm2/classes.d.ts.map +1 -1
- package/dist/avm2/classes.js +10 -3
- package/dist/avm2/classes.js.map +1 -1
- package/dist/avm2/descriptors.d.ts +6 -1
- package/dist/avm2/descriptors.d.ts.map +1 -1
- package/dist/avm2/descriptors.js.map +1 -1
- package/dist/avm2/errors.d.ts +14 -0
- package/dist/avm2/errors.d.ts.map +1 -1
- package/dist/avm2/errors.js +20 -1
- package/dist/avm2/errors.js.map +1 -1
- package/dist/avm2/index.d.ts +4 -0
- package/dist/avm2/index.d.ts.map +1 -1
- package/dist/avm2/index.js +3 -0
- package/dist/avm2/index.js.map +1 -1
- package/dist/avm2/names.d.ts +11 -0
- package/dist/avm2/names.d.ts.map +1 -1
- package/dist/avm2/names.js +12 -0
- package/dist/avm2/names.js.map +1 -1
- package/dist/avm2/natives/array.js +1 -1
- package/dist/avm2/natives/array.js.map +1 -1
- package/dist/avm2/natives/bytearray.d.ts.map +1 -1
- package/dist/avm2/natives/bytearray.js +6 -11
- package/dist/avm2/natives/bytearray.js.map +1 -1
- package/dist/avm2/natives/describe.js +6 -1
- package/dist/avm2/natives/describe.js.map +1 -1
- package/dist/avm2/natives/object.d.ts.map +1 -1
- package/dist/avm2/natives/object.js +5 -2
- package/dist/avm2/natives/object.js.map +1 -1
- package/dist/avm2/natives/proxy.d.ts.map +1 -1
- package/dist/avm2/natives/proxy.js +9 -4
- package/dist/avm2/natives/proxy.js.map +1 -1
- package/dist/avm2/natives/vector.js +1 -1
- package/dist/avm2/natives/vector.js.map +1 -1
- package/dist/avm2/options.d.ts +5 -0
- package/dist/avm2/options.d.ts.map +1 -1
- package/dist/avm2/options.js.map +1 -1
- package/dist/avm2/property-cache.d.ts +17 -13
- package/dist/avm2/property-cache.d.ts.map +1 -1
- package/dist/avm2/property-cache.js +50 -10
- package/dist/avm2/property-cache.js.map +1 -1
- package/dist/avm2/runtime.d.ts +101 -1
- package/dist/avm2/runtime.d.ts.map +1 -1
- package/dist/avm2/runtime.js +351 -45
- package/dist/avm2/runtime.js.map +1 -1
- package/dist/avm2/traits.d.ts +13 -0
- package/dist/avm2/traits.d.ts.map +1 -1
- package/dist/avm2/traits.js +23 -0
- package/dist/avm2/traits.js.map +1 -1
- package/package.json +2 -2
- package/src/avm2/amf.ts +4 -3
- package/src/avm2/as3-types.ts +41 -0
- package/src/avm2/builtin-types.generated.ts +619 -0
- package/src/avm2/cache-fill.ts +5 -7
- package/src/avm2/classes.ts +10 -3
- package/src/avm2/descriptors.ts +6 -2
- package/src/avm2/errors.ts +21 -1
- package/src/avm2/index.ts +6 -0
- package/src/avm2/names.ts +13 -0
- package/src/avm2/natives/array.ts +1 -1
- package/src/avm2/natives/bytearray.ts +6 -14
- package/src/avm2/natives/describe.ts +8 -1
- package/src/avm2/natives/object.ts +5 -2
- package/src/avm2/natives/proxy.ts +20 -4
- package/src/avm2/natives/vector.ts +1 -1
- package/src/avm2/options.ts +5 -0
- package/src/avm2/property-cache.ts +57 -11
- package/src/avm2/runtime.ts +407 -53
- package/src/avm2/traits.ts +27 -1
package/src/avm2/traits.ts
CHANGED
|
@@ -16,7 +16,7 @@ import type { Domain } from "./domain.js";
|
|
|
16
16
|
import { DynamicProperties } from "./dynamic-properties.js";
|
|
17
17
|
import type { ClassHook, IndexHook, PropertyHook } from "./hooks.js";
|
|
18
18
|
import type { Multiname, Namespace } from "./names.js";
|
|
19
|
-
import { invalidate } from "./property-cache.js";
|
|
19
|
+
import { invalidate, type PropertyCache } from "./property-cache.js";
|
|
20
20
|
|
|
21
21
|
// Binding kinds, as the compiler encodes them: kind | id << 3.
|
|
22
22
|
export const BIND_Method = 1;
|
|
@@ -160,6 +160,12 @@ export class Traits {
|
|
|
160
160
|
interfaceKeys: Map<Traits, (string | undefined)[]> | null = null;
|
|
161
161
|
lastInterface: Traits | null = null;
|
|
162
162
|
lastInterfaceKeys: (string | undefined)[] = [];
|
|
163
|
+
/**
|
|
164
|
+
* The cache entries for these traits of names looked up on more traits
|
|
165
|
+
* than their own caches keep (property-cache.ts), by name; emptied with
|
|
166
|
+
* every cache.
|
|
167
|
+
*/
|
|
168
|
+
manyTraitsEntries: Map<Multiname, PropertyCache> | null = null;
|
|
163
169
|
|
|
164
170
|
constructor(
|
|
165
171
|
readonly name: string,
|
|
@@ -181,6 +187,26 @@ export class Traits {
|
|
|
181
187
|
}
|
|
182
188
|
}
|
|
183
189
|
|
|
190
|
+
/**
|
|
191
|
+
* Its name as Flash's debugger player writes it in an error message
|
|
192
|
+
* (AvmCore::toErrorString): the package and the name joined by a dot,
|
|
193
|
+
* "flash.text.TextField"; a class object's as "class " and its class's.
|
|
194
|
+
*/
|
|
195
|
+
get errorName(): string {
|
|
196
|
+
let name = this.name;
|
|
197
|
+
const statics = this.base?.name === "Class" && name.endsWith("$");
|
|
198
|
+
if (statics) {
|
|
199
|
+
name = name.slice(0, -1);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const colons = name.lastIndexOf("::");
|
|
203
|
+
if (colons >= 0) {
|
|
204
|
+
name = `${name.slice(0, colons)}.${name.slice(colons + 2)}`;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return statics ? `class ${name}` : name;
|
|
208
|
+
}
|
|
209
|
+
|
|
184
210
|
/**
|
|
185
211
|
* The object a method and its entries, `count` properties, go into:
|
|
186
212
|
* the prototype, till it holds HOME_PROPERTIES, then an object chained
|