mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-05 06:32:30 +02:00
LibJS: Emit ThrowIfTDZ for identifiers used in assignment expressions
Error about not-initialized `x` variable access should be thrown for:
```js
function foo() {
x = 69;
let x;
}
foo();
```
Progress on test262:
```
Diff Tests:
test/staging/sm/expressions/optional-chain-tdz.js ❌ -> ✅
test/staging/sm/expressions/short-circuit-compound-assignment-tdz.js
❌ -> ✅
```
Fixes https://github.com/LadybirdBrowser/ladybird/issues/4587
This commit is contained in:
committed by
Andreas Kling
parent
db480b1f0c
commit
b3713db4ab
Notes:
github-actions[bot]
2025-05-06 10:07:25 +00:00
Author: https://github.com/kalenikaliaksandr Commit: https://github.com/LadybirdBrowser/ladybird/commit/b3713db4ab6 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4616 Reviewed-by: https://github.com/awesomekling
@@ -13,15 +13,15 @@
|
||||
anim.cancel();
|
||||
|
||||
// "Undo" the removal of an animation by the Document
|
||||
anim1 = foo.animate({ opacity: 0 }, { duration: 1, fill: 'forwards' });
|
||||
anim2 = foo.animate({ opacity: 0 }, { duration: 1, fill: 'forwards' });
|
||||
let anim1 = foo.animate({ opacity: 0 }, { duration: 1, fill: 'forwards' });
|
||||
let anim2 = foo.animate({ opacity: 0 }, { duration: 1, fill: 'forwards' });
|
||||
await anim1.finished;
|
||||
anim1.persist();
|
||||
println(`persist() undoes the Document removal effects: ${foo.getAnimations().length === 2}`);
|
||||
|
||||
const timeline = internals.createInternalAnimationTimeline();
|
||||
let anim1 = foo.animate({ opacity: 0 }, { duration: 1000, fill: "forwards", timeline });
|
||||
let anim2 = foo.animate({ opacity: 0 }, { duration: 500, fill: "forwards", timeline });
|
||||
anim1 = foo.animate({ opacity: 0 }, { duration: 1000, fill: "forwards", timeline });
|
||||
anim2 = foo.animate({ opacity: 0 }, { duration: 500, fill: "forwards", timeline });
|
||||
timeline.setTime(1500);
|
||||
await animationFrame();
|
||||
if (anim1.replaceState === "removed" && anim2.replaceState === "active")
|
||||
|
||||
Reference in New Issue
Block a user