I was surprised by the following behaviour:
d8> var a = { foo: "hello" }; d8> var b = Object.create(a); d8> b.foo; hello d8> a.foo; hello d8> b.foo += " world"; hello world d8> b.foo; hello world d8> a.foo; hello
It is surprising because b.foo += " world"; behaves literally like b.foo = b.foo + " world"; and each b.foo refers to a different property (one is on the object a and the other on the object b). I wonder if all other JS VM's do the same.
Marc