diff options
Diffstat (limited to 'deps/v8/test/mjsunit/regexp-lastIndex.js')
-rw-r--r-- | deps/v8/test/mjsunit/regexp-lastIndex.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regexp-lastIndex.js b/deps/v8/test/mjsunit/regexp-lastIndex.js new file mode 100644 index 0000000000..16b9f86d9b --- /dev/null +++ b/deps/v8/test/mjsunit/regexp-lastIndex.js @@ -0,0 +1,22 @@ +// Copyright 2016 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// lastIndex is set only for global or sticky RegExps. On failure to find +// a match, it is set to 0. If a set fails, then it acts as if in strict mode +// and throws. + +var re = /x/g; +Object.defineProperty(re, 'lastIndex', {writable: false}); +assertThrows(() => re.exec(""), TypeError); +assertThrows(() => re.exec("x"), TypeError); + +var re = /x/y; +Object.defineProperty(re, 'lastIndex', {writable: false}); +assertThrows(() => re.exec(""), TypeError); +assertThrows(() => re.exec("x"), TypeError); + +var re = /x/; +Object.defineProperty(re, 'lastIndex', {writable: false}); +assertEquals(null, re.exec("")); +assertEquals(["x"], re.exec("x")); |