mirror of https://github.com/tc39/test262.git
49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
/*---
|
|
esid: sec-@@iterator
|
|
es6id: 26.3.2
|
|
description: >
|
|
Behavior when the `this` value is not a module namespace exotic object
|
|
info: |
|
|
1. Let N be the this value.
|
|
2. If N is not a module namespace exotic object, throw a TypeError
|
|
exception.
|
|
flags: [module]
|
|
features: [Symbol.iterator]
|
|
---*/
|
|
|
|
import * as ns from './this-val-not-ns.js';
|
|
|
|
var iter = ns[Symbol.iterator];
|
|
|
|
assert.sameValue(typeof iter, 'function');
|
|
|
|
assert.throws(TypeError, function() {
|
|
iter();
|
|
}, 'undefined');
|
|
|
|
assert.throws(TypeError, function() {
|
|
iter.call({});
|
|
}, 'ordinary object');
|
|
|
|
assert.throws(TypeError, function() {
|
|
iter.call([]);
|
|
}, 'Array exotic object');
|
|
|
|
assert.throws(TypeError, function() {
|
|
iter.call(23);
|
|
}, 'number literal');
|
|
|
|
assert.throws(TypeError, function() {
|
|
iter.call(null);
|
|
}, 'null');
|
|
|
|
assert.throws(TypeError, function() {
|
|
iter.call('string literal');
|
|
}, 'string literal');
|
|
|
|
assert.throws(TypeError, function() {
|
|
iter.call(Symbol.iterator);
|
|
}, 'symbol');
|