| // Copyright 2019 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 |
| |
| function f(o) { |
| // The spread after the CloneObject IC shouldn't crash when trying to write a |
| // double value to a field created by CloneObject. |
| return {...o, ...{a:1.4}}; |
| } |
| |
| %EnsureFeedbackVectorForFunction(f); |
| |
| var o = {}; |
| // Train the CloneObject IC with a Double field. |
| o.a = 1.5; |
| f(o); |
| f(o); |
| f(o); |
| // Change the source map to have a Tagged field. |
| o.a = undefined; |
| f(o); |