| // Any copyright is dedicated to the Public Domain. |
| // http://creativecommons.org/licenses/publicdomain/ |
| |
| //----------------------------------------------------------------------------- |
| var BUGNUMBER = 1199546; |
| var summary = |
| "Convert computed property name expressions to property key before " + |
| "evaluating the property's value"; |
| |
| print(BUGNUMBER + ": " + summary); |
| |
| /************** |
| * BEGIN TEST * |
| **************/ |
| |
| var s = "foo"; |
| var convertsToS = { toString() { return s; } }; |
| |
| var o = { |
| [convertsToS]: // after ToPropertyKey becomes "foo" |
| (function() { |
| s = 'bar'; |
| return 'abc'; // so we have "foo": "bar" for the first property |
| })(), |
| |
| [convertsToS]: // |s| was set above to "bar", so after ToPropertyKey, "bar" |
| 'efg' // so we have "bar": "efg" for the second property |
| }; |
| |
| assertEq(o.foo, "abc"); |
| assertEq(o.bar, "efg"); |
| |
| /******************************************************************************/ |
| |
| if (typeof reportCompare === "function") |
| reportCompare(true, true); |
| |
| print("Tests complete"); |