From 894bbcc747b9a9a11a4bfe852bfbc91ff10c7e5a Mon Sep 17 00:00:00 2001 From: Michael Ficarra Date: Fri, 12 Aug 2016 18:01:43 +0200 Subject: [PATCH] add PropertyDefinitionList evaluation order test (#739) This test is being added because the committee is considering changing this evaluation order (as discussed at the May 2016 Munich meeting). The consequences of this spec change will be more clear as a test change than a simple test addition. --- .../computed-property-evaluation-order.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 test/language/expressions/object/computed-property-evaluation-order.js diff --git a/test/language/expressions/object/computed-property-evaluation-order.js b/test/language/expressions/object/computed-property-evaluation-order.js new file mode 100644 index 0000000000..87a2509d24 --- /dev/null +++ b/test/language/expressions/object/computed-property-evaluation-order.js @@ -0,0 +1,26 @@ +// Copyright (C) 2016 Michael Ficarra. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-object-initializer-runtime-semantics-propertydefinitionevaluation +description: > + Evaluation of PropertyDefinitionList occurs in order, and each + PropertyDefinition's PropertyName is evaluated before its + AssignmentExpression. +---*/ + +var counter = 0; +var o = { + [++counter]: ++counter, + [++counter]: ++counter, + [++counter]: ++counter, +} + +var keys = Object.keys(o); + +assert.sameValue(keys.length, 3, '3 PropertyDefinitions should result in 3 properties'); +assert.sameValue(keys[0], '1'); +assert.sameValue(o[keys[0]], 2); +assert.sameValue(keys[1], '3'); +assert.sameValue(o[keys[1]], 4); +assert.sameValue(keys[2], '5'); +assert.sameValue(o[keys[2]], 6);