| function shouldBe(actual, expected) { |
| if (actual !== expected) |
| throw new Error('bad value: ' + actual); |
| } |
| |
| for (var i = 0; i < 10; ++i) { |
| Object.defineProperty(Array.prototype, i, { |
| get() { |
| throw new Error('get is called.'); |
| }, |
| set(value) { |
| throw new Error('set is called.'); |
| } |
| }); |
| } |
| |
| var original = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; |
| |
| // Doesn't throw any errors. |
| var mapped = original.map(function (value) { |
| return value * 2; |
| }); |
| |
| shouldBe(mapped.length, 10); |
| for (var i = 0; i < 10; ++i) { |
| shouldBe(mapped[i], i * 2); |
| } |