- 06 Sep, 2022 1 commit
-
-
Patrick Thier authored
- Add v-flag and corresponding prototype getters. - Update RegExp builtins fuzzer to handle two-byte flags. - Update test262 status. Bug: v8:11935 Change-Id: If649ebfacf1f933f3ae5c770c2240470a8b460ee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3868952Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Linke <jgruber@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#83003}
-
- 29 Aug, 2022 1 commit
-
-
Junliang Yan authored
This is a reland of commit c060af4d Use LoadFullTagged function instead to avoid test failing with v8_enable_verify_csa=true. Original change's description: > Fix CSA_CHECK failure on BE > > The load for external reference should be a full pointer load > instead of tagged size. > > Change-Id: I3460a26abea5053ba6daa5c6ed908cb93431654a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3842348 > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Commit-Queue: Junliang Yan <junyan@redhat.com> > Cr-Commit-Position: refs/heads/main@{#82625} Change-Id: I85817634ce2de099a9fbd350defb57789cce9678 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3857442 Commit-Queue: Junliang Yan <junyan@redhat.com> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#82782}
-
- 23 Aug, 2022 1 commit
-
-
Jakob Linke authored
This reverts commit c060af4d. Reason for revert: Fails with `v8_enable_verify_csa = true`: ``` # Fatal error in ../../src/compiler/machine-graph-verifier.cc, line 821 # TypeError: node #1503:Word32Equal uses node #1501:Load[kRepWord64] which doesn't have a compressed, tagged, or int32 representation. # Current block: id:187 <= id:154 <= id:183 <= id:93 <= id:144 # # Specify option --csa-trap-on-node=RegExpExecInternal,1503 for debugging. ``` Original change's description: > Fix CSA_CHECK failure on BE > > The load for external reference should be a full pointer load > instead of tagged size. > > Change-Id: I3460a26abea5053ba6daa5c6ed908cb93431654a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3842348 > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Commit-Queue: Junliang Yan <junyan@redhat.com> > Cr-Commit-Position: refs/heads/main@{#82625} Change-Id: Iaf9d0432157cba8c585377d33083a798c62e516c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3848171 Auto-Submit: Jakob Linke <jgruber@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#82649}
-
- 22 Aug, 2022 1 commit
-
-
Junliang Yan authored
The load for external reference should be a full pointer load instead of tagged size. Change-Id: I3460a26abea5053ba6daa5c6ed908cb93431654a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3842348Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Junliang Yan <junyan@redhat.com> Cr-Commit-Position: refs/heads/main@{#82625}
-
- 13 May, 2022 1 commit
-
-
Clemens Backes authored
Now that we require C++17 support, we can just use the standard static_assert without message, instead of our STATIC_ASSERT macro. R=leszeks@chromium.org Bug: v8:12425 Change-Id: I1d4e39c310b533bcd3a4af33d027827e6c083afe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647353Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80524}
-
- 03 Nov, 2021 1 commit
-
-
Igor Sheludko authored
Bug: v8:11880 Change-Id: Ib0997ca8cedaf1065fc6803d5297c30621b49949 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3257714Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#77680}
-
- 01 Oct, 2021 1 commit
-
-
Toon Verwaest authored
By changing AllocationFlag from enum to enum class Bug: v8:12244, v8:12245 Change-Id: Ifdd04bb12026619f6422a98ee0890bd557f0e4e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3181536 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#77188}
-
- 30 Sep, 2021 1 commit
-
-
Marja Hölttä authored
It's confusing that we have CSA_CHECK and CSA_ASSERT and it's not clear from the names that the former works in release mode and the latter only in debug mode. Renaming CSA_ASSERT to CSA_DCHECK makes it clear what it does. So now we have CSA_CHECK and CSA_DCHECK and they're not confusing. This also renames assert() in Torque to dcheck(). Bug: v8:12244 Change-Id: I6f25d431ebc6eec7ebe326b6b8ad3a0ac5e9a108 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3190104Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#77160}
-
- 24 Sep, 2021 1 commit
-
-
Marja Hölttä authored
Bug: v8:12244, v8:12245 Change-Id: Icd54ac767542ec2344c34b8dde674b41079180af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3181525Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#77036}
-
- 23 Sep, 2021 1 commit
-
-
Jakob Gruber authored
The argument is no longer in use. Bug: v8:11382 Change-Id: I7febc7fe7ef17ae462c700f0dba3ca1beade3021 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173681 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#77017}
-
- 19 Aug, 2021 1 commit
-
-
Jakob Gruber authored
The JSRegExp heap object should not be the source of truth for regexp flags, which are also relevant in places that don't need or want to care about the heap object layout (e.g.: the regexp parser). Introduce RegExpFlags as a new source of truth, and base everything else on these flags. As a first change, remove the js-regexp.h dependency from the regexp parser. Other files in src/regexp/ should be updated in follow-up work. Change-Id: Id9a6706c7f09e93f743b08b647b211d0cb0b9c76 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3103306Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#76379}
-
- 22 Jul, 2021 1 commit
-
-
Shu-yu Guo authored
RegExp match indices have shipped since M90 Bug: v8:9548 Change-Id: I8bf54ce1a50b5079aad71140f75c979a09aae5bb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3042842 Auto-Submit: Shu-yu Guo <syg@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75848}
-
- 01 Jul, 2021 1 commit
-
-
Peter Kasting authored
There are still a few cases remaining that seem more controversial; I'll upload those separately. Bug: chromium:1066980 Change-Id: Iabbaf23f9bbe97781857c0c589f2b3db685dfdc2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2994804 Commit-Queue: Peter Kasting <pkasting@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#75494}
-
- 18 Jun, 2021 1 commit
-
-
Dan Elphick authored
The adding of base:: was mostly prepared using git grep and sed: git grep -l <pattern> | grep -v base/vector.h | \ xargs sed -i 's/\b<pattern>\b/base::<pattern>/ with lots of manual clean-ups due to the resulting v8::internal::base::Vectors. #includes were fixed using: git grep -l "src/utils/vector.h" | \ axargs sed -i 's!src/utils/vector.h!src/base/vector.h!' Bug: v8:11879 Change-Id: I3e6d622987fee4478089c40539724c19735bd625 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2968412Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#75243}
-
- 17 Jun, 2021 1 commit
-
-
Igor Sheludko authored
Bug: v8:11880 Change-Id: Idf23521d6cb1885922f92e1050937daa2d29acd7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2968409Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#75225}
-
- 14 Jun, 2021 1 commit
-
-
Camillo Bruni authored
- Convert Builtin to enum class - Change int-based builtin_index methods to use Builtin - Change Builtins::builtin to Builtins::code Change-Id: Id9e3bb83da97e8894ca7ca78e1e852da60675619 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2949104 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75127}
-
- 07 Jun, 2021 1 commit
-
-
Camillo Bruni authored
- Add new Builtin enum - Move Builtins::Name:kXXX to Builtin::kXXX - Update existing code Follow CLs will unify the mix of using int builtin-ids and Builtins::Name to only use the new Builtin enum and changing it to an enum class. Change-Id: Ib39aa45a25696acdf147f46392901b1e051deaa4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2905592 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#74995}
-
- 14 May, 2021 1 commit
-
-
Vicky Kontoura authored
This CL adds support for regular expressions. To serialize a regular expression, the pattern and flags are extracted and serialized as strings. Also, JSRegExp::StringFromFlags() is introduced to allow for transforming back from JSRegExp::Flags to the corresponding flag string. To verify that this implementation is on par with RegExp.prototype.flags, unittests are introduced under regexp/regexp-unittest.cc and RegExpBuiltinsAssembler::FlagsGetter() is updated to include a slow path that calls JSRegExp::StringFromFlags() through a runtime function. Bug: v8:11525, v8:11706 Change-Id: I9cad4c464129ba1cbf64672130d8410730d7d679 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2878751 Commit-Queue: Vicky Kontoura <vkont@google.com> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#74566}
-
- 29 Mar, 2021 1 commit
-
-
Frank Emrich authored
The build time flag v8_dict_mode_prototypes is ill-named, because it does not control whether properties are kept in dictionary mode (this is done by the v8_dict_property_const_tracking flag), but instead it controls if SwissNameDictionary or NameDictionary is used as the property backing store for all dictionary mode objects. This CL renames the flag and updates its description. Change-Id: If1337838d1b6d8f089c281a77d9ef7cfd4007220 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786859Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73706}
-
- 25 Mar, 2021 1 commit
-
-
Frank Emrich authored
This CL evokes that when v8_dict_mode_prototypes is enabled, SwissNameDictionary is used in CSA as the dictionary backing store for all objects (instead of NameDictionary). Bug: v8:11330 Change-Id: I2bda0ec60040981f07e0e51aaf772ac1bb8bbc06 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786856Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73690}
-
- 08 Mar, 2021 1 commit
-
-
Frank Emrich authored
This CL is part of a series that makes SwissNameDictionary available as a new property backing store. Previously, the flag v8_dict_mode_prototypes allows selecting between NameDictionary and OrderedNameDictionary as the backing store used for all dictionary mode objects. This series of CLs changes this such that enabling the flag causes SwissNameDictionary being used instead of OrderedNameDictionary. The behavior for when the flag is not set remains unchanged (= use NameDictionary). This particular CL just collects many small changes, including some CSA changes where runtime calls are necessary. Bug: v8:11388 Change-Id: I38fd18098fc641a5d92a986da251a6b3ac09411a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739642 Commit-Queue: Frank Emrich <emrich@google.com> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#73257}
-
- 03 Mar, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Also add the qualifier `compiler::` to places where it should have been used in the first place. Bug: v9:6949 Change-Id: Ib5ca6829cd9d72b1e3047afc92363910c902bbbf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2731529Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#73155}
-
- 22 Feb, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Removed the ones for types: * Symbol * Object * WordT * Int32T * HeapNumber Bug: v8:6949, v8:11384 Change-Id: Id09de31fe23d2a74d771100b293e45362c36a469 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707171Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72892}
-
- 11 Feb, 2021 1 commit
-
-
Jakob Gruber authored
V8 implements a fast-path for RegExp.prototype.split which diverges from the spec: instead of creating a new sticky regexp instance `splitter` and running it in a loop, we reuse the existing non-sticky regexp without looping through each character. This works fine in most cases, but we run into issues when matching at the very end of the string. According to the spec, matches at the end of the string are impossible in @@split, but in our fast-path implementation they can happen. The obvious fix would be to remove our fast-path but this comes with high performance costs. The fix implemented in this CL adds a special flag to `exec` s.t. matches at the end of the string can be treated as failures. This is only relevant for @@split. Bug: chromium:1075514 Change-Id: Ifb790ed116793998d7aeb37e307f3f3f764023d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2681950 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#72644}
-
- 09 Feb, 2021 1 commit
-
-
Peter Wong authored
- No noticeable changes in runtime performance according to js-perf-test/RegExp/{base_search.js, base_match.js} benchmarks - Slight builtin code sizes reduction: BEFORE ====== TFJ Builtin, StringPrototypeSearch, 1592 TFJ Builtin, StringPrototypeMatch, 1592 AFTER ===== TFJ Builtin, StringPrototypeSearch, 1432 TFJ Builtin, StringPrototypeMatch, 1432 Bug: v8:8996 Change-Id: Ifeadac1c924a36003a41be3b805438522f8188be Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2670247Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Cr-Commit-Position: refs/heads/master@{#72592}
-
- 26 Jan, 2021 1 commit
-
-
Shu-yu Guo authored
This CL implements the upcoming spec change: https://github.com/tc39/proposal-regexp-match-indices/pull/49 A new JSRegExpResultWithIndices subclass is introduced with a separate map and an extra slot for storing the indices. If /d is passed, exec() constructs a JSRegExpResultWithIndices and eagerly builds indices. The existing re-execution logic is removed. Bug: v8:9548 Change-Id: Ic11853e7521017af5e8bd583c7b82bb672821132 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2616873 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#72306}
-
- 21 Jan, 2021 1 commit
-
-
Jakob Gruber authored
OWNERS files: removed tebbi's entry. TODOs: replaced with 'turbofan'. Change-Id: Ib7a90418b394f123b82051379f120f0323d04097 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639757Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Hablich <hablich@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72223}
-
- 20 Nov, 2020 3 commits
-
-
Leszek Swirski authored
Because of LocalHeap safepoints, our existing assert scopes don't necessarily maintain the same guarantees as desired. In particular, DisallowHeapAllocation no longer guarantees that objects don't move. This patch transitions DisallowHeapAllocation to DisallowGarbageCollection, to ensure that code using this scope is also protected against safepoints. Change-Id: I0411425884f6849982611205fb17bb072881c722 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540547 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71319}
-
Frank Emrich authored
This CL adds partial support for objects whose slow mode dictionaries are OrderedNameDictionaries. This is the case for all slow mode objects if V8_DICT_MODE_PROTOTYPES is enabled. Specifically, this CL contains bailouts to the runtime in places where the subsequent CSA or Torque code may have to access property dictionaries. These bailouts only happen if V8_DICT_MODE_PROTOTYPES is set, in which case the property dictionaries are of type OrderedNameDictionary, which cannot be handled by most CSA/Torque code. The idea is that these bailouts are temporary and will all be removed once we've implemented the actuall dictionary accesses in CSA/Torque. Bug: v8:7569, v8:11167 Change-Id: I8308b2f8ba2d4dbf7918da42f995ae270c825fff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2545711 Commit-Queue: Frank Emrich <emrich@google.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#71311}
-
Frank Emrich authored
This CL adds partial support for objects whose slow mode dictionaries are OrderedNameDictionaries. This is the case for all slow mode objects if V8_DICT_MODE_PROTOTYPES is enabled. Specifically, this CL contains minor changes to CSA code, short of actually performing ordered dictionary lookups using CSA implementations of these lookups. Bug: v8:7569 Change-Id: I0dab0f21000ca3b9b170ace58787ec639d587e64 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540590 Commit-Queue: Frank Emrich <emrich@google.com> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71304}
-
- 09 Nov, 2020 1 commit
-
-
Santiago Aboy Solanes authored
Remove for: * Word32T * String * SharedFunctionInfo * MaybeObject Bug: v8:6949, v8:11074 Change-Id: I6facf1692697a4776a88ceae8a817f57af40c351 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2523322Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#71051}
-
- 04 Nov, 2020 1 commit
-
-
Jakob Gruber authored
.. by the runtime flag --enable-experimental-regexp-engine. Introduced in https://chromium-review.googlesource.com/c/v8/v8/+/2461244 Tbr: neis@chromium.org Bug: v8:10765 Change-Id: Ic32464ced7e5ddb4c31fe165eddb6b9d19260efc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2516920 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#70963}
-
- 30 Oct, 2020 1 commit
-
-
Martin Bidlingmaier authored
This commit adds the 'l' (linear) RegExp flag (as in e.g. /asdf|123/l) that forces execution in linear time. These regexps are handled by the experimental engine. If the experimental engine cannot handle the pattern, an exception is thrown on creation of the regexp. The commit also adds a new global V8 flag and changes an existing one: * --enable-experimental-engine, which turns on recognition of the RegExp 'l' flag. Previously this flag also caused all supported regexps to be executed by the experimental engine; this is not the case anymore. * --default-to-experimental-regexp-engine takes over the previous semantics of --enable-experimental-regexp-engine: We execute all supported regexps with the experimental engine. Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Bug: v8:10765 Change-Id: I5622a89b19404105e8be280d454e9fdd63c003b3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461244Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Martin Bidlingmaier <mbid@google.com> Cr-Commit-Position: refs/heads/master@{#70892}
-
- 14 Oct, 2020 1 commit
-
-
Martin Bidlingmaier authored
We fall back from irregexp to the experimental engine if a backtrack limit is exceeded and the experimental engine can handle the regexp. The feature can be turned on with a boolean flag, and an uint-valued flag controls the default backtrack limit. For regexps that are constructed with an explicit backtrack limit (API, %NewRegExpWithBacktrackLimit), we choose the lower of the explicit and default backtrack limits. The default backtrack limit does not apply to regexps that can't be handled by the experimental engine, and for such regexps an explicitly specified backtrack limit is handled as before by returning null if we exceed it. Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Bug: v8:10765 Change-Id: I580df79bd847520985b6c2c2159bc427315c89d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2436341 Commit-Queue: Martin Bidlingmaier <mbid@google.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#70500}
-
- 01 Oct, 2020 1 commit
-
-
Dan Elphick authored
CodeAssembler::Parameter now takes a Type template parameter and performs a checked cast to it. There is also UncheckedParameter which returns a TNode but doesn't check the cast. The original Parameter method is still there as UntypedParameter. Parameter<T>(x) in many cases replaces CAST(Parameter(x)), where the cast is performed inside Parameter. Since Parameter is not a macro, this means it cannot see the original expression or its file name and line number. So the error messages are vaguely useful, Parameter<T>() takes a SourceLocation parameter which with a default value of SourceLocation::Current(), which at least gives us the file name and line number for the error message. Bug: v8:6949, v8:10933 Change-Id: I27157bec7dc7462210c1eb9c430c0180217d25c1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2435106Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#70264}
-
- 16 Sep, 2020 1 commit
-
-
Martin Bidlingmaier authored
This commit adds support for capture groups (as in e.g. /x(123|abc)y/) in the experimental regexp engine. Now every InterpreterThread owns a register array containing (sub)match boundaries. There is a new instruction to record the current input index in some register. Submatches in quantifier bodies should be reported only if they occur during the last repetition. Thus we reset those registers before attempting to match the body of a quantifier. This is implemented with another new instruction. Because of concerns for the growing sizeof the NfaInterpreter object (which is allocated on the stack), this commit replaces the `SmallVector` members of the NfaInterpreter with zone-allocated arrays. Register arrays, which for a fixed regexp are all the same size, are allocated with a RecyclingZoneAllocator for cheap memory reclamation via a linked list of equally-sized free blocks. Possible optimizations for management of register array memory: 1. If there are few register per thread, then it is likely faster to store them inline in the InterpreterThread struct. 2. re2 implements copy-on-write: InterpreterThreads can share the same register array. If a thread attempts to write to shared register array, the register array is cloned first. 3. The register at index 1 contains the end of the match; this is only written to right before an ACCEPT statement. We could make ACCEPT equivalent to what's currently CAPTURE 1 followed by ACCEPT. We could then save the memory for register 1 for threads that haven't finished yet. This is particularly interesting if now optimization 1 kicks in. Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Bug: v8:10765 Change-Id: I2c0503206ce331e13ac9912945bb66736d740197 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390770 Commit-Queue: Martin Bidlingmaier <mbid@google.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69929}
-
- 14 Sep, 2020 1 commit
-
-
Camillo Bruni authored
Bug: v8:10763 Change-Id: I8e8f7924928175516e7ba2500f4660dc160158b2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2409278Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69871}
-
- 10 Sep, 2020 1 commit
-
-
Camillo Bruni authored
Bug: v8:10763 Change-Id: I959661854e5b138186406d4d6fda77558200d454 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2402878Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69820}
-
- 19 Aug, 2020 1 commit
-
-
Santiago Aboy Solanes authored
Drive-by: Remove a parameter that had to be SKIP_WRITE_BARRIER. Bug: v8:9708, v8:6949 Change-Id: Ib5d0521f255a92749440a5001dab8b59eb078bf9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362950Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#69481}
-
- 18 Aug, 2020 1 commit
-
-
Martin Bidlingmaier authored
This adds the new JsRegExp::Type EXPERIMENTAL, which should eventually be implemented with the algorithm based on automata. Currently the new engine deals with plain search strings only, i.e. regexps that do not contain operators or escape sequences. R=jgruber@chromium.org Bug: v8:10765 Change-Id: I6a10d9cdf4605d219dbe7cc1989df3bfa7349ff8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339094Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69442}
-