MCPcopy Index your code
hub / github.com/nodejs/node / test_wrapper

Function test_wrapper

deps/v8/test/mjsunit/elements-kind.js:104–171  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

102
103// Make sure the element kind transitions from smi when a non-smi is stored.
104function test_wrapper() {
105 var you = new Array();
106 assertKind(elements_kind.fast_smi_only, you);
107 for (var i = 0; i < 1337; i++) {
108 var val = i;
109 if (i == 1336) {
110 assertKind(elements_kind.fast_smi_only, you);
111 val = new Object();
112 }
113 you[i] = val;
114 }
115 assertKind(elements_kind.fast, you);
116
117 var temp = [];
118 // If we store beyond kMaxGap (1024) we should transition to slow elements.
119 temp[1024] = 0;
120 assertKind(elements_kind.dictionary, temp);
121
122 var fast_double_array = new Array(0xDECAF);
123 // If the gap is greater than 1024 (kMaxGap) we would transition the array
124 // to slow. So increment should be less than 1024.
125 for (var i = 0; i < 0xDECAF; i+=1023) {
126 fast_double_array[i] = i / 2;
127 }
128 assertKind(elements_kind.fast_double, fast_double_array);
129
130 assertKind(elements_kind.fixed_int8, new Int8Array(007));
131 assertKind(elements_kind.fixed_uint8, new Uint8Array(007));
132 assertKind(elements_kind.fixed_int16, new Int16Array(666));
133 assertKind(elements_kind.fixed_uint16, new Uint16Array(42));
134 assertKind(elements_kind.fixed_int32, new Int32Array(0xF));
135 assertKind(elements_kind.fixed_uint32, new Uint32Array(23));
136 assertKind(elements_kind.fixed_float16, new Float16Array(7));
137 assertKind(elements_kind.fixed_float32, new Float32Array(7));
138 assertKind(elements_kind.fixed_float64, new Float64Array(0));
139 assertKind(elements_kind.fixed_uint8_clamped, new Uint8ClampedArray(512));
140
141 var ab = new ArrayBuffer(128);
142 assertKind(elements_kind.fixed_int8, new Int8Array(ab));
143 assertKind(elements_kind.fixed_uint8, new Uint8Array(ab));
144 assertKind(elements_kind.fixed_int16, new Int16Array(ab));
145 assertKind(elements_kind.fixed_uint16, new Uint16Array(ab));
146 assertKind(elements_kind.fixed_int32, new Int32Array(ab));
147 assertKind(elements_kind.fixed_uint32, new Uint32Array(ab));
148 assertKind(elements_kind.fixed_float16, new Float16Array(ab));
149 assertKind(elements_kind.fixed_float32, new Float32Array(ab));
150 assertKind(elements_kind.fixed_float64, new Float64Array(ab));
151 assertKind(elements_kind.fixed_uint8_clamped, new Uint8ClampedArray(ab));
152
153 // Crankshaft support for smi-only array elements.
154 function monomorphic(array) {
155 assertKind(elements_kind.fast_smi_only, array);
156 for (var i = 0; i < 3; i++) {
157 array[i] = i + 10;
158 }
159 assertKind(elements_kind.fast_smi_only, array);
160 for (var i = 0; i < 3; i++) {
161 var a = array[i];

Callers 1

elements-kind.jsFile · 0.70

Calls 2

monomorphicFunction · 0.85
assertKindFunction · 0.70

Tested by

no test coverage detected