Chromium Code Reviews| Index: test/mjsunit/harmony/regexp-flags.js |
| diff --git a/test/mjsunit/harmony/regexp-flags.js b/test/mjsunit/harmony/regexp-flags.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..562bff4807d4b6af1fea7cf5f44b42ad4640dadd |
| --- /dev/null |
| +++ b/test/mjsunit/harmony/regexp-flags.js |
| @@ -0,0 +1,40 @@ |
| +// Copyright 2014 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. |
| + |
| +// Flags: --harmony-regexps |
| + |
| +delete RegExp.prototype.flags; |
| +RegExp.prototype.flags = 'setter should be undefined'; |
| + |
| +assertEquals('', RegExp('').flags); |
| +assertEquals('', /./.flags); |
| +assertEquals('gimy', RegExp('', 'ygmi').flags); |
| +assertEquals('gimy', /foo/ymig.flags); |
| + |
| +// When support for the `u` flag is added, uncomment the first line below and |
|
Dmitry Lomov (no reviews)
2014/12/10 16:04:44
Please add a TODO here. Feel free to put me as an
|
| +// remove the second line. |
| +//assertEquals(RegExp('', 'yumig').flags, 'gimuy'); |
| +assertThrows(function() { RegExp('', 'yumig').flags; }, SyntaxError); |
| + |
| +var descriptor = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags'); |
| +assertFalse(descriptor.configurable); |
| +assertFalse(descriptor.enumerable); |
| +assertInstanceof(descriptor.get, Function); |
| +assertEquals(undefined, descriptor.set); |
| + |
| +function testGenericFlags(object) { |
| + return descriptor.get.call(object); |
| +} |
| + |
| +assertEquals('', testGenericFlags({})); |
| +assertEquals('i', testGenericFlags({ ignoreCase: true })); |
| +assertEquals('uy', testGenericFlags({ global: 0, sticky: 1, unicode: 1 })); |
| +assertEquals('m', testGenericFlags({ __proto__: { multiline: true } })); |
| +assertThrows(function() { testGenericFlags(); }, TypeError); |
| +assertThrows(function() { testGenericFlags(undefined); }, TypeError); |
| +assertThrows(function() { testGenericFlags(null); }, TypeError); |
| +assertThrows(function() { testGenericFlags(true); }, TypeError); |
| +assertThrows(function() { testGenericFlags(false); }, TypeError); |
| +assertThrows(function() { testGenericFlags(''); }, TypeError); |
| +assertThrows(function() { testGenericFlags(42); }, TypeError); |