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

Side by Side Diff: src/js/regexp.js

Issue 1739233002: [runtime] Remove obsolete %Apply and %TailCall runtime entries. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 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 | « src/js/prologue.js ('k') | src/runtime/runtime.h » ('j') | no next file with comments »
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 (function(global, utils) { 5 (function(global, utils) {
6 6
7 %CheckIsBootstrapping(); 7 %CheckIsBootstrapping();
8 8
9 // ------------------------------------------------------------------- 9 // -------------------------------------------------------------------
10 // Imports 10 // Imports
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 res[i] = TO_STRING(func_result); 451 res[i] = TO_STRING(func_result);
452 match_start += elem.length; 452 match_start += elem.length;
453 } 453 }
454 } 454 }
455 } else { 455 } else {
456 for (var i = 0; i < len; i++) { 456 for (var i = 0; i < len; i++) {
457 var elem = res[i]; 457 var elem = res[i];
458 if (!%_IsSmi(elem)) { 458 if (!%_IsSmi(elem)) {
459 // elem must be an Array. 459 // elem must be an Array.
460 // Use the apply argument as backing for global RegExp properties. 460 // Use the apply argument as backing for global RegExp properties.
461 var func_result = %Apply(replace, UNDEFINED, elem, 0, elem.length); 461 var func_result = %reflect_apply(replace, UNDEFINED, elem);
462 // Overwrite the i'th element in the results with the string we got 462 // Overwrite the i'th element in the results with the string we got
463 // back from the callback function. 463 // back from the callback function.
464 res[i] = TO_STRING(func_result); 464 res[i] = TO_STRING(func_result);
465 } 465 }
466 } 466 }
467 } 467 }
468 var result = %StringBuilderConcat(res, len, subject); 468 var result = %StringBuilderConcat(res, len, subject);
469 resultArray.length = 0; 469 resultArray.length = 0;
470 reusableReplaceArray = resultArray; 470 reusableReplaceArray = resultArray;
471 return result; 471 return result;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 // Don't call directly to avoid exposing the built-in global object. 505 // Don't call directly to avoid exposing the built-in global object.
506 replacement = replace(s, index, subject); 506 replacement = replace(s, index, subject);
507 } else { 507 } else {
508 var parameters = new InternalArray(m + 2); 508 var parameters = new InternalArray(m + 2);
509 for (var j = 0; j < m; j++) { 509 for (var j = 0; j < m; j++) {
510 parameters[j] = CaptureString(subject, matchInfo, j); 510 parameters[j] = CaptureString(subject, matchInfo, j);
511 } 511 }
512 parameters[j] = index; 512 parameters[j] = index;
513 parameters[j + 1] = subject; 513 parameters[j + 1] = subject;
514 514
515 replacement = %Apply(replace, UNDEFINED, parameters, 0, j + 2); 515 replacement = %reflect_apply(replace, UNDEFINED, parameters);
516 } 516 }
517 517
518 result += replacement; // The add method converts to string if necessary. 518 result += replacement; // The add method converts to string if necessary.
519 // Can't use matchInfo any more from here, since the function could 519 // Can't use matchInfo any more from here, since the function could
520 // overwrite it. 520 // overwrite it.
521 return result + %_SubString(subject, endOfMatch, subject.length); 521 return result + %_SubString(subject, endOfMatch, subject.length);
522 } 522 }
523 523
524 524
525 function RegExpReplace(string, replace) { 525 function RegExpReplace(string, replace) {
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 // Exports 772 // Exports
773 773
774 utils.Export(function(to) { 774 utils.Export(function(to) {
775 to.RegExpExec = DoRegExpExec; 775 to.RegExpExec = DoRegExpExec;
776 to.RegExpExecNoTests = RegExpExecNoTests; 776 to.RegExpExecNoTests = RegExpExecNoTests;
777 to.RegExpLastMatchInfo = RegExpLastMatchInfo; 777 to.RegExpLastMatchInfo = RegExpLastMatchInfo;
778 to.RegExpTest = RegExpTest; 778 to.RegExpTest = RegExpTest;
779 }); 779 });
780 780
781 }) 781 })
OLDNEW
« no previous file with comments | « src/js/prologue.js ('k') | src/runtime/runtime.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698