Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Side by Side Diff: src/array.js

Issue 1030673002: Make debugger step into bound callbacks passed to Array.forEach. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/collection.js » ('j') | src/runtime/runtime-debug.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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
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();
OLDNEW
« no previous file with comments | « no previous file | src/collection.js » ('j') | src/runtime/runtime-debug.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698