David Wendt
098b034de0
Refactor method-related structs into a separate method module.
...
This also renames `NativeFunction` and `Avm2MethodEntry` to `NativeMethod` and `BytecodeMethod`, respectively.
2020-07-13 17:45:05 -04:00
David Wendt
ecfd16cec9
Add global constants `undefined`, `null`, and `NaN`.
2020-07-13 17:44:58 -04:00
David Wendt
4b66af8dc3
ES4 classes, while superficially similar to functions, are not functions and should not inherit from the `Function` prototype.
...
We still reuse the `FunctionObject` machinery internally. If necessary, we may want to split this into a separate `ClassObject` if some internal `TObject` method needs replacing for classes.
2020-07-13 17:44:55 -04:00
David Wendt
c6265bb50c
Allow tracing booleans.
...
This requires implementing *some level* of coercions, even though this isn't the way to do it.
2020-07-13 17:44:34 -04:00
David Wendt
a0ab978bed
Impl `callmethod`, `callproperty`, `callproplex`, `callpropvoid`, and `callstatic`.
...
Also, implement a method table that method traits can optionally add themselves to.
Also also, add the ability to invoke a method without a `this` object. This required a non-trivial refactoring of the activation machinery, and changes to the signature of `NativeFunction`, and all native AVM2 functions.
2020-07-13 17:43:49 -04:00
David Wendt
7792fd5581
Impl `trace`, which is a free function rather than an opcode this time.
2020-07-13 17:43:48 -04:00
David Wendt
a557867c71
Add the entire class hierarchy of `MovieClip` and `Sprite`.
2020-07-13 17:43:47 -04:00
David Wendt
f6e2ca1fe5
Clean up the current set of builtins to accurately reflect the namespace hierarchy.
2020-07-13 17:43:47 -04:00
David Wendt
b2f5307213
Add `flash.display.Sprite` because Flash Builder tests demand it.
2020-07-13 17:43:42 -04:00
David Wendt
d42b16f021
Add stub impl of `flash.display.MovieClip`.
2020-07-13 17:43:27 -04:00
David Wendt
88957b2b3d
Add stub builtins for Object and Function. These are more-or-less identical to the way we did it in AVM1 (e.g. no fancy player globals file)
2020-07-13 17:43:24 -04:00
David Wendt
7d75255a1a
Add global scope which is automatically included on all new activations.
2020-07-13 17:43:20 -04:00