- 27 Apr, 2017 1 commit
-
-
Jochen Eisinger authored
Instructions after an unconditional jump can be omitted. BUG=chromium:715582 R=bradnelson@chromium.org,verwaest@chromium.org TBR=bradnelson@chromium.org Change-Id: Ie4f4041ed836f328955a0ff396e2dfd6adc01513 Reviewed-on: https://chromium-review.googlesource.com/487983 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#44923}
-
- 26 Apr, 2017 6 commits
-
-
Adam Klein authored
Clearing out the constructor field is invalid in the case where the function's map has transitioned since the last SetPrototype call. Bug: chromium:714972 Change-Id: Ie918702a128219c4995b805f7c9a53b41cc4e4b6 Reviewed-on: https://chromium-review.googlesource.com/486130 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#44906}
-
Michael Starzinger authored
This fixes the bounds checking of "unsigned" numeric literals (those that do not contains dots) by the parser. In particular this fixes a bogus truncation to 32-bit in the scanner. It also makes the scanner more robust by limiting the range of those numeric literals, hence completely avoiding rounding loss or truncation errors. R=clemensh@chromium.org TEST=unittests/AsmJsScannerTest.UnsignedNumbers BUG=v8:6298 Change-Id: Id31ab3c652e99fa8d3d6663315768e1bfaf3b773 Reviewed-on: https://chromium-review.googlesource.com/486881Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44890}
-
bmeurer authored
Only create a singleton array for Array(len) if Type(len) cannot be Number, otherwise we might need to throw an exception instead. BUG=chromium:715404 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2838123004 Cr-Commit-Position: refs/heads/master@{#44886}
-
bmeurer authored
BUG=chromium:715151 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2839873004 Cr-Commit-Position: refs/heads/master@{#44881}
-
yangguo authored
R=jarin@chromium.org BUG=chromium:714696 Review-Url: https://codereview.chromium.org/2838143002 Cr-Original-Commit-Position: refs/heads/master@{#44854} Committed: https://chromium.googlesource.com/v8/v8/+/87b5b53f6f3321ad33b15e686590da7b57df2ff9 Review-Url: https://codereview.chromium.org/2838143002 Cr-Commit-Position: refs/heads/master@{#44880}
-
cwhan.tunz authored
- Throw TypeError in ValidateTypedArray, matching JSC, SpiderMonkey and ChakraCore. - Validate typed arrays at start of each typed array prototype methods in src/js/typedarrays.js - Add tests to check detached buffers - Remove an unnecessary parameter of TypedArraySpeciesCreate in src/js/typedarrays.js - Standardize TypedArray.prototype.subarray - Update test262.status to pass detached buffer tests Reland of https://codereview.chromium.org/2778623003 BUG=v8:4648, v8:4665, v8:4953 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2827443002 Cr-Commit-Position: refs/heads/master@{#44878}
-
- 25 Apr, 2017 5 commits
-
-
Michael Achenbach authored
This reverts commit 28930128. Reason for revert: GC stress failures: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/12958 Original change's description: > [runtime] Keep FAST_SLOPPY_ARGUMENTS packed > > With this CL SloppyArguments immediately go to dictionary elements on > deletion, keeping the arguments backing store packed. > > Bug: v8:6251 > Change-Id: I2afa4fb5f0af9942eee0a1606942f5f289539330 > Reviewed-on: https://chromium-review.googlesource.com/480379 > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#44857} TBR=jkummerow@chromium.org,cbruni@chromium.org,v8-reviews@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I9482bf693a745d1301d068869ddae39f11143827 Reviewed-on: https://chromium-review.googlesource.com/486885Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#44863}
-
Camillo Bruni authored
With this CL SloppyArguments immediately go to dictionary elements on deletion, keeping the arguments backing store packed. Bug: v8:6251 Change-Id: I2afa4fb5f0af9942eee0a1606942f5f289539330 Reviewed-on: https://chromium-review.googlesource.com/480379 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#44857}
-
yangguo authored
Revert of [d8] console methods must not throw. (patchset #1 id:1 of https://codereview.chromium.org/2838143002/ ) Reason for revert: Breaks no-intl builds. Original issue's description: > [d8] console methods must not throw. > > R=jarin@chromium.org > BUG=chromium:714696 > > Review-Url: https://codereview.chromium.org/2838143002 > Cr-Commit-Position: refs/heads/master@{#44854} > Committed: https://chromium.googlesource.com/v8/v8/+/87b5b53f6f3321ad33b15e686590da7b57df2ff9 TBR=jarin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:714696 Review-Url: https://codereview.chromium.org/2840853002 Cr-Commit-Position: refs/heads/master@{#44856}
-
yangguo authored
R=jarin@chromium.org BUG=chromium:714696 Review-Url: https://codereview.chromium.org/2838143002 Cr-Commit-Position: refs/heads/master@{#44854}
-
Michael Starzinger authored
This fixes propagation of validation failures that happen during the validation of a heap access expression in {ValidateHeapAccess}. R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-714971 BUG=chromium:714971 Change-Id: I8f91ac1da34ae50fdde2938f61b6468cdac92b6e Reviewed-on: https://chromium-review.googlesource.com/486801Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44851}
-
- 24 Apr, 2017 4 commits
-
-
jkummerow authored
In general, deleting a property from a fast-properties object requires transitioning the object to dictionary mode. However, when the most-recently-added property is deleted, we can simply roll back the last map transition that the object went through. This is a performance experiment: it should make things faster, but if it turns out to have more negative than positive impact, we will have to revert it. TBR=bmeurer@chromium.org (just adding a comment) Previously reviewed at https://codereview.chromium.org/2830093002 Previously landed as 98acfb36 / r44799 Review-Url: https://codereview.chromium.org/2840583002 Cr-Commit-Position: refs/heads/master@{#44808}
-
machenbach authored
Revert of [builtins] DeleteProperty: Handle last-added fast properties (patchset #2 id:20001 of https://codereview.chromium.org/2830093002/ ) Reason for revert: Breaks: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/12920 and https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/10281 Original issue's description: > [builtins] DeleteProperty: Handle last-added fast properties > > In general, deleting a property from a fast-properties object > requires transitioning the object to dictionary mode. However, > when the most-recently-added property is deleted, we can simply > roll back the last map transition that the object went through. > > This is a performance experiment: it should make things faster, > but if it turns out to have more negative than positive impact, > we will have to revert it. > > TBR=bmeurer@chromium.org (just adding a comment) > > Review-Url: https://codereview.chromium.org/2830093002 > Cr-Commit-Position: refs/heads/master@{#44799} > Committed: https://chromium.googlesource.com/v8/v8/+/98acfb36e1acf2ab52ab6b6439eb6356c83dcda6 TBR=ishell@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2843473002 Cr-Commit-Position: refs/heads/master@{#44806}
-
Michael Starzinger authored
This makes sure that typed array constructors (e.g. Int8Array, ...) used within an asm.js module are considered uses of stdlib values, and hence are checked during module instantiation. R=clemensh@chromium.org TEST=mjsunit/regress/regress-6280 BUG=v8:6280,chromium:714537 Change-Id: Ic5d689f5319c4dac4e9df3dca4a8cf5a4edd890b Reviewed-on: https://chromium-review.googlesource.com/485521 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44800}
-
jkummerow authored
In general, deleting a property from a fast-properties object requires transitioning the object to dictionary mode. However, when the most-recently-added property is deleted, we can simply roll back the last map transition that the object went through. This is a performance experiment: it should make things faster, but if it turns out to have more negative than positive impact, we will have to revert it. TBR=bmeurer@chromium.org (just adding a comment) Review-Url: https://codereview.chromium.org/2830093002 Cr-Commit-Position: refs/heads/master@{#44799}
-
- 21 Apr, 2017 1 commit
-
-
Igor Sheludko authored
Ensure source map is not stable if elements kind transitions are expected. BUG=chromium:700733 Change-Id: Ie937e7064127250b1100109986c3e9b411fae1d6 Reviewed-on: https://chromium-review.googlesource.com/483442Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#44780}
-
- 20 Apr, 2017 1 commit
-
-
Eric Holk authored
The included test case illustrates the problem. It subtracts (16 << 27) from another number. The Machine Operator Reducer would replace the shift computation with 0x0000000080000000, and then change the subtract to an add of -(0x0000000080000000), which is 0xffffffff80000000. The instruction selector would determine that this value could be an immediate, because it fits in 32 bits, so it would select the lea instruction. Finally, the code generator would detect that the immediate was less than 0, flip the sign and replace the add with a subtract of 0x80000000. Because the x64 subtract instruction's immediate field is 32 bits, the processor would interpret this as 0xffffffff80000000 instead of an unsigned value. This change fixes the issue by making the CanBeImmediate check explicitly compare against INT_MIN and INT_MAX. We disallow INT_MIN as an immediate precisely because we cannot tell 0x0000000080000000 from 0xffffffff80000000 when truncated to 32 bits. Bug: chromium:711203 Change-Id: Ie371b8ea290684a6bb723bae9c693a866f961850 Reviewed-on: https://chromium-review.googlesource.com/482448 Commit-Queue: Eric Holk <eholk@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#44758}
-
- 19 Apr, 2017 1 commit
-
-
bmeurer authored
The typing rule for JSCreateArguments must properly declare rest parameters as arrays and only consider sloppy and strict arguments objects as Type::OtherObject. TBR=jarin@chromium.org BUG=v8:6262,chromium:712802 Review-Url: https://codereview.chromium.org/2828573004 Cr-Commit-Position: refs/heads/master@{#44712}
-
- 18 Apr, 2017 4 commits
-
-
Adam Klein authored
When --harmony-strict-legacy-accessor-builtins is enabled, it brings V8's behavior in line with the spec and more recent versions of SpiderMonkey and JSC: - No implicit receiver coercion - Attempting to redefine a non-configurable property throws Bug: v8:5070 Change-Id: I82b927538604136c0c550e19bcc606fbfea1377e Reviewed-on: https://chromium-review.googlesource.com/478312Reviewed-by:
Daniel Ehrenberg <littledan@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#44703}
-
mtrofin authored
+ additional fixes uncovered by bug, and addressed remaining feedback from original CL (https://codereview.chromium.org/2806073002/). Note that the regression test differs slightly from the bug reported one, in that it catches the RangeError which will eventually be thrown due to call stack size being exceeded. BUG=chromium:712569 Review-Url: https://codereview.chromium.org/2825073002 Cr-Commit-Position: refs/heads/master@{#44700}
-
Michael Starzinger authored
This fixes the de-duplication logic used when writing the deoptimizer translation of a frame-state containing {kArgumentsElementsState}. The object counts as a captured object and participates in the numbering of duplicated objects. R=jarin@chromium.org TEST=mjsunit/regress/regress-crbug-711166 BUG=chromium:711166 Change-Id: I4a3b892017ab8217197e5f94c1a0975d0cd6979f Reviewed-on: https://chromium-review.googlesource.com/476631 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#44692}
-
gdeepti authored
Currently when the module has memory specified in the compiled bytes, but with no initial memory exported memory assigns a bogus buffer to the instance. When grow_memory is called on this buffer, it tries to patch an incorrect address. - Fix exported memory to handle no initial memory - Fix grow_memory to handle uninitialized buffers BUG=chromium:710844 R=bradnelson@chromium.org Review-Url: https://codereview.chromium.org/2820223002 Cr-Commit-Position: refs/heads/master@{#44671}
-
- 17 Apr, 2017 1 commit
-
-
Josh Wolfe authored
Bug=chromium:707066 R=littledan@chromium.org, adamk@chromium.org, caitp@igalia.com CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Change-Id: I24ce0a08816940ef4646d0f2de188d4832c823a0 Reviewed-on: https://chromium-review.googlesource.com/474990Reviewed-by:
Daniel Ehrenberg <littledan@chromium.org> Commit-Queue: Josh Wolfe <jwolfe@igalia.com> Cr-Commit-Position: refs/heads/master@{#44668}
-
- 13 Apr, 2017 2 commits
-
-
Sathya Gunasekaran authored
If the current context is overwritten by doing Realm.navigate(0) we fail to delete the module embedder data from the correct current context, because we have an handle to the old context which was already cleaned up by calling DisposeRealm in RealmNavigate. This patch disallows navigation to the first realm. Bug: chromium:711165 Change-Id: I6b9d3187367dae9d1fe38c0efa361d461c94c917 Reviewed-on: https://chromium-review.googlesource.com/476970Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#44656}
-
Michael Starzinger authored
This fixes the existing lowering of {JSGetSuperConstructor} nodes to unconditional throws. The above operator is marked as {kNoWrite} but runtime calls are not marked as such. Any deoptimizing operation after the throw would not be able to find a valid {Checkpoint}. We remove the lowering case in question. R=bmeurer@chromium.org TEST=mjsunit/regress/regress-6248 BUG=v8:6248 Change-Id: I22c922947336254502f698b02f944cf35dd8688a Reviewed-on: https://chromium-review.googlesource.com/476570Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44632}
-
- 12 Apr, 2017 3 commits
-
-
bmeurer authored
The hole NaN should also have proper Type::Hole, and not silently hide in the Type::Number. This way we can remove all the special casing for the hole NaN, and we also finally get the CheckNumber right. This also allows us to remove some ducktape from the Deoptimizer, as for escape analyzed FixedDoubleArrays we always pass the hole value now to represent the actual holes. Also-By: jarin@chromium.org BUG=chromium:684208,chromium:709753,v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2814013003 Cr-Commit-Position: refs/heads/master@{#44603}
-
jgruber authored
RationalizeConsecutiveAtoms optimizes ab|ac|az to a(?:b|c|d). Ensure that this optimization does not split surrogate pairs in unicode mode. BUG=chromium:641091 Review-Url: https://codereview.chromium.org/2813893002 Cr-Commit-Position: refs/heads/master@{#44599}
-
bmeurer authored
As of crrev.com/2760213003, the CheckBounds operator passes a truncation that identfies zero and minus zero. However that was not reflected in the typing rule, and as such the type of CheckBounds(-0,length) was always Type::None. That confused the typed alias analysis in the LoadElimination and led to ignoring StoreElement nodes. BUG=chromium:708050 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2812013006 Cr-Commit-Position: refs/heads/master@{#44598}
-
- 11 Apr, 2017 1 commit
-
-
Michael Starzinger authored
This fixes {JSCreateLowering} to traverse boilerplate objects in the same order the runtime uses (i.e. properties first, elements second). That order is hard-coded in the nesting of {AllocationSite} objects. R=bmeurer@chromium.org TEST=mjsunit/regress/regress-crbug-709537 BUG=chromium:709537 Change-Id: I8f446a0880448ea88a3e242e92d11d611581a42b Reviewed-on: https://chromium-review.googlesource.com/474028Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44563}
-
- 10 Apr, 2017 5 commits
-
-
Peter Marshall authored
We assumed that every JSArray would have a JSObject as a prototype, but it could be null, in which case we bail out to slow path. Also rename spread_array variable here, because this fast-path isn't just used by spreads anymore. Bug: chromium:707675 Change-Id: I8045d83977735dd00c3ebde2e0704f6b04afdedd Reviewed-on: https://chromium-review.googlesource.com/472907Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#44531}
-
jgruber authored
Loading the map, performing a side-effect, and then using the stored pointer for the fast-path check is another antipattern that can lead to unintended shapes on the fast path. BUG=chromium:709029 Review-Url: https://codereview.chromium.org/2807153002 Cr-Commit-Position: refs/heads/master@{#44528}
-
mtrofin authored
Ensuring we move forward all the deferred handles, in all cases. BUG= Review-Url: https://codereview.chromium.org/2807013002 Cr-Commit-Position: refs/heads/master@{#44525}
-
Clemens Hammacher authored
We went on decoding the next section, which happened to be the start section. But since the function section had an error, the signature pointer was not still {nullptr} on the start function, leading to a segfault. Drive-by fix: Improve decoder trace output. R=ahaas@chromium.org BUG=chromium:708714, chromium:708787 Change-Id: I5ae2adb32764b9d154f1ca878019f26ac31839b4 Reviewed-on: https://chromium-review.googlesource.com/472847Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44521}
-
Marja Hölttä authored
The DCHECK added by https://chromium-review.googlesource.com/461827 was not true in case we failed to compile the function. BUG=chromium:708598 Change-Id: I6a542c3ac6281c0549396b4ff0af34ea44450006 Reviewed-on: https://chromium-review.googlesource.com/472826Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44513}
-
- 07 Apr, 2017 1 commit
-
-
Clemens Hammacher authored
The format of the name section changed recently. It now contains subsections of different type (currently for function names or local variable names). This CL changes our internal wasm module builders (in JS and C++) to emit this new format, and changes the decoder to understand it. We currently only parse the function name section, and ignore names of local variables. I will later extend this to parse local variable names when needed for debugging. R=ahaas@chromium.org, rossberg@chromium.org BUG=v8:6222 Change-Id: I2627160c25c9209a3f09abe0b88941ec48b24434 Reviewed-on: https://chromium-review.googlesource.com/470247 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Rossberg <rossberg@chromium.org> Cr-Commit-Position: refs/heads/master@{#44492}
-
- 06 Apr, 2017 3 commits
-
-
jgruber authored
This fixes behavior for HeapNumber {index} arguments passed to AdvanceStringIndex. Previously, we'd blindly treat {index} as a Smi. Passing a HeapNumber instead would result in a Smi addition on the tagged HeapNumber pointer. BUG=chromium:709015 Review-Url: https://codereview.chromium.org/2798933003 Cr-Commit-Position: refs/heads/master@{#44458}
-
jgruber authored
This CL fixes two more cases in which a regexp could unintentionally transition to slow mode while on the fast path, leading to possible OOB accesses of lastIndex. In both cases, the fix is to re-check the shape and possibly bail to runtime. BUG=chromium:708247,v8:6210 Review-Url: https://codereview.chromium.org/2803603005 Cr-Commit-Position: refs/heads/master@{#44451}
-
jgruber authored
BUG=v8:5437,chromium:708247 Review-Url: https://codereview.chromium.org/2797993002 Cr-Commit-Position: refs/heads/master@{#44428}
-
- 05 Apr, 2017 1 commit
-
-
Michael Starzinger authored
This fixes a corner case which allowed warnings during the asm.js instantiation to be promoted to actual exceptions. Even instantiation attempts that fail are not allowed to throw exceptions observable by JavaScript, but need to fall back to JavaScript execution. R=clemensh@chromium.org TEST=mjsunit/regress/regress-6203 BUG=v8:6203 Change-Id: I86f5a3adda4bcfe63b5cddc42d8ae1c3dbb88147 Reviewed-on: https://chromium-review.googlesource.com/468808 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44414}
-