@T.J. Going back to your original post: According to the definitions that I gave, objects are not values (they are mutable) but they **have** a value. Their value is their identity which is a memory handle (a reference) in JavaScript. Objects are **more** than their value; they are identity + state. When you pass or assign an object, you pass/assign the identity. The state is not copied.
The ES spec that you quote does not bluntly say that "objects are values"; it says that objects are *manipulated* as values. I think that you can take the viewpoint that objects are not values, but that they are manipulated through their identity, which is a value. I did not discuss functions in my write-up (was saving this for a later post that I never wrote) but I would classify functions as values, conceptually. This is an area where my model disagrees with JavaScript because functions are mutable in JS: `(_ => {}).foo = 1;`. But this is not the only disagreement: dates are values in my model and objects in JS. Bruno
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss