| // 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"); |
| } |