function shouldBe(actual, expected) { | |
if (actual !== expected) | |
throw new Error('bad value: ' + actual); | |
} | |
var order = []; | |
var source = { | |
get [Symbol.iterator]() | |
{ | |
order.push(`Symbol.iterator`); | |
return `Symbol.iterator`; | |
}, | |
get 1() | |
{ | |
order.push(`1`); | |
return `1`; | |
}, | |
get cocoa() | |
{ | |
order.push(`cocoa`); | |
return `cocoa`; | |
}, | |
}; | |
var result = Object.assign({}, source); | |
shouldBe(result[1], `1`); | |
shouldBe(result.cocoa, `cocoa`); | |
shouldBe(result[Symbol.iterator], `Symbol.iterator`); | |
shouldBe(order.join(','), `1,cocoa,Symbol.iterator`); |