Bug 143066

Summary: Poor runtime error message dealing with undefined in strict mode compared to non-strict mode
Product: WebKit Reporter: Joseph Pecoraro <joepeck>
Component: JavaScriptCoreAssignee: Saam Barati <saam>
Status: ASSIGNED ---    
Severity: Normal CC: ggaren, joepeck, rniwa, saam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Description Joseph Pecoraro 2015-03-25 16:46:17 PDT
* SUMMARY
Very poor runtime error message dealing with undefined in strict mode compared to non-strict mode.

* TEST
<script>
"use strict";
function Foo() {
    this._key = undefined;
    this._key.name = "test";
}
new Foo;
</script>

* NON-STRICT (expected)
[Error] TypeError: undefined is not an object (evaluating 'this._key.name = "test"')

* STRICT (actual)
[Error] TypeError: Attempted to assign to readonly property.

* NOTES
- Because Classes imply strict mode and we've started making heavy use of classes, this will greatly impact us when working on WebInspector.
Comment 1 Timothy Hatcher 2015-03-25 17:30:07 PDT
This stumped me for a while today.
Comment 2 Saam Barati 2015-03-27 17:32:31 PDT
I'll take this