/* * Any copyright is dedicated to the Public Domain. * http://creativecommons.org/licenses/publicdomain/ */ var gTestfile = 'destructuring-__proto__-target--assignment.js'; var BUGNUMBER = 963641; var summary = "{ __proto__: target } should work as a destructuring assignment pattern"; print(BUGNUMBER + ": " + summary); /************** * BEGIN TEST * **************/ function objectWithProtoProperty(v) { var obj = {}; return Object.defineProperty(obj, "__proto__", { enumerable: true, configurable: true, writable: true, value: v }); } var { __proto__: target } = objectWithProtoProperty(null); assertEq(target, null); ({ __proto__: target } = objectWithProtoProperty("aacchhorrt")); assertEq(target, "aacchhorrt"); function nested() { var { __proto__: target } = objectWithProtoProperty(3.141592654); assertEq(target, 3.141592654); ({ __proto__: target } = objectWithProtoProperty(-0)); assertEq(target, -0); } nested(); /******************************************************************************/ if (typeof reportCompare === "function") reportCompare(true, true); print("Tests complete");