| // Copyright 2016 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: --no-inline-new |
| |
| function keyed_store(obj, key, value) { |
| obj[key] = value; |
| } |
| |
| function foo() { |
| obj = {}; |
| obj.smi = 1; |
| obj.dbl = 1.5; |
| obj.obj = {a:1}; |
| |
| // Transition keyed store IC to polymorphic. |
| keyed_store(obj, "smi", 100); |
| keyed_store(obj, "dbl", 100); |
| keyed_store(obj, "obj", 100); |
| |
| // Now call with a PACKED_SMI_ELEMENTS object. |
| var smi_array = [5, 1, 1]; |
| keyed_store(smi_array, 1, 6); |
| // Transition from PACKED_SMI_ELEMENTS to PACKED_DOUBLE_ELEMENTS. |
| keyed_store(smi_array, 2, 1.2); |
| } |
| |
| foo(); |