v8/test/mjsunit/harmony/string-iswellformed-flat-indirect.js
Shu-yu Guo a934b72483 [string-iswellformed] Fix isWellFormed for indirect strings
Bug: chromium:1403546, v8:13557
Change-Id: Ifb96207022eef451f10cdba92519e97e452d884e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4131800
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85083}
2023-01-03 19:31:31 +00:00

36 lines
917 B
JavaScript
Raw Blame History

// 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('<27>', '<27>');
function TestThin(a, b) {
const s = a + b;
const o = {};
o[s];
assertTrue(s.isWellFormed());
assertEquals(s, s.toWellFormed());
}
TestThin('<27>', '<27>');
function foo() {}
// Make this source file 2-byte.
'<27>';