()
| 127 | |
| 128 | %PrepareFunctionForOptimization(test1); |
| 129 | function test1() { |
| 130 | // Test transition chain SMI->DOUBLE->FAST (crankshafted function will |
| 131 | // transition to FAST directly). |
| 132 | var smis = construct_smis(); |
| 133 | convert_mixed(smis, 1.5, elements_kind.fast_double); |
| 134 | |
| 135 | var doubles = construct_doubles(); |
| 136 | convert_mixed(doubles, "three", elements_kind.fast); |
| 137 | |
| 138 | convert_mixed(construct_smis(), "three", elements_kind.fast); |
| 139 | convert_mixed(construct_doubles(), "three", elements_kind.fast); |
| 140 | |
| 141 | if (%ICsAreEnabled()) { |
| 142 | // Test that allocation sites allocate correct elements kind initially based |
| 143 | // on previous transitions. |
| 144 | smis = construct_smis(); |
| 145 | doubles = construct_doubles(); |
| 146 | convert_mixed(smis, 1, elements_kind.fast); |
| 147 | convert_mixed(doubles, 1, elements_kind.fast); |
| 148 | assertTrue(%HaveSameMap(smis, doubles)); |
| 149 | } |
| 150 | } |
| 151 | |
| 152 | function clear_ic_state() { |
| 153 | %ClearFunctionFeedback(construct_smis); |
no test coverage detected