// 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.

// Flags: --allow-natives-syntax --expose-externalize-string

// Calculate string so that it isn't internalized.
var string = ((a,b) => { return a + b; })('foo', 'bar');

// Now externalize it.
externalizeString(string, false);

// Then internalize it by using it as a keyed property name
// to turn it a thin string.
var obj = {};
obj[string];

// Perform a string concatination.
assertEquals('"' + string + '"', '"foobar"');