Index: test/mjsunit/regress/regress-709029.js |
diff --git a/test/mjsunit/regress/regress-709029.js b/test/mjsunit/regress/regress-709029.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b9bcabbc27b77b5c7f944eb50999c4a7613f4d52 |
--- /dev/null |
+++ b/test/mjsunit/regress/regress-709029.js |
@@ -0,0 +1,38 @@ |
+// Copyright 2017 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. |
+ |
+// Changes the map of obj. |
+function mutateObjectOnStringConversion(obj) { |
+ return { toString: () => { obj.x = 42;return "";}}; |
+} |
+ |
+{ |
+ const re = /./; |
+ re.exec(mutateObjectOnStringConversion(re)); |
+} |
+ |
+{ |
+ const re = /./; |
+ re.test(mutateObjectOnStringConversion(re)); |
+} |
+ |
+{ |
+ const re = /./; |
+ re[Symbol.match](mutateObjectOnStringConversion(re)); |
+} |
+ |
+{ |
+ const re = /./; |
+ re[Symbol.search](mutateObjectOnStringConversion(re)); |
+} |
+ |
+{ |
+ const re = /./; |
+ re[Symbol.split](mutateObjectOnStringConversion(re)); |
+} |
+ |
+{ |
+ const re = /./; |
+ re[Symbol.replace](mutateObjectOnStringConversion(re)); |
+} |