test262/test/language/module-code/namespace/Symbol.iterator/this-val-not-ns.js

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');