| // 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. |
| |
| // Runtime_ObjectCloneIC_Slow() source argument must be a HeapObject handle, |
| // because undefined/null are allowed. |
| function spread(o) { return { ...o }; } |
| |
| // Transition to MEGAMORPHIC |
| assertEquals({}, spread(new function C1() {})); |
| assertEquals({}, spread(new function C2() {})); |
| assertEquals({}, spread(new function C3() {})); |
| assertEquals({}, spread(new function C4() {})); |
| assertEquals({}, spread(new function C5() {})); |
| |
| // Trigger Runtime_ObjectCloneIC_Slow() with a non-JSReceiver. |
| assertEquals({}, spread(undefined)); |