Commit Graph

33692 Commits

Author SHA1 Message Date
franzih
260d0f1c19 [api] Improve documentation for NamedPropertySetterCallback.
BUG=v8:5260

Review-Url: https://codereview.chromium.org/2269053002
Cr-Commit-Position: refs/heads/master@{#38950}
2016-08-26 16:48:58 +00:00
franzih
5aa7230516 [api] Add documentation for PropertyCallbackInfo.This().
BUG=v8:5260

Review-Url: https://codereview.chromium.org/2278523002
Cr-Commit-Position: refs/heads/master@{#38949}
2016-08-26 16:15:55 +00:00
jbroman
864728085d Blink-compatible serialization of ArrayBuffer transfer.
The embedder is expected to arrange for the array buffer contents to be
transferred into a v8::ArrayBuffer in the receiving context (generally by
assuming ownership of the externalized backing store).

BUG=chromium:148757

Review-Url: https://codereview.chromium.org/2275033003
Cr-Commit-Position: refs/heads/master@{#38948}
2016-08-26 15:47:41 +00:00
franzih
7a57dd1540 [api] Add documentation for PropertyCallbackInfo.
BUG=v8:5260

Review-Url: https://codereview.chromium.org/2263303003
Cr-Commit-Position: refs/heads/master@{#38947}
2016-08-26 15:29:21 +00:00
jochen
64b6557886 Remove confusing (and apparently wrong) DCHECK from ScopeInfo::Create
We should always only have exactly as many heap slots as context locals

R=verwaest@chromium.org,marja@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2280883002
Cr-Commit-Position: refs/heads/master@{#38946}
2016-08-26 14:12:14 +00:00
mstarzinger
9c8f4775bd [deoptimizer] Fix for non-topmost interpreted frame.
The accumulator is always part of the translation for every interpreted
frame. The assumption is that all frames are in {TOS_REGISTER} state.
This however is not supported for non-topmost frames and we need to
avoid pushing the accumulator onto the machine stack.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2271153003
Cr-Commit-Position: refs/heads/master@{#38945}
2016-08-26 13:12:32 +00:00
Miran.Karic
3683344608 MIPS: Remove r6 DCHECKs for NEG.fmt instruction
These DCHECKs were causing several test failures or r6. They should not
be here because only NEG.PS format was removed in r6, NEG.S and NEG.D
instructions remain.

BUG=

Review-Url: https://codereview.chromium.org/2276563006
Cr-Commit-Position: refs/heads/master@{#38944}
2016-08-26 12:51:05 +00:00
Miran.Karic
c37f6f02ed MIPS: Use neg instruction in r6
Floating point negate instructions are still present in release 6, only
one format of neg is removed, NEG.PS. Others formats can be used and in
r6 they also change the sign of NaN-like operands as well. This makes r6
generated code simpler for Neg_d and Neg_s macroassembler functions.

BUG=

Review-Url: https://codereview.chromium.org/2285703002
Cr-Commit-Position: refs/heads/master@{#38943}
2016-08-26 12:49:46 +00:00
mlippautz
2059fb0ba6 [api] Use handle for ConfigureInstance
BUG=chromium:641267
R=verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2283713002
Cr-Commit-Position: refs/heads/master@{#38942}
2016-08-26 12:35:52 +00:00
ivica.bogosavljevic
db56339952 MIPS: Fix crahses of tests unittests/AstDecoderTest.Float[32|64]Const
on architectures that do not support missaligned memory access

BUG=unittests/AstDecoderTest.Float64Const, unittests/AstDecoderTest.Float32Const

Review-Url: https://codereview.chromium.org/2275323002
Cr-Commit-Position: refs/heads/master@{#38941}
2016-08-26 12:29:54 +00:00
mlippautz
bb4974d186 [heap] Properly propagate allocated space during new space evacuaton in MC
New space evaucation in MC supports, similar to scavenges, fall back allocation
in old space.

For new space evacuation we support stick and non-sticky modes for fallback. The
sticky mode essentially removes the capability to allocate in new space while
the non-sticky mode only falls back for a single allocation.

We use the non-sticky mode for allocations that are too large for a LAB but
should still go in new space. When such an allocation fails in new space, we
allocate in old space in non-sticky mode as we would still like to reuse the
remainder memory in new space. However, in such a case we fail to properly
report the space allocated in resulting in a missed recorded slot.

BUG=chromium:641270
R=ulan@chromium.org

Review-Url: https://codereview.chromium.org/2280943002
Cr-Commit-Position: refs/heads/master@{#38940}
2016-08-26 12:27:29 +00:00
mstarzinger
80ae1b37b4 [test] Remove CompilationInfo from test-field-type-tracking.
R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2286593003
Cr-Commit-Position: refs/heads/master@{#38939}
2016-08-26 11:35:44 +00:00
ahaas
25cdfd79a4 [wasm] Remove the Float(32|64)SubMinusZero tests.
These tests became obsolete. They tested a requirement that has been
removed from the WebAssembly specification.

R=titzer@chromium.org, Balazs.Kilvady@imgtec.com

Review-Url: https://codereview.chromium.org/2284593002
Cr-Commit-Position: refs/heads/master@{#38938}
2016-08-26 10:04:03 +00:00
jkummerow
3e809a6129 Fix compiler warnings on "make android_arm"
Review-Url: https://codereview.chromium.org/2264283007
Cr-Commit-Position: refs/heads/master@{#38937}
2016-08-26 09:53:55 +00:00
ahaas
71f93e6001 [wasm] Bound the allowed number of locals.
This CL fixes the first bug I found with the new fuzzing. The problem is
that the number of locals is unbounded. This CL bounds the number of
locals of one type with 8000000, an arbitrary number.

R=titzer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2271803004
Cr-Commit-Position: refs/heads/master@{#38936}
2016-08-26 09:13:22 +00:00
mstarzinger
e53d2acec1 [compiler] Remove default argument for code flags.
R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2281863002
Cr-Commit-Position: refs/heads/master@{#38935}
2016-08-26 09:04:23 +00:00
nikolaos
8ce4475103 [parser] Eliminate ExpressionClassifier::MergeNonPatterns
A minor change in the logic of expression classifiers that
eliminates the use for MergeNonPatterns.

R=adamk@chromium.org, littledan@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2275313002
Cr-Commit-Position: refs/heads/master@{#38934}
2016-08-26 08:57:48 +00:00
marja
fc6425c56a Include only stuff you need, part 5: make function-tester.h slimmer.
Rebuilding (after touching certain files) is crazy slow because
includes are out of control. Many of these files we need to rebuild are
cctests which pull in more includes than they need.

BUG=v8:5294

Review-Url: https://codereview.chromium.org/2278103002
Cr-Commit-Position: refs/heads/master@{#38933}
2016-08-26 08:41:38 +00:00
bmeurer
76f740b264 [turbofan] Introduce a dedicated ArrayBufferWasNeutered operator.
Using the dedicated simplified operator we are able to eliminate
redundant neuterung checks as long as there is no call in the
effect chain. This yields a nice speed up for the Octane Mandreel
benchmark (and TypedArray-heavy workloads in general).

R=jarin@chromium.org
BUG=v8:5267

Review-Url: https://codereview.chromium.org/2279213002
Cr-Commit-Position: refs/heads/master@{#38932}
2016-08-26 08:35:00 +00:00
neis
04d8112036 [modules] Minor refactorings in scopes and scopeinfos.
R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2275943005
Cr-Commit-Position: refs/heads/master@{#38931}
2016-08-26 08:31:14 +00:00
mlippautz
a4a4e7fa97 [heap] GCTracer: Properly reset all members for unittests
BUG=chromium:639818
R=jochen@chromium.org

Review-Url: https://codereview.chromium.org/2279193002
Cr-Commit-Position: refs/heads/master@{#38930}
2016-08-26 08:10:50 +00:00
jochen
8d6554bde0 Revert of Add debug code to catch faulty interceptor (patchset #1 id:1 of https://codereview.chromium.org/2265903002/ )
Reason for revert:
found the culprit

Original issue's description:
> Add debug code to catch faulty interceptor
>
> BUG=chromium:625155
> R=jkummerow@chromium.org
>
> Committed: https://crrev.com/d181e6e1e6f95ee9c8005a2ad0fc846142dc8aad
> Cr-Commit-Position: refs/heads/master@{#38775}

TBR=jkummerow@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:625155

Review-Url: https://codereview.chromium.org/2282663002
Cr-Commit-Position: refs/heads/master@{#38929}
2016-08-26 08:00:34 +00:00
bmeurer
f154c75a39 [turbofan] Separate typed optimizations from JSTypedLowering.
Introduce a new TypedOptimization reducer that contains the type
based optimization reduction steps, which are not (directly)
related to lowering JavaScript operators based on types (which is
what JSTypedLowering is supposed to do).

This also addresses a chicken-and-egg problem that we see in the
Octane/Mandreel benchmark where type based constant folding isn't
applied to the numeric comparison operators introduced by the
JSTypedLowering itself, and thus gives up to 10% speedup for the
benchmark.

BUG=v8:5267

Review-Url: https://codereview.chromium.org/2280673003
Cr-Commit-Position: refs/heads/master@{#38928}
2016-08-26 07:58:30 +00:00
nikolaos
58cfe4d618 [parser] Clean up type definitions
This patch:

1. Removes the unecessary inheritance of ParserBaseTraits<Impl>
   in ParserBase<Impl>.
2. Flattens ParserBaseTraits<Impl> and renames it to
   ParserTypes<Impl>.  The Traits parameter/member is renamed to
   Types.
3. Removes unecessary v8::internal:: qualifications from parser
   types.

R=adamk@chromium.org, marja@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2279773002
Cr-Commit-Position: refs/heads/master@{#38927}
2016-08-26 07:46:05 +00:00
mstarzinger
b143cb09d0 [compiler] Remove inclusion of inline header file.
R=marja@chromium.org

Review-Url: https://codereview.chromium.org/2281543002
Cr-Commit-Position: refs/heads/master@{#38926}
2016-08-26 07:37:42 +00:00
verwaest
4c5c0d83e4 Simply use the variable index to put them into the right ScopeInfo slot rather than sorting
This interleaves setting names and values in the scope info. It's a little messy since globals and locals are interleaved, but afaiu globals is going away.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2272293004
Cr-Commit-Position: refs/heads/master@{#38925}
2016-08-26 07:07:34 +00:00
neis
a45d106db0 [modules] Rename ModuleDescriptor::ModuleEntry to ModuleDescriptor::Entry.
R=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2278973002
Cr-Commit-Position: refs/heads/master@{#38924}
2016-08-26 07:04:21 +00:00
jochen
96886dc735 Add marja to ast owners
R=verwaest@chromium.org,adamk@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2281443003
Cr-Commit-Position: refs/heads/master@{#38923}
2016-08-26 05:30:37 +00:00
adamk
26fbac4b37 Merge ExpressionClassifier::ObjectLiteralProduction into ExpressionProduction
They are both accumulated at the same time, and either one already triggered
an error in ValidateExpression. Basically, there were no disjoint uses of
these two error types.

Review-Url: https://codereview.chromium.org/2268173005
Cr-Commit-Position: refs/heads/master@{#38922}
2016-08-26 00:02:54 +00:00
jochen
1937d90085 Fully setup the catch variable for catch scopes
If the parser creates a catch scope, the variable is also added to
ordered_variables_ so just always do that.

Otherwise, it's not possible to create a ScopeInfo for that catch scope

R=verwaest@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2278963002
Cr-Commit-Position: refs/heads/master@{#38921}
2016-08-25 20:45:11 +00:00
verwaest
5558a50878 Merge DeclarationScope::temps_ and Scope::ordered_variables_ into Scope::locals_
BUG=v8:5209

Review-Url: https://codereview.chromium.org/2272083003
Cr-Commit-Position: refs/heads/master@{#38920}
2016-08-25 19:12:00 +00:00
baptiste.afsa
f93ca29cac [turbofan] Instruction scheduler: keep ready nodes list sorted by latency.
This significantly speed-up the instruction scheduler when the ready list
contains a large number of instruction.

R=jarin@chromium.org, bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2281523002
Cr-Commit-Position: refs/heads/master@{#38919}
2016-08-25 18:05:17 +00:00
adamk
51c186dd98 Centralize and standardize logic for ExpressionClassifier accumulation
Previously the calls to ExpressionClassifier::Accumulate() each chose
slightly different sets of productions to accumulate, and it turned
out that these were in some cases broader than needed and in some
cases less broad.

The existence of some grab-bag production bitmasks like
ExpressionClassifier::ExpressionProductions made this situation more
error-prone (for example, that production was missing AsyncArrowFormalParametersProduction).

This patch removes all "grab-bags" besides AllProductions. In some of
the places where code was using those grab-bags for convenience, it
switches them to use negation of AllProductions. In other, specifically
those having to do with expressions that are disallowed anywhere in
a sub-expression of a parameter list, I've added a new method on
ExpressionClassifier to centralize the logic.

The aforementioned centralization/addition of
AsyncArrowFormalParametersProduction fixes several cases where we were
failing to report an error for 'await' in some contexts; I've added
those test cases.

The patch also narrows all cases to exactly the set or productions
necessary, with a comment on each explaining the choice.

BUG=v8:4483

Review-Url: https://codereview.chromium.org/2271063002
Cr-Commit-Position: refs/heads/master@{#38918}
2016-08-25 16:59:45 +00:00
jarin
2a97b1bcb1 Reland of [turbofan] Insert dummy values when changing from None type.
This reverts commit a55fdb1e7c, relands
https://codereview.chromium.org/2266823002/.

BUG=chromium:638132

Review-Url: https://codereview.chromium.org/2277283002
Cr-Commit-Position: refs/heads/master@{#38917}
2016-08-25 16:58:13 +00:00
mlippautz
2101e691ca [heap] Switch to 500k pages
Decrease regular heap object size to 400k. In a follow up, we can now get rid of
the new space border page while keeping the 1M minimum new space size.

This reverts commit 1617043c10.

BUG=chromium:636331

Review-Url: https://codereview.chromium.org/2278653003
Cr-Commit-Position: refs/heads/master@{#38916}
2016-08-25 16:26:32 +00:00
jbroman
58cac6501f Add an experimental public API for value serialization.
Suitably scary warnings attached, as this will yet evolve (notably to handle
host objects, which are not currently handled).

Unit tests adjusted to use the public version of ValueSerializer, eliminating
any need they have to access v8::internal.

With this, Blink can begin using this code experimentally behind a flag as it
develops.

BUG=chromium:148757

Review-Url: https://codereview.chromium.org/2274693002
Cr-Commit-Position: refs/heads/master@{#38915}
2016-08-25 16:00:25 +00:00
jochen
b7f796a6a4 Don't require a context for global dynamic variables
Because we don't need one.

R=verwaest@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2277303002
Cr-Commit-Position: refs/heads/master@{#38914}
2016-08-25 15:49:26 +00:00
jbroman
2646749cbc Blink-compatible serialization of ArrayBuffer.
Transferral is not included in this CL, nor is SharedArrayBuffer.

BUG=chromium:148757

Review-Url: https://codereview.chromium.org/2264403004
Cr-Commit-Position: refs/heads/master@{#38913}
2016-08-25 14:43:54 +00:00
mlippautz
3866975f1b [heap] GCTracer: Record details for incremental marking
Record details, such as cumulative duration, number of steps, and longest steps
in IncrementalMarkingDetails which get populated at a single callsite
(AddScopeSample). Remove member fields that thus become obsolete (unfortunately
not all of them).

Additional remove some dead code and refactor printing. Printing in a single
statement allows for using logcat on Android.

This should also address the regression in chromium:640524.

BUG=chromium:639818,chromium:640524
R=jochen@chromium.org

Review-Url: https://codereview.chromium.org/2269093002
Cr-Commit-Position: refs/heads/master@{#38912}
2016-08-25 14:22:42 +00:00
mstarzinger
5e8acf6301 [parser] Remove temporary include no longer needed.
R=vogelheim@chromium.org

Review-Url: https://codereview.chromium.org/2276343004
Cr-Commit-Position: refs/heads/master@{#38911}
2016-08-25 14:16:02 +00:00
jyan
54f5558d52 Implement Big-Endian eqv test for DecodeDate and DecodeValueObjects
R=jkummerow@chromium.org, jbroman@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2274173003
Cr-Commit-Position: refs/heads/master@{#38910}
2016-08-25 14:11:31 +00:00
rmcilroy
677948255b Fix CompilerDispatcherJobTest::CompileFailureToFinalize on local runs.
BUG=

Review-Url: https://codereview.chromium.org/2276343003
Cr-Commit-Position: refs/heads/master@{#38909}
2016-08-25 13:57:56 +00:00
hablich
32422eff6c Update version to 5.5
TBR=jochen@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2282453002
Cr-Commit-Position: refs/heads/master@{#38908}
2016-08-25 13:52:16 +00:00
mstarzinger
1f0c8d1e9a [deoptimizer] Remove obsolete BailoutType switches.
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2274273003
Cr-Commit-Position: refs/heads/master@{#38907}
2016-08-25 13:26:33 +00:00
bgeron
244d9ccd40 [turbofan] Tests for inlining calls, constructors, property access inside try..catch..finally.
These tests were spliced out of changelist 2216353002 and extended.

BUG=

Review-Url: https://codereview.chromium.org/2245263003
Cr-Commit-Position: refs/heads/master@{#38906}
2016-08-25 12:50:48 +00:00
mic.besace
bcac03e69b Fix compilation on BSD platforms
I could only test this with FreeBSD and OSX
(on the Node.js CI).
I don't know if the fix is correct for other BSD platforms.

Review-Url: https://codereview.chromium.org/2251603004
Cr-Commit-Position: refs/heads/master@{#38905}
2016-08-25 12:28:53 +00:00
vogelheim
5b9b44d1f6 Separate DuplicateFinder from Scanner.
DuplicateFinder isn't actually used by the Scanner, except for one
convenience function which we should probably remove, also.

BUG=

Review-Url: https://codereview.chromium.org/2281443002
Cr-Commit-Position: refs/heads/master@{#38904}
2016-08-25 11:58:17 +00:00
bmeurer
b550c07734 [compiler] Don't canonicalize handles in Crankshaft.
R=mstarzinger@chromium.org
BUG=v8:5309

Review-Url: https://codereview.chromium.org/2274253003
Cr-Commit-Position: refs/heads/master@{#38903}
2016-08-25 11:56:30 +00:00
georgia.kouveli
ede28d900c Treat all kArchNop instuctions as NOPs in jump threading.
BUG=

Review-Url: https://codereview.chromium.org/2276323002
Cr-Commit-Position: refs/heads/master@{#38902}
2016-08-25 11:49:10 +00:00
jkummerow
a9fd19f4d1 [elements, turbofan] Implement simple GrowElements
Unlike Crankshaft, Turbofan does not provide a context when trying to grow
elements. Depending on the code path we might end up updating transitioning
elements kinds in allocation sites for which we need access to the current
context. Unlike GrowCapacityAndConvert, the newly introduced GrowCapacity simply
returns false in cases where map transitions are involved.

BUG=chromium:637279

Patch by Camillo Bruni <cbruni@chromium.org>,
originally reviewed at https://codereview.chromium.org/2244983004/

Review-Url: https://codereview.chromium.org/2252393002
Cr-Commit-Position: refs/heads/master@{#38901}
2016-08-25 11:39:38 +00:00