OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 "use strict"; | 5 "use strict"; |
6 | 6 |
7 // This file relies on the fact that the following declarations have been made | 7 // This file relies on the fact that the following declarations have been made |
8 // in runtime.js: | 8 // in runtime.js: |
9 // var $Array = global.Array; | 9 // var $Array = global.Array; |
10 | 10 |
(...skipping 1138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1149 if (IS_NULL_OR_UNDEFINED(receiver)) { | 1149 if (IS_NULL_OR_UNDEFINED(receiver)) { |
1150 receiver = %GetDefaultReceiver(f) || receiver; | 1150 receiver = %GetDefaultReceiver(f) || receiver; |
1151 } else { | 1151 } else { |
1152 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); | 1152 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); |
1153 } | 1153 } |
1154 | 1154 |
1155 var result = new $Array(); | 1155 var result = new $Array(); |
1156 var accumulator = new InternalArray(); | 1156 var accumulator = new InternalArray(); |
1157 var accumulator_length = 0; | 1157 var accumulator_length = 0; |
1158 var is_array = IS_ARRAY(array); | 1158 var is_array = IS_ARRAY(array); |
1159 var stepping = DEBUG_IS_ACTIVE && %DebugCallbackSupportsStepping(f); | 1159 var stepping = DEBUG_IS_STEPPING(); |
1160 for (var i = 0; i < length; i++) { | 1160 for (var i = 0; i < length; i++) { |
1161 if (HAS_INDEX(array, i, is_array)) { | 1161 if (HAS_INDEX(array, i, is_array)) { |
1162 var element = array[i]; | 1162 var element = array[i]; |
1163 // Prepare break slots for debugger step in. | 1163 // Prepare break slots for debugger step in. |
1164 if (stepping) %DebugPrepareStepInIfStepping(f); | 1164 if (stepping) %DebugPrepareStepInIfStepping(f); |
1165 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; | 1165 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; |
1166 if (%_CallFunction(new_receiver, element, i, array, f)) { | 1166 if (%_CallFunction(new_receiver, element, i, array, f)) { |
1167 accumulator[accumulator_length++] = element; | 1167 accumulator[accumulator_length++] = element; |
1168 } | 1168 } |
1169 } | 1169 } |
(...skipping 15 matching lines...) Expand all Loading... |
1185 throw MakeTypeError('called_non_callable', [ f ]); | 1185 throw MakeTypeError('called_non_callable', [ f ]); |
1186 } | 1186 } |
1187 var needs_wrapper = false; | 1187 var needs_wrapper = false; |
1188 if (IS_NULL_OR_UNDEFINED(receiver)) { | 1188 if (IS_NULL_OR_UNDEFINED(receiver)) { |
1189 receiver = %GetDefaultReceiver(f) || receiver; | 1189 receiver = %GetDefaultReceiver(f) || receiver; |
1190 } else { | 1190 } else { |
1191 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); | 1191 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); |
1192 } | 1192 } |
1193 | 1193 |
1194 var is_array = IS_ARRAY(array); | 1194 var is_array = IS_ARRAY(array); |
1195 var stepping = DEBUG_IS_ACTIVE && %DebugCallbackSupportsStepping(f); | 1195 var stepping = DEBUG_IS_STEPPING(); |
1196 for (var i = 0; i < length; i++) { | 1196 for (var i = 0; i < length; i++) { |
1197 if (HAS_INDEX(array, i, is_array)) { | 1197 if (HAS_INDEX(array, i, is_array)) { |
1198 var element = array[i]; | 1198 var element = array[i]; |
1199 // Prepare break slots for debugger step in. | 1199 // Prepare break slots for debugger step in. |
1200 if (stepping) %DebugPrepareStepInIfStepping(f); | 1200 if (stepping) %DebugPrepareStepInIfStepping(f); |
1201 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; | 1201 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; |
1202 %_CallFunction(new_receiver, element, i, array, f); | 1202 %_CallFunction(new_receiver, element, i, array, f); |
1203 } | 1203 } |
1204 } | 1204 } |
1205 } | 1205 } |
(...skipping 13 matching lines...) Expand all Loading... |
1219 throw MakeTypeError('called_non_callable', [ f ]); | 1219 throw MakeTypeError('called_non_callable', [ f ]); |
1220 } | 1220 } |
1221 var needs_wrapper = false; | 1221 var needs_wrapper = false; |
1222 if (IS_NULL_OR_UNDEFINED(receiver)) { | 1222 if (IS_NULL_OR_UNDEFINED(receiver)) { |
1223 receiver = %GetDefaultReceiver(f) || receiver; | 1223 receiver = %GetDefaultReceiver(f) || receiver; |
1224 } else { | 1224 } else { |
1225 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); | 1225 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); |
1226 } | 1226 } |
1227 | 1227 |
1228 var is_array = IS_ARRAY(array); | 1228 var is_array = IS_ARRAY(array); |
1229 var stepping = DEBUG_IS_ACTIVE && %DebugCallbackSupportsStepping(f); | 1229 var stepping = DEBUG_IS_STEPPING(); |
1230 for (var i = 0; i < length; i++) { | 1230 for (var i = 0; i < length; i++) { |
1231 if (HAS_INDEX(array, i, is_array)) { | 1231 if (HAS_INDEX(array, i, is_array)) { |
1232 var element = array[i]; | 1232 var element = array[i]; |
1233 // Prepare break slots for debugger step in. | 1233 // Prepare break slots for debugger step in. |
1234 if (stepping) %DebugPrepareStepInIfStepping(f); | 1234 if (stepping) %DebugPrepareStepInIfStepping(f); |
1235 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; | 1235 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; |
1236 if (%_CallFunction(new_receiver, element, i, array, f)) return true; | 1236 if (%_CallFunction(new_receiver, element, i, array, f)) return true; |
1237 } | 1237 } |
1238 } | 1238 } |
1239 return false; | 1239 return false; |
(...skipping 12 matching lines...) Expand all Loading... |
1252 throw MakeTypeError('called_non_callable', [ f ]); | 1252 throw MakeTypeError('called_non_callable', [ f ]); |
1253 } | 1253 } |
1254 var needs_wrapper = false; | 1254 var needs_wrapper = false; |
1255 if (IS_NULL_OR_UNDEFINED(receiver)) { | 1255 if (IS_NULL_OR_UNDEFINED(receiver)) { |
1256 receiver = %GetDefaultReceiver(f) || receiver; | 1256 receiver = %GetDefaultReceiver(f) || receiver; |
1257 } else { | 1257 } else { |
1258 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); | 1258 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); |
1259 } | 1259 } |
1260 | 1260 |
1261 var is_array = IS_ARRAY(array); | 1261 var is_array = IS_ARRAY(array); |
1262 var stepping = DEBUG_IS_ACTIVE && %DebugCallbackSupportsStepping(f); | 1262 var stepping = DEBUG_IS_STEPPING(); |
1263 for (var i = 0; i < length; i++) { | 1263 for (var i = 0; i < length; i++) { |
1264 if (HAS_INDEX(array, i, is_array)) { | 1264 if (HAS_INDEX(array, i, is_array)) { |
1265 var element = array[i]; | 1265 var element = array[i]; |
1266 // Prepare break slots for debugger step in. | 1266 // Prepare break slots for debugger step in. |
1267 if (stepping) %DebugPrepareStepInIfStepping(f); | 1267 if (stepping) %DebugPrepareStepInIfStepping(f); |
1268 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; | 1268 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; |
1269 if (!%_CallFunction(new_receiver, element, i, array, f)) return false; | 1269 if (!%_CallFunction(new_receiver, element, i, array, f)) return false; |
1270 } | 1270 } |
1271 } | 1271 } |
1272 return true; | 1272 return true; |
(...skipping 13 matching lines...) Expand all Loading... |
1286 var needs_wrapper = false; | 1286 var needs_wrapper = false; |
1287 if (IS_NULL_OR_UNDEFINED(receiver)) { | 1287 if (IS_NULL_OR_UNDEFINED(receiver)) { |
1288 receiver = %GetDefaultReceiver(f) || receiver; | 1288 receiver = %GetDefaultReceiver(f) || receiver; |
1289 } else { | 1289 } else { |
1290 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); | 1290 needs_wrapper = SHOULD_CREATE_WRAPPER(f, receiver); |
1291 } | 1291 } |
1292 | 1292 |
1293 var result = new $Array(); | 1293 var result = new $Array(); |
1294 var accumulator = new InternalArray(length); | 1294 var accumulator = new InternalArray(length); |
1295 var is_array = IS_ARRAY(array); | 1295 var is_array = IS_ARRAY(array); |
1296 var stepping = DEBUG_IS_ACTIVE && %DebugCallbackSupportsStepping(f); | 1296 var stepping = DEBUG_IS_STEPPING(); |
1297 for (var i = 0; i < length; i++) { | 1297 for (var i = 0; i < length; i++) { |
1298 if (HAS_INDEX(array, i, is_array)) { | 1298 if (HAS_INDEX(array, i, is_array)) { |
1299 var element = array[i]; | 1299 var element = array[i]; |
1300 // Prepare break slots for debugger step in. | 1300 // Prepare break slots for debugger step in. |
1301 if (stepping) %DebugPrepareStepInIfStepping(f); | 1301 if (stepping) %DebugPrepareStepInIfStepping(f); |
1302 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; | 1302 var new_receiver = needs_wrapper ? ToObject(receiver) : receiver; |
1303 accumulator[i] = %_CallFunction(new_receiver, element, i, array, f); | 1303 accumulator[i] = %_CallFunction(new_receiver, element, i, array, f); |
1304 } | 1304 } |
1305 } | 1305 } |
1306 %MoveArrayContents(accumulator, result); | 1306 %MoveArrayContents(accumulator, result); |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1436 for (; i < length; i++) { | 1436 for (; i < length; i++) { |
1437 if (HAS_INDEX(array, i, is_array)) { | 1437 if (HAS_INDEX(array, i, is_array)) { |
1438 current = array[i++]; | 1438 current = array[i++]; |
1439 break find_initial; | 1439 break find_initial; |
1440 } | 1440 } |
1441 } | 1441 } |
1442 throw MakeTypeError('reduce_no_initial', []); | 1442 throw MakeTypeError('reduce_no_initial', []); |
1443 } | 1443 } |
1444 | 1444 |
1445 var receiver = %GetDefaultReceiver(callback); | 1445 var receiver = %GetDefaultReceiver(callback); |
1446 var stepping = DEBUG_IS_ACTIVE && %DebugCallbackSupportsStepping(callback); | 1446 var stepping = DEBUG_IS_STEPPING(); |
1447 for (; i < length; i++) { | 1447 for (; i < length; i++) { |
1448 if (HAS_INDEX(array, i, is_array)) { | 1448 if (HAS_INDEX(array, i, is_array)) { |
1449 var element = array[i]; | 1449 var element = array[i]; |
1450 // Prepare break slots for debugger step in. | 1450 // Prepare break slots for debugger step in. |
1451 if (stepping) %DebugPrepareStepInIfStepping(callback); | 1451 if (stepping) %DebugPrepareStepInIfStepping(callback); |
1452 current = %_CallFunction(receiver, current, element, i, array, callback); | 1452 current = %_CallFunction(receiver, current, element, i, array, callback); |
1453 } | 1453 } |
1454 } | 1454 } |
1455 return current; | 1455 return current; |
1456 } | 1456 } |
(...skipping 16 matching lines...) Expand all Loading... |
1473 for (; i >= 0; i--) { | 1473 for (; i >= 0; i--) { |
1474 if (HAS_INDEX(array, i, is_array)) { | 1474 if (HAS_INDEX(array, i, is_array)) { |
1475 current = array[i--]; | 1475 current = array[i--]; |
1476 break find_initial; | 1476 break find_initial; |
1477 } | 1477 } |
1478 } | 1478 } |
1479 throw MakeTypeError('reduce_no_initial', []); | 1479 throw MakeTypeError('reduce_no_initial', []); |
1480 } | 1480 } |
1481 | 1481 |
1482 var receiver = %GetDefaultReceiver(callback); | 1482 var receiver = %GetDefaultReceiver(callback); |
1483 var stepping = DEBUG_IS_ACTIVE && %DebugCallbackSupportsStepping(callback); | 1483 var stepping = DEBUG_IS_STEPPING(); |
1484 for (; i >= 0; i--) { | 1484 for (; i >= 0; i--) { |
1485 if (HAS_INDEX(array, i, is_array)) { | 1485 if (HAS_INDEX(array, i, is_array)) { |
1486 var element = array[i]; | 1486 var element = array[i]; |
1487 // Prepare break slots for debugger step in. | 1487 // Prepare break slots for debugger step in. |
1488 if (stepping) %DebugPrepareStepInIfStepping(callback); | 1488 if (stepping) %DebugPrepareStepInIfStepping(callback); |
1489 current = %_CallFunction(receiver, current, element, i, array, callback); | 1489 current = %_CallFunction(receiver, current, element, i, array, callback); |
1490 } | 1490 } |
1491 } | 1491 } |
1492 return current; | 1492 return current; |
1493 } | 1493 } |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1581 )); | 1581 )); |
1582 | 1582 |
1583 SetUpLockedPrototype(InternalPackedArray, $Array(), $Array( | 1583 SetUpLockedPrototype(InternalPackedArray, $Array(), $Array( |
1584 "join", getFunction("join", ArrayJoin), | 1584 "join", getFunction("join", ArrayJoin), |
1585 "pop", getFunction("pop", ArrayPop), | 1585 "pop", getFunction("pop", ArrayPop), |
1586 "push", getFunction("push", ArrayPush) | 1586 "push", getFunction("push", ArrayPush) |
1587 )); | 1587 )); |
1588 } | 1588 } |
1589 | 1589 |
1590 SetUpArray(); | 1590 SetUpArray(); |
OLD | NEW |