mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 13:27:35 +00:00
LibJS: Implement constructor/non-constructor function calls
This adds Function::construct() for constructor function calls via `new` keyword. NativeFunction doesn't have constructor behaviour by default, ScriptFunction simply calls call() in construct()
This commit is contained in:
parent
a27884e4be
commit
849e2c77e4
11 changed files with 66 additions and 1 deletions
|
@ -25,6 +25,27 @@ try {
|
|||
assert(e.message === "undefined is not a function");
|
||||
}
|
||||
|
||||
try {
|
||||
Math();
|
||||
} catch(e) {
|
||||
assert(e.name === "TypeError");
|
||||
assert(e.message === "[object MathObject] is not a function");
|
||||
}
|
||||
|
||||
try {
|
||||
new Math();
|
||||
} catch(e) {
|
||||
assert(e.name === "TypeError");
|
||||
assert(e.message === "[object MathObject] is not a constructor");
|
||||
}
|
||||
|
||||
try {
|
||||
new isNaN();
|
||||
} catch(e) {
|
||||
assert(e.name === "TypeError");
|
||||
assert(e.message === "[object NativeFunction] is not a constructor");
|
||||
}
|
||||
|
||||
console.log("PASS");
|
||||
} catch(e) {
|
||||
console.log("FAIL: " + e);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue