« Bugzilla Issues Index
#1441 — Non-strict "delete obj.p" should return false if obj.p isn't configurable
- bug_id:
1441
- creation_ts:
2013-04-15 09:09:00 -0700
- short_desc:
Non-strict "delete obj.p" should return false if obj.p isn't configurable
- delta_ts:
2013-05-14 18:13:38 -0700
- product:
Draft for 6th Edition
- component:
technical issue
- version:
Rev 13: December 21, 2012 Draft
- rep_platform:
All
- op_sys:
All
- bug_status:
RESOLVED
- resolution:
FIXED
- priority:
Normal
- bug_severity:
enhancement
- everconfirmed:
true
- reporter:
Jason Orendorff
- assigned_to:
Allen Wirfs-Brock
- commentid:
3641
- comment_count:
0
- who:
Jason Orendorff
- bug_when:
2013-04-15 09:09:40 -0700
In 11.4.1 "The delete Operator",
under "Runtime Semantics: Evaluation",
step 5.b-e are like this:
> b. Let deleteStatus be the result of calling the [[Delete]] internal method
> on ToObject(GetBase(ref)), providing GetReferencedName(ref) as the argument.
>
> c. ReturnIfAbrupt(deleteStatus).
>
> d. If deleteStatus is false and IsStrictReference(ref) is true, then
> throw a TypeError exception.
>
> e. Return true.
I think the last step should be "Return deleteStatus." so that deleting a nonconfigurable property in non-strict code returns false:
js> var obj = Object.create({}, {p: {value: 3}});
js> delete obj.p;
false
- commentid:
3659
- comment_count:
1
- who:
Allen Wirfs-Brock
- bug_when:
2013-04-19 14:16:26 -0700
fixed in rev 15 editor's draft
- commentid:
3931
- comment_count:
2
- who:
Allen Wirfs-Brock
- bug_when:
2013-05-14 18:13:38 -0700
resolved in rev 15, May 14, 2013 draft