I am practicing JavaScript on Chrome's 'JavaScript Console' ( version: 35.0) and I am unable to use the 'use strict' clause as expected.
For the following code snippet :
var obj={x:1,y:2}
//Define new property with 'writable' flag as false.
Object.defineProperty(obj, "z", {value:3, writable:false, enumerable:false, configurable:false})
// Try to change the property 'z',
"use strict"; obj["z"]=4
Output: 4
As per my understanding, changing value of a 'non-writable' property will silently fail in non-strict mode and throw 'TypeError' in strict mode, But I don't see the exception.
console.log(obj)
Object {x: 1, y: 2, z: 3}
Even though the property value is not changed but I am expecting a exception. Please correct if I am doing something wrong ?