var o = Object.freeze([]), leak = {}; try { throw o; } catch (ex) {} if(o.stack !== undefined) throw new Error("the stack was leaked."); o.stack = leak; if(o.stack === leak) throw new Error("the object wasn't frozen."); o.other = "wrong"; if(o.other === "wrong") throw new Error("the object wasn't frozen."); o = Object.freeze({"hi": "other"}); try { throw o; } catch (ex) {} o.stack = leak; if(o.stack !== undefined) throw new Error("the stack was leaked."); o.stack = leak; if(o.stack === leak) throw new Error("the object wasn't frozen."); o.other = "wrong"; if(o.other === "wrong") throw new Error("the object wasn't frozen.");