|
1 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
4 |
|
5 |
|
6 load(libdir + "asserts.js"); |
|
7 |
|
8 // FIXME: Import from std::iteration. |
|
9 const std_iterator = '@@iterator'; |
|
10 |
|
11 if (typeof assertIteratorResult === 'undefined') { |
|
12 var assertIteratorResult = function assertIteratorResult(result, value, done) { |
|
13 assertEq(typeof result, "object"); |
|
14 var expectedProps = ['done', 'value']; |
|
15 var actualProps = Object.getOwnPropertyNames(result); |
|
16 actualProps.sort(), expectedProps.sort(); |
|
17 assertDeepEq(actualProps, expectedProps); |
|
18 assertDeepEq(result.value, value); |
|
19 assertDeepEq(result.done, done); |
|
20 } |
|
21 } |
|
22 |
|
23 if (typeof assertIteratorNext === 'undefined') { |
|
24 var assertIteratorNext = function assertIteratorNext(iter, value) { |
|
25 assertIteratorResult(iter.next(), value, false); |
|
26 } |
|
27 } |
|
28 |
|
29 if (typeof assertIteratorDone === 'undefined') { |
|
30 var assertIteratorDone = function assertIteratorDone(iter, value) { |
|
31 assertIteratorResult(iter.next(), value, true); |
|
32 } |
|
33 } |