Closed Bug 514574 Opened 15 years ago Closed 14 years ago

ES5 strict mode: deleting non-configurable property should throw a TypeError

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
blocking2.0 --- beta7+

People

(Reporter: jimb, Assigned: jimb)

References

(Blocks 1 open bug)

Details

(Whiteboard: [fixed-in-tracemonkey])

From ES5 Annex C:

When a delete operator occurs within strict mode code, a TypeError is thrown if the property to be deleted has the attribute { [[Configurable]]: false } (11.4.1).
Assignee: general → jim
blocking2.0: --- → beta5+
Can we get an update here?
I'm actively working on this, together with bug 537873, which needs most of the same stuff. I should have a patch today or tomorrow.
blocking2.0: beta5+ → beta6+
Woot:
js> "use strict"; delete a[0]
typein:10: TypeError: property 'a[0]' is non-configurable and cannot be deleted
js> "use strict"; delete o.x  
typein:11: TypeError: property 'o.x' is non-configurable and cannot be deleted

The tests have caught a bunch of problems, but overall things look good.
http://hg.mozilla.org/tracemonkey/rev/a409054e1395
Status: NEW → ASSIGNED
Whiteboard: [fixed-in-tracemonkey]
http://hg.mozilla.org/mozilla-central/rev/a55097cd48d8
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Depends on: 599159
Depends on: 612260
You need to log in before you can comment on or make changes to this bug.