diff options
Diffstat (limited to 'js/src/tests/test262/annexB/built-ins/RegExp/prototype/compile/pattern-regexp-flags-defined.js')
-rw-r--r-- | js/src/tests/test262/annexB/built-ins/RegExp/prototype/compile/pattern-regexp-flags-defined.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/js/src/tests/test262/annexB/built-ins/RegExp/prototype/compile/pattern-regexp-flags-defined.js b/js/src/tests/test262/annexB/built-ins/RegExp/prototype/compile/pattern-regexp-flags-defined.js new file mode 100644 index 0000000000..6ea536960c --- /dev/null +++ b/js/src/tests/test262/annexB/built-ins/RegExp/prototype/compile/pattern-regexp-flags-defined.js @@ -0,0 +1,46 @@ +// 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-regexp.prototype.compile +es6id: B.2.5.1 +description: > + Behavior when provided pattern is a RegExp instance and flags are specified +info: | + [...] + 3. If Type(pattern) is Object and pattern has a [[RegExpMatcher]] internal + slot, then + a. If flags is not undefined, throw a TypeError exception. +---*/ + +var re = /./; +re.lastIndex = 23; + +assert.sameValue(typeof RegExp.prototype.compile, 'function'); + +assert.throws(TypeError, function() { + re.compile(re, null); +}, 'null'); + +assert.throws(TypeError, function() { + re.compile(re, 0); +}, 'numeric primitive'); + +assert.throws(TypeError, function() { + re.compile(re, ''); +}, 'string primitive'); + +assert.throws(TypeError, function() { + re.compile(re, false); +}, 'boolean primitive'); + +assert.throws(TypeError, function() { + re.compile(re, {}); +}, 'ordinary object'); + +assert.throws(TypeError, function() { + re.compile(re, []); +}, 'array exotic object'); + +assert.sameValue(re.lastIndex, 23); + +reportCompare(0, 0); |