mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:57:35 +00:00
LibJS: Set the bound |this| value to the |this| value of the current
scope for arrow functions
This commit is contained in:
parent
c12125fa81
commit
45ccd9f8d9
3 changed files with 16 additions and 4 deletions
|
@ -102,9 +102,8 @@ try {
|
|||
// assert(strictIdentity.bind(undefined)() === undefined);
|
||||
// })();
|
||||
|
||||
// FIXME: Uncomment me when arrow functions have the correct |this| value.
|
||||
// // Arrow functions can not have their |this| value set.
|
||||
// assert((() => this).bind("foo")() === globalThis)
|
||||
// Arrow functions can not have their |this| value set.
|
||||
assert((() => this).bind("foo")() === globalThis)
|
||||
|
||||
console.log("PASS");
|
||||
} catch (e) {
|
||||
|
|
|
@ -64,6 +64,19 @@ try {
|
|||
assert(foo === undefined);
|
||||
assert(bar === undefined);
|
||||
|
||||
function FooBar() {
|
||||
this.x = {
|
||||
y: () => this,
|
||||
z: function () {
|
||||
return (() => this)();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var foobar = new FooBar();
|
||||
assert(foobar.x.y() === foobar);
|
||||
assert(foobar.x.z() === foobar.x);
|
||||
|
||||
(() => {
|
||||
"use strict";
|
||||
assert(isStrictMode());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue