// Copyright 2018 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 | |
// Create transtion => 'get a'. | |
let o = {}; | |
Object.defineProperty(o, 'a', { | |
enumerable: true, | |
configurable: true, | |
get: function() { return 7 } | |
}); | |
function spread(o) { | |
let result = { ...o }; | |
%HeapObjectVerify(result); | |
return result; | |
} | |
for (let i = 0; i<3; i++) { | |
spread([]); | |
// Use different transition => 'a'. | |
spread({ a:0 }); | |
spread("abc"); | |
} |