- 30 Jun, 2017 14 commits
-
-
Marja Hölttä authored
This way, each lazy function needs to handle only the data relevant to itself. This reduced data handling overheads. Other changes: 1) Don't deserialize the data; once it's on the heap, it can stay there. Lazy function compilation is only done in the main thread. 2) Separate ProducedPreParsedScopeData and ConsumedPreParsedScopeData. It's clearer, because: - The data looks fundamentally different when we're producing it and when we're consuming it. - Cleanly separates the operations we can do in the "producing phase" and in the "consuming phase". Bug: v8:5516 Change-Id: I6985a6621f71b348a55155724765624b5d5f7c33 Reviewed-on: https://chromium-review.googlesource.com/528094 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46347}
-
Andreas Haas authored
Update the spec tests in v8 to the most recent version. R=rossberg@chromium.org CC=titzer@chromium.org Change-Id: Ib4e809c20150502b131a2c0b68fdb2ede1d5f85f Reviewed-on: https://chromium-review.googlesource.com/552155 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Rossberg <rossberg@chromium.org> Cr-Commit-Position: refs/heads/master@{#46346}
-
Ulan Degenbaev authored
BUG=chromium:738031 Change-Id: I98d1015caadd7214a7076f7b39a4514bfd908061 Reviewed-on: https://chromium-review.googlesource.com/555971Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46345}
-
Michael Lippautz authored
Last marker to use the instance based visitors. Delete StaticMarkingVisitor. Bug: chromium:738368 Change-Id: I7b5345805268aab277f2961c8598536dfa1a4eeb Reviewed-on: https://chromium-review.googlesource.com/556037Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46344}
-
Andreas Haas authored
This CL makes foreground compilation tasks normal (i.e. not cancelable) again, because otherwise a deadlock can happen. I think the reason why the foreground tasks were cancelable was to make sure that all tasks either finish correctly or get canceled. However, since the isolate can only shut down on the main thread, this means that the foreground task should have already finished when the isolate shuts down, or it should not have started at all. I reordered the deletion of the AsyncCompileJob though to make sure that an AsyncCompileJob is removed from CompilationManager before its promise is resolved. Here is the deadlock: The JS code which is executed after a promise is resolved is executed within the task which resolves the promise. In case of async compilation this means that some JS code is executed within a CompileTask. In JS, the shutdown of the isolate can be triggered. During the shutdown of the isolate, the CancelableTaskManager waits for all registered cancelable tasks to complete, including the CompileTask of async compilation. This means that the CancelableTaskManager waits for itself to finish, which is a deadlock. R=clemensh@chromium.org, mtrofin@chromium.org Change-Id: I9f8c7fb2cfc5b9bfc53c761010b1590293bb82c9 Reviewed-on: https://chromium-review.googlesource.com/554733 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46343}
-
Camillo Bruni authored
This mostly reverts commit c503b805 but fixes an issue where literals would always be pretenured on first instantiation. As a cleanup we pass in a PretenureFlag instead of using the FeedbackVector as indicator. Bug: v8:6211 Change-Id: Id328552620e33f5083519bcba1e24396d162d516 Reviewed-on: https://chromium-review.googlesource.com/555670Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46342}
-
Igor Sheludko authored
Pass the_hole_value as a |prototype| to let the helper function create prototype object and properly wire it with the respective constructor function. Bug: v8:6459 Change-Id: I85097c02c88f00a47e62321ee3e6a3bdf6b5bcf8 Reviewed-on: https://chromium-review.googlesource.com/557799Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46341}
-
Miran.Karic authored
The CL adds optimizations for Neg_s and Neg_d macro instructions. BUG= Change-Id: I842480ac3195860a1a36dadcffb5dc560ca8f424 Reviewed-on: https://chromium-review.googlesource.com/555131Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Commit-Queue: Miran Karić <Miran.Karic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46340}
-
bmeurer authored
Similar to JSCall, we can also replace uninitialized JSConstruct nodes with SOFT deopts to ensure that we don't generate unnecessary dead code. This for example shows up in the hot parts of the Node event emitter currently where the generic code for handling events with 4 or more parameters might not have been run, but we still generate most of the code because the new Array call in the beginning is not turned into a SOFT deopt immediately. Drive-by-fix: Also refactor the BytecodeGraphBuilder's handling of Construct bytecodes a bit to reduce the amount of code duplication. BUG=v8:4551, v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2958253002 Cr-Commit-Position: refs/heads/master@{#46339}
-
Leszek Swirski authored
Change-Id: I2ee0ff9db1bbc8c17a1ad3dea1de1ad996895852 Reviewed-on: https://chromium-review.googlesource.com/474807Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#46338}
-
bmeurer authored
Extend the use list check for the arguments object/rest parameters during apply/spread optimization to allow for more cases, such that even in code like function foo() { if (arguments.length === 1) return arguments[0]; return bar.apply(this, arguments); } we don't need to materialize the arguments object. This obviously comes with a phase ordering problem, which we resolve by introducing a waitlist in the JSCallReducer, which contains the nodes that we should check again after all the other reductions are done, and which might then be reducible. This is not 100% ideal, but get's us closer to where we want to be, and it's crucial to speed up Node core, especially the event emitter. BUG=v8:4551,v8:5511, v8:5726 R=petermarshall@chromium.org Review-Url: https://codereview.chromium.org/2956233002 Cr-Commit-Position: refs/heads/master@{#46337}
-
Igor Sheludko authored
This CL removes unused utils.InstallFunctions, utils.InstallGetter(), utils.SetFunctionName, utils.OverrideFunction and respective runtime functions (%FunctionSetSharedName and %FunctionRemovePrototype). This CL is one of a series of cleanup CL which are the preliminary steps for improving function closures creation. Bug: v8:6459 Change-Id: I0fb5940ed628f0c1958f585411e2fca3e2038054 Reviewed-on: https://chromium-review.googlesource.com/548037 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#46336}
-
Igor Sheludko authored
This CL replaces usages of utils.InstallFunctions and utils.InstallGetter() with the DEFINE_METHOD* macros that ensure that the native function is created in proper form from the beginning. Thus the function will not require further reconfiguring like adding a computed name or removing of 'prototype' property. This CL is one of a series of cleanup CL which are the preliminary steps for improving function closures creation. Bug: v8:6459 Change-Id: If5b1733454f10aef5da7f335273c632e7eabb728 Reviewed-on: https://chromium-review.googlesource.com/548077Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46335}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/d69be9e..259d849 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/3b76c88..6d102fd TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I1b7208580b29364e168f185249c1ba2008ced3d0 Reviewed-on: https://chromium-review.googlesource.com/557719Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#46334}
-
- 29 Jun, 2017 26 commits
-
-
Sathya Gunasekaran authored
Previously V8 created a promise to return to userland, but instead we let the embedder create and track the promise. Bug: v8:5785 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I8903ffbabf3a256f1c8df844a656a873da304586 Reviewed-on: https://chromium-review.googlesource.com/492646 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46333}
-
mtrofin authored
The naming convention in v8 has trivial getters named like the field, no 'get_' prefix, and dropping the '_' suffix of the field. BUG= Review-Url: https://codereview.chromium.org/2958283003 Cr-Commit-Position: refs/heads/master@{#46332}
-
Adam Klein authored
R=marja@chromium.org Bug: v8:6509 Change-Id: If8be12e2ce6c00de0bdee38ab721ef5b7b47efe5 Reviewed-on: https://chromium-review.googlesource.com/556239Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46331}
-
Camillo Bruni authored
Change-Id: I46ac3b82a37c7044d5ce5eb3c0378e354ef13c52 Reviewed-on: https://chromium-review.googlesource.com/552538Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46330}
-
gdeepti authored
Ops Implemented: I32x4Neg, I32x4GtS, I32x4GeS, I32x4GtU, I32x4GeU, I16x8Neg, I16x8GtS, I16x8GeS, I16x8GtU, I16x8GeU I8x16Neg, I8x16GtS, I8x16GeS, I8x16GtU, I8x16GeU S128Not BUG=v8:6020 R=bbudge@chromium.org, zvi.rackover@intel.com, mtrofin@chromium.org Review-Url: https://codereview.chromium.org/2951793003 Cr-Commit-Position: refs/heads/master@{#46329}
-
Mathias Bynens authored
s/arguements_store/arguments_store/ BUG= R=cbruni@chromium.org Change-Id: Ib7b573d80521e717c65b30aff5c3b1170d3fc61a Reviewed-on: https://chromium-review.googlesource.com/555494Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46328}
-
Michael Starzinger authored
This avoids usage of the costly {NodeProperties::IsExceptionalCall} predicate during graph building. The result of this predicate is no longer needed. R=leszeks@chromium.org Change-Id: Ief0c37b598ca51ea5d604f47d964bcbfb89a5206 Reviewed-on: https://chromium-review.googlesource.com/555517Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46327}
-
Jaideep Bajwa authored
Port 040fa06f R=neis@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:6048 LOG=N Change-Id: I842cf54de1ef33dbcaf95824db15d87e9f68eb22 Reviewed-on: https://chromium-review.googlesource.com/555330Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#46326}
-
Michael Lippautz authored
Bug: Change-Id: Ie365e73656f9807043e801b4fb74d75c64259838 Reviewed-on: https://chromium-review.googlesource.com/552552 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46325}
-
Ulan Degenbaev authored
concurrent marking is on. BUG=chromium:694255 Change-Id: I3cd74af9a3f7fb02d982d9366a6a2ebd119a92b2 Reviewed-on: https://chromium-review.googlesource.com/554627Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46324}
-
Jakob Kummerow authored
When internalization of the key fails because the string does not exist in the StringTable yet, then no regular object can possibly have a property with that name, so just returning "false" is safe. However, for objects with interceptors this is not true, as there may well be intercepted properties whose keys have not been internalized. So "special API objects" must take the slow path to query any interceptors. Bug: chromium:735990 Change-Id: Ibe6c4f8b14fef65738115f12167d3602bec3d9b7 Reviewed-on: https://chromium-review.googlesource.com/552550 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46323}
-
Michael Lippautz authored
It was disabled by accident when removing code flushing. A future experiment should check whether we actually still need it. Bug: Change-Id: Iab8593d982289200775f30622f7a3ce93795d03e Reviewed-on: https://chromium-review.googlesource.com/555430Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46322}
-
titzer authored
R=marja@chromium.org BUG= Review-Url: https://codereview.chromium.org/2961253002 Cr-Commit-Position: refs/heads/master@{#46321}
-
Michael Lippautz authored
Bug: chromium:651354 Change-Id: Ib384ca2d386421a0a466ef318b278f8fc677cdb2 Reviewed-on: https://chromium-review.googlesource.com/555172Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46320}
-
Ulan Degenbaev authored
The race happens when inobject slack tracking is being completed on the main thread, which decrements inobject_properties. At the same time the concurrent marker is reading inobject_properties via the LayoutDescriptorHelper. BUG=chromium:694255 Change-Id: I4627d66b66c6036d357b9f619e1c602f0bb47d80 Reviewed-on: https://chromium-review.googlesource.com/555210 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46319}
-
Michael Starzinger authored
This adds support for lowering of nodes having the {JSToObject} operator even if they have exceptional control projections (e.g. are inside of a try-block). R=bmeurer@chromium.org TEST=mjsunit/compiler/optimized-with Change-Id: I711ff4935db68c43243a971a8b21989487c86317 Reviewed-on: https://chromium-review.googlesource.com/554628Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46318}
-
Daniel Ehrenberg authored
This reverts commit 96698b55. Reason for revert: This patch was correct when it landed, but later, the spec was changed to V8's old behavior in https://github.com/tc39/ecma262/pull/885 . Original change's description: > [parser] allow ASI when "await" or "yield" follows "let" > > Per https://github.com/tc39/test262/pull/956, André believes that ASI > should be permitted in these situations. > > BUG= > R=marja@chromium.org, adamk@chromium.org, littledan@chromium.org > > Change-Id: I5602d8a507576607750ffa9e873e1bfa53dd3523 > Reviewed-on: https://chromium-review.googlesource.com/472568 > Reviewed-by: Marja Hölttä <marja@chromium.org> > Commit-Queue: Caitlin Potter <caitp@igalia.com> > Cr-Commit-Position: refs/heads/master@{#44585} TBR=adamk@chromium.org,marja@chromium.org,littledan@chromium.org,caitp@igalia.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I2c5bf709867da539ccd4cd82f3be98c8a0301f31 Reviewed-on: https://chromium-review.googlesource.com/553617Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46317}
-
Michael Achenbach authored
TBR=mathias@chromium.org NOTRY=true Bug: v8:5918 Change-Id: Ifcc1b2dc3aa230f30893deb0209eafa31384a263 Reviewed-on: https://chromium-review.googlesource.com/554772 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46316}
-
Michael Starzinger authored
This adds support for lowering of nodes having the {JSCreateArray} operator even if they have exceptional control projections (e.g. are placed inside a try-block). R=mvstanton@chromium.org TEST=mjsunit/compiler/array-constructor Change-Id: I2fe34dbb3729b4763471f2638a960b01c531c038 Reviewed-on: https://chromium-review.googlesource.com/554732Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46315}
-
Clemens Hammacher authored
In our internal code, we should only use pending exceptions. They will be converted to scheduled exceptions on the API boundary. Hence, the ErrorThrower just sets a pending exception; it should never have to think about scheduled exceptions. The new ScheduledErrorThrower inherits from ErrorThrower and reschedules any pending exceptions in its destructor (turning them into scheduled exceptions). In some situations, there might already be a scheduled exception, e.g. when calling other API methods (v8::Value::Get). In this case, the ErrorThrower should also not set another pending exception. For the reasons mentioned above, this can only be handled in the ScheduledErrorThrower, which is used the API methods. This fixes one DCHECK failure and one TODO about scheduled exceptions if no instance can be created, because the start function throws. R=mtrofin@chromium.org, mstarzinger@chromium.org BUG=v8:6232,chromium:736256 Change-Id: I4905be04c565df9495de18fb26adbb5c05d193d2 Reviewed-on: https://chromium-review.googlesource.com/548641 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46314}
-
Georg Neis authored
R=adamk@chromium.org Bug: v8:1569 Change-Id: Idf069e7c8dac4a064eacf6bd1db1df3314988e6a Reviewed-on: https://chromium-review.googlesource.com/553261Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46313}
-
Michael Achenbach authored
This drops v8_hello_world, v8_parser_shell and v8_sample_process from the official v8 archives. This also adds a new option to differentiate library and executable archives. NOTRY=true TBR=marja@chromium.org Bug: v8:5918 Change-Id: I946708f2eeb030296c5ce284541ecf719522186c Reviewed-on: https://chromium-review.googlesource.com/554753Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46312}
-
bmeurer authored
Enable the experimental support in escape analysis to deal with constant-foldable CheckMaps nodes and remove them from the effect chain w/o blocking the scalar replacement of the object. BUG=v8:4586,v8:5267 R=tebbi@chromium.org Review-Url: https://codereview.chromium.org/2964473002 Cr-Commit-Position: refs/heads/master@{#46311}
-
titzer authored
R=verwaest@chromium.org BUG= Review-Url: https://codereview.chromium.org/2957313002 Cr-Commit-Position: refs/heads/master@{#46310}
-
Adam Klein authored
Change-Id: I83bfb75dab7970ba1c13d2096c8ee9de1e13903b Reviewed-on: https://chromium-review.googlesource.com/553137Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46309}
-
Michael Achenbach authored
This reverts commit 3d8e87aa. Reason for revert: tsan errors: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/15977 Original change's description: > Switch tracing to use v8::TracingController > > BUG=v8:6511 > R=fmeawad@chromium.org > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I4961e4b61a9ddc98385ed97c3ffcbcaef2d9cba7 > Reviewed-on: https://chromium-review.googlesource.com/543144 > Commit-Queue: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Fadi Meawad <fmeawad@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46307} TBR=fmeawad@chromium.org,jochen@chromium.org Change-Id: I3f39081001104c634cc8cab9d58ec420fc7293d8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6511 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/554771Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46308}
-