- 07 Jul, 2017 22 commits
-
-
Alexey Kozyatinskiy authored
Fetch message and stack trace from error object if Promise is rejected with native JS error. Bug: v8:6249 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Icf84205eb9d16e860600b7cc916ddcb1922be040 Reviewed-on: https://chromium-review.googlesource.com/563096Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46483}
-
titzer authored
This CL refactors the WasmMemoryObject and WasmInstanceObject classes to use WeakFixedArray instead of using a doubly-linked list of instances. This simplifies the lifetime management of instances by not requiring them to be unlinked from this list upon GC. It also simplifies the iteration over the instances using a given WasmMemoryObject. Note that, contrary to my naive assumption at the outset, it is still necessary for the InstanceFinalizer (called upon a WasmInstanceObject death) to unlink itself from a WasmMemoryObject's instances list, due to finalizer ordering. R=deepti@chromium.org, mlippautz@chromium.org BUG= Review-Url: https://codereview.chromium.org/2972803002 Cr-Commit-Position: refs/heads/master@{#46482}
-
Mike Stanton authored
Change-Id: Ie83b4180100f5000af6227525ac25312ec3527cf Reviewed-on: https://chromium-review.googlesource.com/563310Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#46481}
-
Mythri authored
When there are some changes in the graph, we mark the uses of the reduced node for revisiting. These are pushed onto a stack and hence follow a depth first traversal. This sometimes leads to propogating the changes down the graph and again revisiting the entire graph because of the nodes that were marked for revisit earlier. Bug: chromium:725664 Change-Id: I036fd7096c422565a2851b109aba2b4c438403c0 Reviewed-on: https://chromium-review.googlesource.com/563301Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Mythri Alle <mythria@google.com> Cr-Commit-Position: refs/heads/master@{#46480}
-
Michael Lippautz authored
Bug: Change-Id: I6953e494632684b9e2bc9a1bf7f7801eea25cdcb Reviewed-on: https://chromium-review.googlesource.com/563212 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46479}
-
titzer authored
Instead, rely on the underlying instance types for WebAssembly.* types. R=clemensh@chromium.org, rossberg@chromium.org BUG= Review-Url: https://codereview.chromium.org/2971093003 Cr-Commit-Position: refs/heads/master@{#46478}
-
Georg Neis authored
This CL introduces TurboAssembler, a super-class of Assembler and sub-class of MacroAssembler. TurboAssembler contains all the functionality that is used by Turbofan and previously was part of MacroAssembler. TurboAssembler has access to the isolate but, in contrast to MacroAssembler, does not expect to be running on the main thread. Bug: v8:6048 Change-Id: If5693f56a45fe057e5011168e830d01a3f2f772d Reviewed-on: https://chromium-review.googlesource.com/559674Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46477}
-
jgruber authored
This adds support for exception control flow by adding a counter behind throw statements (never incremented), as well as a counter for catch and finally blocks. Bug: v8:6000 Change-Id: I3959772c889b543ab5e186ad7cd710e55a8aec23 Reviewed-on: https://chromium-review.googlesource.com/558993 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46476}
-
titzer authored
This CL refactors the internal representation of JavaScript-exposed WebAssembly objects to be more like other such objects in V8. By introducing a new instance type for each of the JS-exposed types, we get more robust typechecking without using embedder fields (which were previously used when these objects where instance type JS_API_OBJECT). In addition to the new instance types, the subclasses X of JSObject (WasmInstanceObject, WasmMemoryObject, WasmModuleObject, WasmTableObject) now have appropriate Is##X() methods on Object and are now robust. BUG=v8:6547 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2964943002 Cr-Commit-Position: refs/heads/master@{#46475}
-
Dusan Simicic authored
Add support for and.v, or.v, nor.v, xor.v, bmnz.v, bmz.v, bsel.v MSA instructions in mips32 and mips64 simulator. Bug: Change-Id: Idf092a1c211959a096694485268fff379b612b77 Reviewed-on: https://chromium-review.googlesource.com/533075 Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46474}
-
Andreas Haas authored
This CL changes for floats what https://chromium-review.googlesource.com/c/558964/ changed for doubles. Original message: On x86, signalling NaNs get converted to quiet NaNs when they get push on the stack and popped again. This happens in the code generation for arm, specifically for the vmov instruction with the immediate parameter. This CL replaces the vmov function in assembler-arm to take the immediate as a uint64_t instead of a double, to guarantee that the bit pattern does not change even if the parameter is a signalling NaN. New in this CL: Although src/double.h existed already, src/float.h did not exist yet. I created the file in this CL, and moved the classes Float32 and Float64 there, which already existed in src/deoptimizer.h. R=titzer@chromium.org, martyn.capewell@arm.com, v8-arm-ports@googlegroups.com BUG=v8:6564 Change-Id: I6a3f1f154af9c8cd4bb8e7e856235d3eee5e9edd Reviewed-on: https://chromium-review.googlesource.com/561009 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Martyn Capewell <martyn.capewell@arm.com> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46473}
-
Juliana Franco authored
Replaced all occurrences of AstId with BytecodeOffset Change-Id: I5bee2d35ccd6e404748ba352e35f5982a7a9b392 Reviewed-on: https://chromium-review.googlesource.com/561007 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46472}
-
Ulan Degenbaev authored
BUG=chromium:723600 Change-Id: Ic933159c973ccfe2a67fe8a4e2639c2ebd21b8d4 Reviewed-on: https://chromium-review.googlesource.com/563396Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46471}
-
Ulan Degenbaev authored
BUG=chromium:694255 Change-Id: Ifb4f72671fd47f0f11118302617b13695bb4407c Reviewed-on: https://chromium-review.googlesource.com/563376Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46470}
-
Ross McIlroy authored
BUG=v8:6243 TBR=jgruber@chromium.org,leszeks@chromium.org Change-Id: Ib830681073f4d3de4e500bf6144c0df2f9f4873f Reviewed-on: https://chromium-review.googlesource.com/562775Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46469}
-
Ilija Pavlovic authored
This CL contains new created tests for instructions INS and EXT. TEST=cctest/test-assembler-mips[64]/Ins, cctest/test-assembler-mips[64]/Ext BUG= Change-Id: Ie62037ee425a5cba3700c5025608fdada144add5 Reviewed-on: https://chromium-review.googlesource.com/561319 Commit-Queue: Miran Karić <Miran.Karic@imgtec.com> Reviewed-by: Miran Karić <Miran.Karic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46468}
-
Georg Neis authored
R=danno@chromium.org Bug: Change-Id: Ic7017f4bbcdd23c157f8fdece7b960549d20e313 Reviewed-on: https://chromium-review.googlesource.com/561145Reviewed-by: Daniel Clifford <danno@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46467}
-
Ivica Bogosavljevic authored
On MIPS R6 we have BC instruction that has 26bit offset. We exploit this in order to generate deoptimizer table with two instructions per entry instead of earlier three instructions per entry. Bug: Change-Id: If6638a9d4aa1515bfaa61530767d26ce5a78b0b0 Reviewed-on: https://chromium-review.googlesource.com/536972Reviewed-by: Miran Karić <Miran.Karic@imgtec.com> Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46466}
-
Pierre Langlois authored
The PrepareCallCFunction methods would take a scratch register as arguments when they can simply use ip. The reason to do this, apart from simplifying the code, is that TurboFan's code generator uses r9 as a scratch for this when it could just as well use ip. Bug: v8:6553 Change-Id: I0ed762d201f7ff8b8ed074da758227a8db95fca7 Reviewed-on: https://chromium-review.googlesource.com/558934Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#46465}
-
Raphael Kubo da Costa authored
Blink needs %ErrorPrototype% in order to properly set up the inheritance chain from DOMException, as specified in WebIDL: https://heycam.github.io/webidl/#es-DOMException-specialness This patch is similar to commit 5ec1cddc ("Expose %IteratorPrototype% as an intrinsic in the public API"), with the difference that there was no entry for %ErrorPrototype% in any of the mappings in contexts.h. Bug: chromium:556950, chromium:737497 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Iadc5b2b844f29f6c9640b6a89769d233931366e9 Reviewed-on: https://chromium-review.googlesource.com/559058Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com> Cr-Commit-Position: refs/heads/master@{#46464}
-
jgruber authored
This adds a new binary block coverage mode (in addition to the existing count block coverage), as well as a few transformation passes to reduce the number of uselessly reported ranges. Bug: v8:6000 Change-Id: I4fb234ca015990d00aa2f1dccb87f76ba4748994 Reviewed-on: https://chromium-review.googlesource.com/552642 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46463}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/08ca0e2..47732a6 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/52495f0..6539cc7 TBR=machenbach@chromium.org,hablich@chromium.org Change-Id: I03ed954a3a69e73cbe7448188a794f16cf827c0d Reviewed-on: https://chromium-review.googlesource.com/562997Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Commit-Queue: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/heads/master@{#46462}
-
- 06 Jul, 2017 18 commits
-
-
Ross McIlroy authored
Adds constant folding for the StringConcat bytecode to NativeContextSpecialization. Can reduce operator to either a fully folded constant string, or a JSAdd or a StringConcat with a reduced number of operators. BUG=v8:6243, chromium:738312 Change-Id: I6b2be6a3d95230a23f3c7390a4f7be5181c49a2a Reviewed-on: https://chromium-review.googlesource.com/559146 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46461}
-
Ross McIlroy authored
Adds a CheckElimination reducer to eliminate checks which have become unecessary due to inlining of heap constants. BUG=v8:6243, chromium:738312 Change-Id: Ie50b274bd07c86466eead08b2f21d2b63dd9e01c Reviewed-on: https://chromium-review.googlesource.com/559129 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46460}
-
Ross McIlroy authored
If a thin string can be dereferenced for StringConcat we still need to check whether the dereferenced string is a sequential string itself (it could be an external string). BUG=v8:6243 Change-Id: I146541512525726f092580512c0b5f02d33685a7 Reviewed-on: https://chromium-review.googlesource.com/558994 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46459}
-
Jaideep Bajwa authored
Port 9b3174b2 Original Commit Message: Remove all IsHeapObject/IsSmi checks from assembler and also from the macro-assembler functions that Turbofan code generation uses. Note for porters: In case it's unclear which macro-assembler functions need to be modified, it may be best to wait until I split MacroAssembler in a followup-CL, which will make that clear. R=neis@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:6048 LOG=N Change-Id: Iae7d74709930a25246ab919a65dfecf1175945f7 Reviewed-on: https://chromium-review.googlesource.com/562656Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#46458}
-
Sathya Gunasekaran authored
Print the object that is being destructured and update the error message. Previously, d8> var [a] = {} (d8):1: TypeError: [Symbol.iterator] is not a function Now, d8> var [a] = {} (d8):1: TypeError: {} is not iterable Bug: v8:6513, v8:5532 Change-Id: I5cbfe7c7e20632bce1a48bd38a1b0c98d0ff0660 Reviewed-on: https://chromium-review.googlesource.com/557370 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#46457}
-
Josh Wolfe authored
The ')'-in-parameter checking is not necessary for CompileFunctionInContext. The arguments array is expected to be an array of identifiers, not an array of arbitrary strings that get concatenated. Furthermore, there's no reason to have the .toString() representation look like it came from CreateDynamicFunction(), and in fact inserting line breaks makes it more complicated to map line and column numbers correctly. Overall, the --harmony-function-tostring behavior only makes CompileFunctionInContext worse, so this CL removes it. R=littledan@chromium.org, adamk@chromium.org, caitp@igalia.com CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Bug: v8:4958 Change-Id: Ifbc8a83216ca6a6979da1199972aa65f4bee36c3 Reviewed-on: https://chromium-review.googlesource.com/558220Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Commit-Queue: Josh Wolfe <jwolfe@igalia.com> Cr-Commit-Position: refs/heads/master@{#46456}
-
Georg Neis authored
... so that it can be used during off-thread code assembly. R=bmeurer@chromium.org Bug: v8:6048 Change-Id: Iaa9b534b23d02da69c2b2395c1eacfdcffb3ac2f Reviewed-on: https://chromium-review.googlesource.com/561677Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46455}
-
Andreas Haas authored
Tsan figured out that I called compilation_units_.empty() outside a lock. Original message: This CL adds a new function {InitializeCompilationUnit} to initialize a single compilation unit and not just all compilation units at once. This is necessary for streaming compilation eventually. This also required some refactoring on how the working queue for compilation units works. Previously the synchronization was done with an atomic counter, now it is done with a lock. Note that the code to finish compilation of a module still only works if the working queue gets only empty when all work is done. I plan to change this in a different CL. Since the code would not be tested without streaming compilation, I added an experimental flag and a test to test the new code. R=clemensh@chromium.org, mtrofin@chromium.org Change-Id: Ia83560d1c70f0802271a88c514e0d1cb0458f6c4 Reviewed-on: https://chromium-review.googlesource.com/561458Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46454}
-
Andreas Haas authored
In the original CL I moved an error check backwards, unfortunately behind a vector lookup which should not happen when there is an error. Now I also move the vector lookup backwards. Original message: We stored the size of a function body before we check that these values are valid. This caused a failing DCHECK in the constructor of WireBytesRef which checked for integer overflows. With this CL we check the size of the function body before we create the WireBytesRef. R=clemensh@chromium.org Bug: chromium:738097 Change-Id: Ie65b3cfcbcd6bdb3f04b0760673d9c7b7a0d1057 Reviewed-on: https://chromium-review.googlesource.com/561519Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46453}
-
Pierre Langlois authored
Bug: v8:6553 Change-Id: I59203a8a81615a0d847e1cef720b5e476ab8df29 Reviewed-on: https://chromium-review.googlesource.com/544940Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#46452}
-
Sathya Gunasekaran authored
Bug: v8:5536 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Icec1f77c6073e1e89210e71ad20044e09594209e Reviewed-on: https://chromium-review.googlesource.com/548987Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#46451}
-
jgruber authored
This CL adds a few transformations that clean up the set of reported source ranges. Duplicates, empty, and uncovered ranges are removed, and nested/consecutive ranges are merged if possible. BUG=v8:6000 Change-Id: I421ee35ce8292cfe84c1eea4f653762cea5d909d Reviewed-on: https://chromium-review.googlesource.com/558411Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46450}
-
Camillo Bruni authored
Due to the dictionary refactoring we ended up calling the superclass' helper which in turn made us decode the values wrongly for the GlobalDictionary. Change-Id: I4298b6a437ef2d84b69b7e980470c3cf5af79944 Reviewed-on: https://chromium-review.googlesource.com/561701Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46449}
-
Camillo Bruni authored
Change-Id: Ib94838e8c6991348dd6c324c55d8996e9e675e20 Reviewed-on: https://chromium-review.googlesource.com/561698Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46448}
-
Clemens Hammacher authored
R=ahaas@chromium.org Change-Id: I41920c8266068722549aa3755ef9169d8cd33b66 Reviewed-on: https://chromium-review.googlesource.com/561004Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46447}
-
Michael Lippautz authored
Replaces the old PromotionQueue that was kept at the end of to space. This change allows a future implementation to use (a) a thread-local promotion list and (b) enables work stealing for concurrent scenarios. Bug: chromium:738865 Change-Id: I4c983a36e69ad4a9462eb9a59f586a85e51acbde Reviewed-on: https://chromium-review.googlesource.com/561141 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46446}
-
Michael Achenbach authored
This reverts commit 6c8aed76. Reason for revert: Breaks some debug bots: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/16754 https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/17654 Original change's description: > [wasm] Check the size of a function body before storing it > > We stored the size of a function body before we check that > these values are valid. This caused a failing DCHECK in the constructor > of WireBytesRef which checked for integer overflows. With this CL we > check the size of the function body before we create the WireBytesRef. > > R=clemensh@chromium.org > > Bug: chromium:738097 > Change-Id: I18f8b628c1499aae9c8e9340ea73c87f19e6f1d7 > Reviewed-on: https://chromium-review.googlesource.com/561000 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46442} TBR=ahaas@chromium.org,clemensh@chromium.org Change-Id: Ifd533c0dee369c746bc97fea13275ebc09ed5eff No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:738097 Reviewed-on: https://chromium-review.googlesource.com/561517Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46445}
-
Maya Lekova authored
- Check for value map in favour of value instance type Bug: v8:6557 Change-Id: I820267a87c169143d7a3c567d6c9508bae492350 Reviewed-on: https://chromium-review.googlesource.com/561358 Commit-Queue: Maya Lekova <mslekova@google.com> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46444}
-