summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/RegExpStringIteratorPrototype/next/this-is-not-object-throws.js
blob: 3d587339c9de338619c1b157961a97c0d8abc09b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright (C) 2018 Peter Wong. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: pending
description: Throws TypeError when `this` is not an Object
info: |
  %RegExpStringIteratorPrototype%.next ( )
    1. Let O be the this value.
    2. If Type(O) is not Object, throw a TypeError exception.
features: [Symbol.matchAll]
---*/

var RegExpStringIteratorProto = Object.getPrototypeOf(/./[Symbol.matchAll](''));

var thisValue;
var callNext = function() {
  RegExpStringIteratorProto.next.call(thisValue);
};

thisValue = null;
assert.throws(TypeError, callNext, 'this value is null');

thisValue = true;
assert.throws(TypeError, callNext, 'this value is Boolean');

thisValue = '';
assert.throws(TypeError, callNext, 'this value is String');

thisValue = Symbol();
assert.throws(TypeError, callNext, 'this value is Symbol');

thisValue = 1;
assert.throws(TypeError, callNext, 'this value is Number');


reportCompare(0, 0);