summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/harmony/string-iswellformed-flat-indirect.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/harmony/string-iswellformed-flat-indirect.js')
-rw-r--r--deps/v8/test/mjsunit/harmony/string-iswellformed-flat-indirect.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/harmony/string-iswellformed-flat-indirect.js b/deps/v8/test/mjsunit/harmony/string-iswellformed-flat-indirect.js
new file mode 100644
index 0000000000..282944f821
--- /dev/null
+++ b/deps/v8/test/mjsunit/harmony/string-iswellformed-flat-indirect.js
@@ -0,0 +1,35 @@
+// Copyright 2022 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-string-is-well-formed
+
+(function TestSliced() {
+ // toString on the function returns a sliced string on the script source,
+ // which is 2-byte.
+ const fooString = foo.toString();
+ assertTrue(fooString.isWellFormed());
+ assertEquals(fooString, fooString.toWellFormed());
+})();
+
+function TestCons(a, b) {
+ const s = a + b;
+ // Flatten it before calling isWellFormed to get a flat cons.
+ s.endsWith('a');
+ assertTrue(s.isWellFormed());
+ assertEquals(s, s.toWellFormed());
+}
+TestCons('�', '�');
+
+function TestThin(a, b) {
+ const s = a + b;
+ const o = {};
+ o[s];
+ assertTrue(s.isWellFormed());
+ assertEquals(s, s.toWellFormed());
+}
+TestThin('�', '�');
+
+function foo() {}
+// Make this source file 2-byte.
+'�';