.= should replace all the internal pointers to an object with another, and this= should be like .= but it preserves this
var obj = {}
var o = obj
console.log(getAddress(obj) +''+ getAddress(o)) //address of obj twice
obj.={}
console.log(getAddress(obj) +''+ getAddress(o)) //different address twice
var obj = {}
var o = obj
console.log(getAddress(obj) +''+ getAddress(o)) //address of obj twice
obj={}
console.log(getAddress(obj) +''+ getAddress(o)) //different address, and then address of obj
should be preventable by Object.lockIdentity(anObject)
I'm not sure I understand how this is different from normal assignment. I believe your example code snippet would function exactly the same if you replaced ā.=ā with just ā=ā.
I'm not sure I follow still. And I'm wondering if there's perhaps a misunderstanding on how references work in JavaScript.
Do you think you could provide an example that uses the ā.=ā operator and includes some console.log()s with comments explaining what that would output. Iād like to then be able to swap the ā.=ā for a normal ā=ā, paste it in a JavaScript file and run it, and observe the console.log() behave differently then what you have commented (so it's clear this does behave differently). If I had something like that, I think it would be clearer, to me, what this operator does.
Object identities are forever immutable quite on purpose - also, that would be the first time that assignment inside a function affected a binding outside the function, which would be a horrific and fundamental change to the language.