mirror of https://github.com/tc39/test262.git
36 lines
996 B
JavaScript
36 lines
996 B
JavaScript
|
// Copyright 2015 Microsoft Corporation. All rights reserved.
|
||
|
// This code is governed by the license found in the LICENSE file.
|
||
|
|
||
|
/*---
|
||
|
description: Source object has iterator
|
||
|
es6id: 22.1.2.1
|
||
|
---*/
|
||
|
|
||
|
var array = [ 2, 4, 8, 16, 32, 64, 128 ];
|
||
|
var obj = {
|
||
|
[Symbol.iterator]() {
|
||
|
return {
|
||
|
index: 0,
|
||
|
next() {
|
||
|
return {
|
||
|
value: this.val,
|
||
|
done: this.isDone
|
||
|
};
|
||
|
},
|
||
|
isDone : false,
|
||
|
get val() {
|
||
|
this.index++;
|
||
|
if (this.index > 7) {
|
||
|
this.isDone = true;
|
||
|
}
|
||
|
return 1 << this.index;
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
};
|
||
|
var a = Array.from.call(Object, obj);
|
||
|
assert.sameValue(typeof a, typeof {}, "The returned type is expected to be object.");
|
||
|
for (var j = 0; j < a.length; j++) {
|
||
|
assert.sameValue(a[j], array[j], "Elements mismatch at " + j + ".");
|
||
|
}
|