- 21 Apr, 2020 1 commit
-
-
Jakob Gruber authored
... between the interpreter and generated code. Prior to this CL, pre- and post conditions on the output register array differed between the interpreter and generated code. Interpreter Pre: `output` fits captures and temporary registers. Post: None. Generated code Pre: `output` fits capture registers. Post: `output` is modified if and only if the match succeeded. This CL changes the interpreter to match generated code pre- and post conditions by allocating space for temporary registers inside the interpreter. Drive-by: Add MaxRegisterCount, RegistersForCaptureCount helpers. Bug: chromium:1067270 Change-Id: I2900ef2f31207d817ec7ead3e0e2215b23b398f0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135642 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#67268}
-
- 21 Nov, 2019 1 commit
-
-
Tobias Tebbi authored
This introduces a new keyword "shape" in addition to "class", which allows the definition of a type that extends a JSObject subclass and specifies one or several maps with statically known in-object properties. Differences compared to normal classes: - Shapes are transient since they specify maps instead of instance types. - Shapes have a known size. - Fields of shapes are always in-object properties. In particular, this means that their offset is after kHeaderSize. - It's forbidden to inherited from shapes. - Since shapes usually specify NativeContext-dependent maps, it's not possible to write runtime type-checks for them. Thus this CL avoids mapping them to their own TNode type, as the CAST macro won't work properly. We had runtime-checks for some of them nevertheless, some of them scarily confusing like IsJSSloppyArgumentsObject, that actually just checked the instance type. Drive-by cleanups and simplifications: - Allow subclassing from non-abstract classes and remove @dirtyInstantiatedAbstractClass. This attribute stems from a mis- conception of how instance types work, and with this change it ceases to have semantic influence. - Replace the existing JSArgumentsObject subclasses into two shapes. JSArgumentsObjectWithLength had to be removed since shapes don't support subclassing. - Place kHeaderSize correctly for objects with indexed fields. Design doc: https://docs.google.com/document/d/1zPy2ZYfNFjeEuw6Mz3YJA-GaPGbdcSYam3SrS7ETzRU Bug: v8:8944 Change-Id: Iabf185ccd27d0900e0890539a7fe9eaa8bf2d50e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1917140 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#65108}
-
- 22 Oct, 2019 1 commit
-
-
Joshua Litt authored
Currently, RegExpResult builds match indices lazily using data stored in hidden internal fields on the result object itself. Unfortunately, if an internal field is deleted, it can cause these hidden fields to migrate to a dictionary, making indexed lookup unsafe. This CL forces slow but safe lookup for these fields when lazily building indices. Bug: v8:9548, chromium:1013133 Change-Id: Ide87d9ca6a73644ced3de8e35ecac26330d365e4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1871756Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Joshua Litt <joshualitt@chromium.org> Cr-Commit-Position: refs/heads/master@{#64474}
-
- 17 Sep, 2019 1 commit
-
-
Joshua Litt authored
Change-Id: Ie233f093377bcdbab95a2f34b6c609a651f9db62 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1787980 Auto-Submit: Joshua Litt <joshualitt@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63833}
-
- 05 Sep, 2019 1 commit
-
-
Joshua Litt authored
Implements match indices for regexp, as specified by https://github.com/tc39/proposal-regexp-match-indices, a stage 3 TC39 proposal. This implementation is hidden behind the '--harmony-regexp-match-indices' flag. Regexp match indices extends the JSRegExpResult object with an array of indices of matches, as well as a dictionary of capture names to match indices. Bug: v8:9548 Change-Id: Ia9efcee00d997dda6158539b8d0f4c4e5965e5e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1771379 Commit-Queue: Joshua Litt <joshualitt@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63581}
-
- 29 Aug, 2019 2 commits
-
-
Seth Brenith authored
This patch is mostly mechanical. A few changes in implementation-visitor.cc might be worth mentioning: - Don't generate both field offset macros and class definitions for the same class. This was mostly just to keep me from forgetting to remove the DEFINE_FIELD_OFFSET_CONSTANTS part when converting classes, but also helpfully flagged that FixedArrayBase wasn't using the generated class that it requested. - Generate forward declarations for all tq-defined classes in internal-class-definitions-tq.h. This is helpful for making things compile when classes have fields of other class types. - When generating accessors for union types, use the nearest class type that contains the entire union rather than plain Object. This is important for compile-time type safety. It also required a few minor fixes elsewhere (isolate.cc, modules.cc, scope-info.cc, source-text-module.cc, and a correction of the field types in CallHandlerInfo to match how they're set in api.cc). Change-Id: I3b9280e30779ce57fb9f3629eecfec898e26d708 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774976Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#63458}
-
Patrick Thier authored
The code fields in a JSRegExp object now either contain irregexp compiled code or a trampoline to the interpreter. This way the code can be executed without explicitly checking if the regexp shall be interpreted or executed natively. In case of interpreted regexp the generated bytecode is now stored in its own fields instead of the code fields for Latin1 and UC16 respectively. The signatures of the jitted irregexp match and the regexp interpreter have been equalized. Bug: v8:9516 Change-Id: I30e3d86f4702a902d3387bccc1ee91dea501fe4e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762513 Commit-Queue: Patrick Thier <pthier@google.com> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63457}
-
- 23 Aug, 2019 3 commits
-
-
Joshua Litt authored
This reverts commit 9460101c. Reason for revert: Causes confusion on Blink side, as it introduces an object with >=2 internal fields that is not a wrapper (see bug). Bug: chromium:996681 Change-Id: I275b5a064a4ee8c73c05f97be322924a3bc5370e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1769148Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Joshua Litt <joshualitt@chromium.org> Cr-Commit-Position: refs/heads/master@{#63386}
-
Andreas Haas authored
This reverts commit 5db04cc0. Reason for revert: <INSERT REASONING HERE> Original change's description: > Revert "[regexp] Only append to JSRegExpResult's initial map if we add descriptor" > > This reverts commit dc1cc223. > > Revert "[regexp] Implement the match indices proposal" > > This reverts commit 9460101c. > > Reason for revert: Causes confusion on Blink side, as it introduces > an object with >=2 internal fields that is not a wrapper (see bug). > > Bug: chromium:996681 > Change-Id: I5c167e9e15bfbec2aa6b843e3063ead5d52fb26c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1768897 > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63376} TBR=yangguo@chromium.org,sigurds@chromium.org,joshualitt@chromium.org Change-Id: Ic58fc3fc83faaf86bd895da29eacb7d51c443beb No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:996681 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1768584Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#63379}
-
Joshua Litt authored
This reverts commit dc1cc223. Revert "[regexp] Implement the match indices proposal" This reverts commit 9460101c. Reason for revert: Causes confusion on Blink side, as it introduces an object with >=2 internal fields that is not a wrapper (see bug). Bug: chromium:996681 Change-Id: I5c167e9e15bfbec2aa6b843e3063ead5d52fb26c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1768897 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#63376}
-
- 20 Aug, 2019 1 commit
-
-
Joshua Litt authored
Implements match indices for regexp, as specified by https://github.com/tc39/proposal-regexp-match-indices, a stage 3 TC39 proposal. This implementation is hidden behind the '--harmony-regexp-match-indices' flag. Regexp match indices extends the JSRegExpResult object with an array of indices of matches, as well as a dictionary of capture names to match indices. Bug: v8:9548 Change-Id: I9866a2d1f5af6a507de710357cb5e74c694e7558 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1734937 Commit-Queue: Joshua Litt <joshualitt@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#63272}
-
- 23 May, 2019 2 commits
-
-
Yang Guo authored
TBR=bmeurer@chromium.org,leszeks@chromium.org Bug: v8:9247 Change-Id: I8d14d0192ea8c705f8274e8e61a162531826edb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624220Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61769}
-
Clemens Hammacher authored
This CL was generated by an automatic clang AST rewriter using this matcher expression: callExpr( callee( cxxMethodDecl( hasName("operator->"), ofClass(isSameOrDerivedFrom("v8::internal::Object")) ) ), argumentCountIs(1) ) The "->" at the expression location was then rewritten to ".". R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org Bug: v8:9183, v8:3770 No-Try: true No-Tree-Checks: true Change-Id: I0a7ecabdeafe51d0cf427f5280af0c7cab96869e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624209Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61764}
-
- 23 Jan, 2019 1 commit
-
-
Jakob Gruber authored
For jitless mode, we must be able to switch between the native regexp engine and interpreted regexps at runtime since --jitless is itself a runtime flag. This CL unconditionally compiles in the regexp interpreter in all builds. It can be toggled through the --regexp-interpret-all flag. Bug: v8:7777, v8:8678 Change-Id: Iadd21a152de7c07586d5af32bee5fdf9931f1a01 Reviewed-on: https://chromium-review.googlesource.com/c/1408929 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#59041}
-
- 11 Jan, 2019 1 commit
-
-
Jakob Gruber authored
The JSRegExp's data fixed array is variable size depending on the regexp kind. Bug: v8:8572 Change-Id: I8f07b8e8d2a9a81e0905563fb701e1e3687cafb5 Reviewed-on: https://chromium-review.googlesource.com/c/1405034Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58741}
-
- 09 Jan, 2019 1 commit
-
-
Jakob Kummerow authored
The incremental migration required several pairs of functionally equivalent macros. This patch consolidates everything onto the respective new version and drops the obsolete versions. Bug: v8:3770 Change-Id: I4fb05ff223e8250c83a13f46840810b0893f410b Reviewed-on: https://chromium-review.googlesource.com/c/1398223Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58659}
-
- 26 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Tbr: ahaas@chromium.org,leszeks@chromium.org,verwaest@chromium.org Bug: v8:3770 Change-Id: Ia6530fbb70dac05e9972283781c3550d8b50e1eb Reviewed-on: https://chromium-review.googlesource.com/c/1390116 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#58470}
-
- 18 Dec, 2018 1 commit
-
-
Jakob Gruber authored
This is a reland of 1efe6259 Original change's description: > [snapshot] Clear irregexp code prior to serialization > > Compiled irregexp code should be cleared unless > FunctionCodeHandling::kKeep is passed. > > Bug: v8:8572 > Change-Id: Icb74cc6e0f39a69f8383b05f1638cf0e3be1807c > Reviewed-on: https://chromium-review.googlesource.com/c/1373773 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58272} Bug: v8:8572 Change-Id: I2dfe0c1b4419c47fe2a1916c3bc16800a30309c5 Reviewed-on: https://chromium-review.googlesource.com/c/1379937 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#58308}
-
- 17 Dec, 2018 2 commits
-
-
Maya Lekova authored
This reverts commit 1efe6259. Reason for revert: Broken V8 Linux - arm - sim - lite build - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm%20-%20sim%20-%20lite/1259 Original change's description: > [snapshot] Clear irregexp code prior to serialization > > Compiled irregexp code should be cleared unless > FunctionCodeHandling::kKeep is passed. > > Bug: v8:8572 > Change-Id: Icb74cc6e0f39a69f8383b05f1638cf0e3be1807c > Reviewed-on: https://chromium-review.googlesource.com/c/1373773 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58272} TBR=yangguo@chromium.org,jgruber@chromium.org Change-Id: I7a8c7f5c1500714bccee5c11224fbdf0132c6d78 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8572 Reviewed-on: https://chromium-review.googlesource.com/c/1379874Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#58273}
-
Jakob Gruber authored
Compiled irregexp code should be cleared unless FunctionCodeHandling::kKeep is passed. Bug: v8:8572 Change-Id: Icb74cc6e0f39a69f8383b05f1638cf0e3be1807c Reviewed-on: https://chromium-review.googlesource.com/c/1373773 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#58272}
-
- 08 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I1d74ffe9e5478b4b8bc0acbf088d20919d458d50 Reviewed-on: https://chromium-review.googlesource.com/c/1363822 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58112}
-
- 27 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I4da6404aa968adca1fbb49029fc304622101d6c3 Reviewed-on: https://chromium-review.googlesource.com/c/1349112 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57853}
-
- 05 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
and split Smi out of objects.h into smi.h. Bug: v8:3770, v8:5402 Change-Id: I5ff7461495d29c785a76c79aca2616816a29ab1e Reviewed-on: https://chromium-review.googlesource.com/c/1313035Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57252}
-
- 25 Jul, 2018 1 commit
-
-
Peter Marshall authored
Change-Id: I87b141d44706fedf7821c266c6207564fd77a9b6 Reviewed-on: https://chromium-review.googlesource.com/1148577Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#54677}
-
- 05 Jul, 2018 1 commit
-
-
Leszek Swirski authored
Replace Is<oddball>(GetIsolate()) calls with a no-parameter version that goes through ReadOnlyRoots, and add a version that takes a ReadOnlyRoots if that is available in the parent (but Isolate isn't). Also opportunistically clean up a few places where ReadOnlyRoots are available but we still pass in an Isolate parameter. TBR=yangguo@chromium.org Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Icc0b8a7d8f9c6b84c0ec8fe771fcfb75c9dc5468 Reviewed-on: https://chromium-review.googlesource.com/1126302Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54245}
-
- 24 May, 2018 1 commit
-
-
Marja Hölttä authored
Moving them away was a mistake. Fixing this enables getting rid of a bunch of includes. BUG=v8:5402 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I5482eab4281c7450350f058fe0a04a6f375ea082 Reviewed-on: https://chromium-review.googlesource.com/1070188Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#53328}
-
- 18 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
This CL fixes all occurences that don't require special OWNER reviews, or can be reviewed by Michi. After this one, we should be able to reenable the readability/check cpplint check. R=mstarzinger@chromium.org Bug: v8:6837, v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: Ic81d68d5534eaa795b7197fed5c41ed158361d62 Reviewed-on: https://chromium-review.googlesource.com/721120 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48670}
-
- 17 Oct, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5402,v8:6921 Change-Id: Iab2509554718a6beca73217f80cafedf650bd066 Reviewed-on: https://chromium-review.googlesource.com/718741Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48629}
-