Page MenuHomePhorge

test_computed_assignment_order.js
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

test_computed_assignment_order.js

const failures = [];
function assertOrder(name, got, expected) {
const ok = got.length === expected.length && got.every((v, i) => v === expected[i]);
if (!ok) failures.push(`${name}: expected [${expected.join(', ')}], got [${got.join(', ')}]`);
}
{
const order = [];
const base = {};
const getObj = () => { order.push('obj'); return base; };
const key = () => { order.push('key'); return 'k'; };
const rhs = () => { order.push('rhs'); return 1; };
getObj()[key()] = rhs();
assertOrder('computed assignment order', order, ['obj', 'key', 'rhs']);
}
{
const order = [];
const base = {};
const getObj = () => { order.push('obj'); return base; };
const rhs = () => { order.push('rhs'); return 1; };
getObj().x = rhs();
assertOrder('named assignment order', order, ['obj', 'rhs']);
}
if (failures.length) {
console.log('Assignment order failures:');
for (let i = 0; i < failures.length; i++) {
console.log(` ${i + 1}. ${failures[i]}`);
}
throw new Error(`Found ${failures.length} assignment-order regression(s)`);
}
console.log('PASS: assignment evaluation order');

File Metadata

Mime Type
text/plain
Expires
Wed, Jun 17, 1:22 PM (1 d, 11 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
557659
Default Alt Text
test_computed_assignment_order.js (1 KB)

Event Timeline