Andreas Kling
f79d4c7347
LibJS: Remove Interpreter& argument to Function::construct()
...
This is no longer needed, we can get everything we need from the VM.
2020-09-27 20:26:58 +02:00
Andreas Kling
1ff9d33131
LibJS: Make Function::call() not require an Interpreter&
...
This makes a difference inside ScriptFunction::call(), which will now
instantiate a temporary Interpreter if one is not attached to the VM.
2020-09-27 20:26:58 +02:00
Andreas Kling
aaf6014ae1
LibJS: Simplify Cell::initialize()
...
Remove the Interpreter& argument and pass only GlobalObject&. We can
find everything we need via the global object anyway.
2020-07-23 17:31:08 +02:00
Matthew Olsson
bda39ef7ab
LibJS: Explicitly pass a "Function& new_target" to Function::construct
...
This allows the proxy handler to pass the proper new.target to construct
handlers.
2020-07-01 11:16:37 +02:00
Andreas Kling
af51dc105a
LibJS+LibWeb: Add JS::Object::inherits(class_name)
...
To allow implementing the DOM class hierarchy in JS bindings, this
patch adds an inherits() function that can be used to ask an Object
if it inherits from a specific C++ class (by name).
The necessary overrides are baked into each Object subclass by the
new JS_OBJECT macro, which works similarly to C_OBJECT in LibCore.
Thanks to @Dexesttp for suggesting this approach. :^)
2020-06-21 15:15:52 +02:00
Andreas Kling
06e29fac57
LibJS: Split more native object constructors into construct/initialize
2020-06-20 17:50:48 +02:00
Jack Karamanian
1fa0c7304d
LibJS: Implement Function.prototype.bind()
2020-04-21 12:23:07 +02:00