18 lines
695 B
JavaScript
18 lines
695 B
JavaScript
|
// 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));
|