ladybird/Tests/LibJS/Bytecode/input/var-shadow-in-default-param.js

20 lines
600 B
JavaScript
Raw Normal View History

// A body `var` that shadows a name referenced in a default parameter
// expression must resolve the name from the outer scope at runtime,
// not from the (uninitialized) body var binding.
// A body `var` that shadows a name used in a default -- must use GetBinding,
// and a separate variable environment must be created.
var shadow = "outer";
function shadow_in_default(x = shadow) {
var shadow = "inner";
return x;
}
shadow_in_default();
// No conflict -- body var `y` should stay a local (Mov, no GetBinding).
function no_conflict(x = 1) {
var y = 2;
return y;
}
no_conflict();