- 05 Feb, 2019 1 commit
-
-
Ujjwal Sharma authored
Port String.prototype.startsWith from a CPP builtin to a Torque builtin. Spec: https://tc39.github.io/ecma262/#sec-string.prototype.startswith Bug: v8:8400 Change-Id: I51aff0b3a4126c17ab4f89763019fd7e4ba665d9 Reviewed-on: https://chromium-review.googlesource.com/c/1361340 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#59355}
-
- 06 Dec, 2018 1 commit
-
-
Jakob Gruber authored
A spec change to simplify IsRegExp has been proposed: https://github.com/tc39/ecma262/pull/1318 This CL adds use counters for cases in which the spec change would alter behavior: 1. o[@@match] is trueish but o is not a JSRegExp 2. o[@@match] is falseish (but not undefined) and o is a JSRegExp This is the V8 side of required changes. The Chromium-side CL: https://crrev.com/c/1360730 Drive-by: TNodeify IsRegExp. Tbr: yangguo@chromium.org Bug: v8:8522 Change-Id: I3766e02977f256a80d0e59472d3bafa9c692af9e Reviewed-on: https://chromium-review.googlesource.com/c/1360630Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Mathias Bynens <mathias@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58064}
-
- 14 Nov, 2018 2 commits
-
-
Jaroslav Sevcik authored
This updates fast path checks in string's search/match/replace/split/matchAll methods. Bug: v8:8361 Change-Id: I0377aff21e380d6c718e7471f8964e10c030281b Reviewed-on: https://chromium-review.googlesource.com/c/1333668 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57509}
-
peterwmwong authored
[builtins] Adjust String.prototype.matchAll as per spec changes (https://github.com/tc39/proposal-string-matchall/pull/38) - Removes IsRegExp check and special handling when false - Removes MatchAllIterator - Extracts previously inlined CreateRegExpStringIterator - Update comments to match spec text and numbering Bug: v8:6890 Change-Id: Ie81757a499acc77910f029835fb042e70d86d83d Reviewed-on: https://chromium-review.googlesource.com/c/1317830 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57488}
-
- 29 Oct, 2018 1 commit
-
-
Jakob Gruber authored
While not strictly necessary, this is consistent with how SlowFlagGetter behaves. It adds an additional shift operation (which we could fold into the smi untagging if needed). Drive-by: Typify flag accessors. Bug: chromium:899464 Change-Id: Ib154d626e522ed723e2c19b1ab7f68560ac414bc Reviewed-on: https://chromium-review.googlesource.com/c/1304315Reviewed-by: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57063}
-
- 11 Oct, 2018 1 commit
-
-
Jakob Kummerow authored
The primary purpose of this is to untangle a circular dependency objects.h -> handles.h -> objects.h. Most compilation units only need message-template.h, without the rest of messages.h. Bonus: change the enum to an enum class for improved type safety. Bug: v8:3770 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I8102c55197a450811de2588a68a08e7f99ea6b9e Reviewed-on: https://chromium-review.googlesource.com/c/1272193 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#56583}
-
- 13 Aug, 2018 1 commit
-
-
jgruber authored
Bug: v8:8015 Change-Id: Ie8265458ace8c0d12ca9d3f58afd981f1f30cd1e Reviewed-on: https://chromium-review.googlesource.com/1170826 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55087}
-
- 06 Aug, 2018 1 commit
-
-
jgruber authored
And related call sites. Drive-by: add IntPtrZero() and SmiZero() helpers. Bug: v8:8015 Change-Id: I83195cf2da858f8d35f25c9a1aa5c40c81df78b9 Reviewed-on: https://chromium-review.googlesource.com/1162169 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#54918}
-
- 23 Jul, 2018 1 commit
-
-
jgruber authored
Bug: v8:7754 Change-Id: Ie58571682f4dff76108180e8a707159997f7abfa Reviewed-on: https://chromium-review.googlesource.com/1145277Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54606}
-
- 11 Jun, 2018 1 commit
-
-
Sigurd Schneider authored
This CL adds a TFS stub for RegExp#test and moves several checks to the JSCallReducer. In particular, the JSCallReducer checks that - property {exec} on the regexp is still the original exec - property {lastIndex} on the regexp is a non-negative smi The stub does not repeat these checks in release mode. This effectively means that if the regexp is known, we can perform these checks at compile time, and get away with a map dependency. Bug: v8:7779, v8:7200 Change-Id: I0c6d711d4f1d2f6f325a1c02855b0e1b62e014c8 Reviewed-on: https://chromium-review.googlesource.com/1074654 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53630}
-
- 17 May, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:7754 Change-Id: Id22020984e10bd2ddb22119c50b490419c897174 Reviewed-on: https://chromium-review.googlesource.com/1062272Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#53232}
-
- 16 May, 2018 1 commit
-
-
jgruber authored
It is possible for user code to modify fast regexp result objects before they are used e.g. by RegExp.p.match, so we may not make any assumptions about their contents. The only exception is when the RegExp itself is fast. Bug: chromium:843022 Change-Id: I14eafbdfb2b2ced609da1391b57c73cbe167f7fb Reviewed-on: https://chromium-review.googlesource.com/1061455Reviewed-by: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53210}
-
- 12 Apr, 2018 1 commit
-
-
peterwmwong authored
Add fast paths when RegExp and RegExp result are fast wherever possible. As shown below, this CL improves the performance of calling S.p.matchAll and iterating over matches. Before: StringMatchAllBuiltinRegExpIteratorCreation-Strings(Score): 5002 StringMatchAllBuiltinStringIteratorCreation-Strings(Score): 13798 StringMatchAllBuiltinString-Strings(Score): 197 StringMatchAllManualString-Strings(Score): 454 StringMatchAllBuiltinRegExp-Strings(Score): 193 StringMatchAllManualRegExp-Strings(Score): 453 StringMatchAllBuiltinZeroWidth-Strings(Score): 97.2 StringMatchAllBuiltinZeroWidthUnicode-Strings(Score): 95.9 After: StringMatchAllBuiltinRegExpIteratorCreation-Strings(Score): 15437 StringMatchAllBuiltinStringIteratorCreation-Strings(Score): 16708 StringMatchAllBuiltinString-Strings(Score): 392 StringMatchAllManualString-Strings(Score): 452 StringMatchAllBuiltinRegExp-Strings(Score): 394 StringMatchAllManualRegExp-Strings(Score): 484 StringMatchAllBuiltinZeroWidth-Strings(Score): 409 StringMatchAllBuiltinZeroWidthUnicode-Strings(Score): 413 Bug: v8:6890 Change-Id: I6fcc1003a471314cf412aac456d42286b2926810 Reviewed-on: https://chromium-review.googlesource.com/1005400 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52581}
-
- 05 Apr, 2018 1 commit
-
-
peterwmwong authored
Proposal repo: https://github.com/tc39/proposal-string-matchall - Add new builtins StringPrototypeMatchAll and RegExpPrototypeMatchAll - Add new object RegExpStringIterator Bug: v8:6890 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I9fad71900cf30e8632258c309df1c7a638ea4600 Reviewed-on: https://chromium-review.googlesource.com/981893 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52403}
-
- 23 Feb, 2018 1 commit
-
-
Georg Neis authored
E.g. SubString and StringAdd. Bug: v8:7310 Change-Id: I352044f88fe79c5b576c5423d6feae3bcb7d725a Reviewed-on: https://chromium-review.googlesource.com/934284Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#51504}
-
- 02 Feb, 2018 1 commit
-
-
jgruber authored
This check verifies that all .h files in the src/ directory have an include guard of the form #ifndef V8_PATH_TO_FILE_H_ #define V8_PATH_TO_FILE_H_ // ... #endif // V8_PATH_TO_FILE_H_ The check can be skipped with a magic comment: // PRESUBMIT_INTENTIONALLY_MISSING_INCLUDE_GUARD Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I0a7b96abec289ad60f64ba8418f1892a6969596d Reviewed-on: https://chromium-review.googlesource.com/897487Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51079}
-
- 17 Nov, 2017 1 commit
-
-
Adam Klein authored
Both of these features were shipped in Chrome 62. Bug: v8:4545, v8:6172 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Ie00dcbeded7517a15696d4a78fcfbbf162919923 Reviewed-on: https://chromium-review.googlesource.com/775601Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49453}
-
- 23 Aug, 2017 1 commit
-
-
jgruber authored
This is a simple move of CSA::AllocateRegExpResult to RegExpBuiltinsAssembler. There's no reason for this method to be in CSA, and this way we save a bit of binary size since code in builtins-*-gen is not shipped. Bug: v8:6741 Change-Id: I89507a0bfa4e0e922d92b9fcd0604ce86efea293 Reviewed-on: https://chromium-review.googlesource.com/626078Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47532}
-
- 21 Apr, 2017 5 commits
-
-
jgruber authored
If we avoid throwing a stack overflow exception from Irregexp code during direct calls, there is no need to construct exit frames before the Irregexp call anymore. As that was the last remaining blocker, we can now implement the entire stub in CSA. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2752143003 Cr-Original-Original-Commit-Position: refs/heads/master@{#44770} Committed: https://chromium.googlesource.com/v8/v8/+/74f2497eae068f85da26904d8c451376c77957bf Review-Url: https://codereview.chromium.org/2752143003 Cr-Original-Commit-Position: refs/heads/master@{#44775} Committed: https://chromium.googlesource.com/v8/v8/+/9c0832eb1aceba625a2443a31d51bcaf550c575a Review-Url: https://codereview.chromium.org/2752143003 Cr-Commit-Position: refs/heads/master@{#44779}
-
jgruber authored
Revert of [regexp] Remove remainder of native RegExpExecStub (patchset #10 id:180001 of https://codereview.chromium.org/2752143003/ ) Reason for revert: More failures on ports: https://build.chromium.org/p/client.v8.ports/builders/V8%20Android%20Arm64%20-%20builder/builds/9123/steps/compile/logs/stdio https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/8966/steps/compile/logs/stdio Original issue's description: > [regexp] Remove remainder of native RegExpExecStub > > If we avoid throwing a stack overflow exception from Irregexp code during > direct calls, there is no need to construct exit frames before the Irregexp > call anymore. As that was the last remaining blocker, we can now implement the > entire stub in CSA. > > BUG=v8:5339 > > Review-Url: https://codereview.chromium.org/2752143003 > Cr-Original-Commit-Position: refs/heads/master@{#44770} > Committed: https://chromium.googlesource.com/v8/v8/+/74f2497eae068f85da26904d8c451376c77957bf > Review-Url: https://codereview.chromium.org/2752143003 > Cr-Commit-Position: refs/heads/master@{#44775} > Committed: https://chromium.googlesource.com/v8/v8/+/9c0832eb1aceba625a2443a31d51bcaf550c575a TBR=ishell@chromium.org,mstarzinger@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5339 Review-Url: https://codereview.chromium.org/2832193002 Cr-Commit-Position: refs/heads/master@{#44776}
-
jgruber authored
If we avoid throwing a stack overflow exception from Irregexp code during direct calls, there is no need to construct exit frames before the Irregexp call anymore. As that was the last remaining blocker, we can now implement the entire stub in CSA. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2752143003 Cr-Original-Commit-Position: refs/heads/master@{#44770} Committed: https://chromium.googlesource.com/v8/v8/+/74f2497eae068f85da26904d8c451376c77957bf Review-Url: https://codereview.chromium.org/2752143003 Cr-Commit-Position: refs/heads/master@{#44775}
-
machenbach authored
Revert of [regexp] Remove remainder of native RegExpExecStub (patchset #8 id:140001 of https://codereview.chromium.org/2752143003/ ) Reason for revert: https://build.chromium.org/p/client.v8.ports/builders/V8%20Android%20Arm64%20-%20builder/builds/9118 Original issue's description: > [regexp] Remove remainder of native RegExpExecStub > > If we avoid throwing a stack overflow exception from Irregexp code during > direct calls, there is no need to construct exit frames before the Irregexp > call anymore. As that was the last remaining blocker, we can now implement the > entire stub in CSA. > > BUG=v8:5339 > > Review-Url: https://codereview.chromium.org/2752143003 > Cr-Commit-Position: refs/heads/master@{#44770} > Committed: https://chromium.googlesource.com/v8/v8/+/74f2497eae068f85da26904d8c451376c77957bf TBR=ishell@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5339 Review-Url: https://codereview.chromium.org/2833083002 Cr-Commit-Position: refs/heads/master@{#44771}
-
jgruber authored
If we avoid throwing a stack overflow exception from Irregexp code during direct calls, there is no need to construct exit frames before the Irregexp call anymore. As that was the last remaining blocker, we can now implement the entire stub in CSA. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2752143003 Cr-Commit-Position: refs/heads/master@{#44770}
-
- 11 Apr, 2017 1 commit
-
-
jgruber authored
* Use BIND, VARIABLE macros everywhere. * Unify fast path check functions. * Asserts in CSA::StringCharCodeAt. BUG= Review-Url: https://codereview.chromium.org/2811063003 Cr-Commit-Position: refs/heads/master@{#44553}
-
- 10 Apr, 2017 1 commit
-
-
jgruber authored
Loading the map, performing a side-effect, and then using the stored pointer for the fast-path check is another antipattern that can lead to unintended shapes on the fast path. BUG=chromium:709029 Review-Url: https://codereview.chromium.org/2807153002 Cr-Commit-Position: refs/heads/master@{#44528}
-
- 06 Apr, 2017 3 commits
-
-
jgruber authored
This fixes behavior for HeapNumber {index} arguments passed to AdvanceStringIndex. Previously, we'd blindly treat {index} as a Smi. Passing a HeapNumber instead would result in a Smi addition on the tagged HeapNumber pointer. BUG=chromium:709015 Review-Url: https://codereview.chromium.org/2798933003 Cr-Commit-Position: refs/heads/master@{#44458}
-
jgruber authored
Review-Url: https://codereview.chromium.org/2799663003 Cr-Commit-Position: refs/heads/master@{#44450}
-
jgruber authored
BUG=v8:5437,chromium:708247 Review-Url: https://codereview.chromium.org/2797993002 Cr-Commit-Position: refs/heads/master@{#44428}
-
- 31 Mar, 2017 1 commit
-
-
jgruber authored
The dotAll flag changes behavior of the dot '.' character to match every possible single character instead of excluding certain line terminators. The implementation is staged behind --harmony-regexp-dotall. Spec proposal: https://github.com/mathiasbynens/es-regexp-dotall-flag BUG=v8:6172 Review-Url: https://codereview.chromium.org/2780173002 Cr-Commit-Position: refs/heads/master@{#44295}
-
- 21 Mar, 2017 1 commit
-
-
Igor Sheludko authored
Second bulk of changes. BUG=v8:6116 Change-Id: I6297c4e3e1c0230a96dc6197691a54c07cc61c88 Reviewed-on: https://chromium-review.googlesource.com/457320 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#43995}
-
- 16 Mar, 2017 3 commits
-
-
jkummerow authored
This is in preparation for linking the former only into mksnapshot. Just shuffling code around, no changes in functionality. BUG=v8:6055 Review-Url: https://codereview.chromium.org/2752143004 Cr-Commit-Position: refs/heads/master@{#43858}
-
jgruber authored
This unifies several of the places in CSA that convert various string kinds (cons, thin, sliced) to direct strings (sequential, external). A couple of spots remain with duplicate code, but most of these are more difficult to unify due to specific optimizations. BUG= Review-Url: https://codereview.chromium.org/2744263002 Cr-Commit-Position: refs/heads/master@{#43848}
-
jgruber authored
This moves most of the logic contained in RegExpExecStub to CSA. Benefits are mostly easier readability and hackability, and removal of a large chunk of platform-specific assembly. Exit frame construction and the final call remain in RegExpExecStub. BUG=v8:5339,v8:592 Review-Url: https://codereview.chromium.org/2738413002 Cr-Commit-Position: refs/heads/master@{#43844}
-
- 03 Feb, 2017 1 commit
-
-
jgruber authored
This adds helper stubs for RegExp split and replace operations, called directly by both RegExpPrototype{Replace,Split} and StringPrototype{Replace,Split}. BUG= Review-Url: https://codereview.chromium.org/2668703002 Cr-Commit-Position: refs/heads/master@{#42919}
-
- 02 Feb, 2017 3 commits
-
-
jgruber authored
BUG= Review-Url: https://codereview.chromium.org/2663803002 Cr-Original-Commit-Position: refs/heads/master@{#42881} Committed: https://chromium.googlesource.com/v8/v8/+/65ad1e35d9a97c1126a55cc9d3014598fd224259 Review-Url: https://codereview.chromium.org/2663803002 Cr-Commit-Position: refs/heads/master@{#42883}
-
machenbach authored
Revert of [string] Migrate String.prototype.{split,replace} to TF (patchset #12 id:220001 of https://codereview.chromium.org/2663803002/ ) Reason for revert: Breaks win64 debug: https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/14967 Original issue's description: > [string] Migrate String.prototype.{split,replace} to TF > > BUG= > > Review-Url: https://codereview.chromium.org/2663803002 > Cr-Commit-Position: refs/heads/master@{#42881} > Committed: https://chromium.googlesource.com/v8/v8/+/65ad1e35d9a97c1126a55cc9d3014598fd224259 TBR=bmeurer@chromium.org,ishell@chromium.org,yangguo@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2671673003 Cr-Commit-Position: refs/heads/master@{#42882}
-
jgruber authored
BUG= Review-Url: https://codereview.chromium.org/2663803002 Cr-Commit-Position: refs/heads/master@{#42881}
-