a934b72483
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}
36 lines
917 B
JavaScript
36 lines
917 B
JavaScript
// 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>';
|