mirror of
https://github.com/tc39/test262.git
synced 2025-05-14 20:00:31 +02:00
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.
27 lines
810 B
JavaScript
27 lines
810 B
JavaScript
// 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);
|