Index: test/mjsunit/regress/regress-sliced-external-cons-regexp.js |
diff --git a/test/mjsunit/regress/regress-sliced-external-cons-regexp.js b/test/mjsunit/regress/regress-sliced-external-cons-regexp.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..145c831896a9b1433035de19bfbdd6daa8757b1b |
--- /dev/null |
+++ b/test/mjsunit/regress/regress-sliced-external-cons-regexp.js |
@@ -0,0 +1,21 @@ |
+// 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: --expose-externalize-string --expose-gc |
+ |
+var re = /(B)/; |
+var cons1 = "0123456789" + "ABCDEFGHIJ"; |
+var cons2 = "0123456789\u1234" + "ABCDEFGHIJ"; |
+gc(); |
+gc(); // Promote cons. |
+ |
+try { externalizeString(cons1, false); } catch (e) { } |
+try { externalizeString(cons2, true); } catch (e) { } |
+ |
+var slice1 = cons1.slice(1,-1); |
+var slice2 = cons2.slice(1,-1); |
+for (var i = 0; i < 10; i++) { |
+ assertEquals(["B", "B"], re.exec(slice1)); |
+ assertEquals(["B", "B"], re.exec(slice2)); |
+} |