25 lines
789 B
JavaScript
25 lines
789 B
JavaScript
|
// Copyright 2012 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-gc --allow-natives-syntax --verify-heap
|
||
|
|
||
|
function foo() {
|
||
|
// The bytecode should have an ObjectBoilerplateDescription where the value is
|
||
|
// not necessarily an internalized string.
|
||
|
return {value: "abc" + "def"};
|
||
|
}
|
||
|
|
||
|
// Make sure "abcdef" already exists as an internalized string.
|
||
|
%InternalizeString("abcdef");
|
||
|
|
||
|
// Get the string out of the object, which should be the same string that is in
|
||
|
// the ObjectBoilerplateDescription.
|
||
|
let string = foo().value;
|
||
|
|
||
|
// Internalizing this string should now create a ThinString.
|
||
|
%InternalizeString(string);
|
||
|
|
||
|
// Heap verification should be ok with this.
|
||
|
gc();
|