Open Bug 902001 Opened 11 years ago Updated 2 years ago

Missing [[HasProperty]] call when resolving object environment record references

Categories

(Core :: JavaScript Engine, defect)

defect

Tracking

()

People

(Reporter: anba, Unassigned)

References

(Blocks 1 open bug)

Details

The following test case should output the string "undefined" instead of "0":
-----
with (new Proxy({c:0}, {
  get: (t, pk, r) => pk == "x" ? 0 : 1,
  has: (t, pk) => pk == "x" && t.c++ == 0
})) {""+x}
-----

And this test case should report a ReferenceError:
---
with (new Proxy({c:0}, {
  get: (t, pk, r) => pk == "x" ? 0 : 1,
  has: (t, pk) => pk == "x" && t.c++ == 0
})) { (function(){"use strict"; ""+x})() }
---

See ECMAScript5.1, "10.2.1.2.4 GetBindingValue(N,S)" steps 3-4. Or alternatively "10.2.1.2.6 GetBindingValue(N,S)" steps 3-5 in the ECMAScript6 draft.
Assignee: general → nobody
Blocks: es6
Status: UNCONFIRMED → NEW
Ever confirmed: true
Shu wants to take a look at this.
Flags: needinfo?(shu)
Flags: needinfo?(shu)
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.