1 | 'use strict';
|
2 |
|
3 | var ArrayIterator = require('../array')
|
4 |
|
5 | , slice = Array.prototype.slice;
|
6 |
|
7 | module.exports = function (t, a) {
|
8 | var i = 0, x = ['raz', 'dwa', 'trzy'], y = {}, called = 0;
|
9 | t(x, function () {
|
10 | a.deep(slice.call(arguments, 0, 1), [x[i]], "Array " + i + "#");
|
11 | a(this, y, "Array: context: " + (i++) + "#");
|
12 | }, y);
|
13 | i = 0;
|
14 | t((function () { return arguments; }('raz', 'dwa', 'trzy')), function () {
|
15 | a.deep(slice.call(arguments, 0, 1), [x[i]], "Arguments" + i + "#");
|
16 | a(this, y, "Arguments: context: " + (i++) + "#");
|
17 | }, y);
|
18 | i = 0;
|
19 | t(x = 'foo', function () {
|
20 | a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
|
21 | a(this, y, "Regular String: context: " + (i++) + "#");
|
22 | }, y);
|
23 | i = 0;
|
24 | x = ['r', '💩', 'z'];
|
25 | t('r💩z', function () {
|
26 | a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
|
27 | a(this, y, "Unicode String: context: " + (i++) + "#");
|
28 | }, y);
|
29 | i = 0;
|
30 | t(new ArrayIterator(x), function () {
|
31 | a.deep(slice.call(arguments, 0, 1), [x[i]], "Iterator " + i + "#");
|
32 | a(this, y, "Iterator: context: " + (i++) + "#");
|
33 | }, y);
|
34 |
|
35 | t(x = ['raz', 'dwa', 'trzy'], function (value, doBreak) {
|
36 | ++called;
|
37 | return doBreak();
|
38 | });
|
39 | a(called, 1, "Break");
|
40 | };
|