mbrandy [Thu, 27 Aug 2015 14:01:50 +0000 (07:01 -0700)]
PPC: Make Simulator respect C stack limits as well.
Port
7fb31bdba4f2a0320507956a085f083d76bce48c
Original commit message:
The simulator uses a separate JS stack, exhaustion of the C stack
however is not caught by JS limit checks. This change now lowers the
limit of the JS stack accordingly on function calls.
R=mstarzinger@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
BUG=chromium:522380
LOG=n
Review URL: https://codereview.chromium.org/
1309303005
Cr-Commit-Position: refs/heads/master@{#30413}
mstarzinger [Thu, 27 Aug 2015 13:57:38 +0000 (06:57 -0700)]
[heap] Remove raw unchecked root set accessors.
R=hpayer@chromium.org
BUG=v8:1490
LOG=n
Review URL: https://codereview.chromium.org/
1305163007
Cr-Commit-Position: refs/heads/master@{#30412}
hpayer [Thu, 27 Aug 2015 13:28:52 +0000 (06:28 -0700)]
Wait for concurrent unmapping tasks in GC prologue.
BUG=chromium:525372
LOG=n
Review URL: https://codereview.chromium.org/
1320893002
Cr-Commit-Position: refs/heads/master@{#30411}
cbruni [Thu, 27 Aug 2015 13:05:50 +0000 (06:05 -0700)]
Adding ElementsAccessor Splice
- remove the Backing-Store specific code from builtins.cc and put it in elements.cc.
- adding tests to improve coverage of the splice method
BUG=
Review URL: https://codereview.chromium.org/
1312033003
Cr-Commit-Position: refs/heads/master@{#30410}
mstarzinger [Thu, 27 Aug 2015 12:50:31 +0000 (05:50 -0700)]
Move runtime helper for ToName conversion onto Object.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1306043003
Cr-Commit-Position: refs/heads/master@{#30409}
mstarzinger [Thu, 27 Aug 2015 12:30:03 +0000 (05:30 -0700)]
[heap] Limit friendship of the Heap class to essentials.
This makes it clear that only components within the "heap" directory
should be friends with the Heap class. The two notable exceptions are
Factory and Isolate which represent external interfaces into the heap.
R=mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1320843002
Cr-Commit-Position: refs/heads/master@{#30408}
mlippautz [Thu, 27 Aug 2015 12:16:00 +0000 (05:16 -0700)]
[heap] Add compaction space.
The CompactionSpace is temporarily used during compaction to hold migrated
objects. The payload is merged back into the corresponding space after
compaction.
Note the this is not the complete implementation and it is currently only used in a test.
BUG=chromium:524425
LOG=N
Review URL: https://codereview.chromium.org/
1314493007
Cr-Commit-Position: refs/heads/master@{#30407}
rmcilroy [Thu, 27 Aug 2015 12:13:23 +0000 (05:13 -0700)]
[interpreter] Fix gcmole error after r30404.
BUG=v8:4280
LOG=N
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
1319943002
Cr-Commit-Position: refs/heads/master@{#30406}
yangguo [Thu, 27 Aug 2015 11:13:56 +0000 (04:13 -0700)]
Remove builtin/runtime name clash presubmit check.
It has become obsolete since we do the name lookup at compile time.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1319893004
Cr-Commit-Position: refs/heads/master@{#30405}
rmcilroy [Thu, 27 Aug 2015 11:11:09 +0000 (04:11 -0700)]
[interpreter] Add constant_pool() to BytecodeArray.
Adds a (currently unused) constant_pool() field to BytecodeArray objects.
This field points to a FixedArray object which will be used to hold constants.
The BytecodeArray is now a mixed values object type, with the
kConstantPoolOffset object holding a tagged pointer, but the remainder of the
object holding raw bytes (which could look like tagged pointers but are not).
Modify the BytecodeArray GC visitors to deal with this and test that the
field is migrated properly when evacuated.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/
1314953004
Cr-Commit-Position: refs/heads/master@{#30404}
rmcilroy [Thu, 27 Aug 2015 10:32:26 +0000 (03:32 -0700)]
[Interpreter] Add support for parameter variables.
Adds support for parameters to the BytecodeArrayBuilder and BytecodeGenerator.
Parameters are accessed as negative interpreter registers.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/
1303403004
Cr-Commit-Position: refs/heads/master@{#30403}
yangguo [Thu, 27 Aug 2015 10:18:21 +0000 (03:18 -0700)]
Move (uppercase) JS builtins from js builtins object to native context.
R=bmeurer@chromium.org, mstarzinger@chromium.org, rmcilroy@chromium.org
Review URL: https://codereview.chromium.org/
1316943002
Cr-Commit-Position: refs/heads/master@{#30402}
mvstanton [Thu, 27 Aug 2015 08:52:06 +0000 (01:52 -0700)]
Vector ICs: Stop iterating the heap to clear keyed store ics.
When vector based stores are on, we don't need to do this anymore.
BUG=
Review URL: https://codereview.chromium.org/
1314433004
Cr-Commit-Position: refs/heads/master@{#30401}
mtrofin [Thu, 27 Aug 2015 04:44:33 +0000 (21:44 -0700)]
[turbofan] LiveRange splinter merging optimizations.
A few benchmarks, e.g. Massive/SQLite, turn out to be
sensitive to compile time. Upon analysis, splinter merging
and then splinter creation (splitting) appear to be the main
contributors to such regressions. This change tackles main
sources of regression in Merging. Profiling SQLite shows,
after this change, Merging as noise (down from main C++
contributor of samples)
BUG=chromium:
1318893002
LOG=n
Review URL: https://codereview.chromium.org/
1318893002
Cr-Commit-Position: refs/heads/master@{#30400}
mtrofin [Thu, 27 Aug 2015 04:41:21 +0000 (21:41 -0700)]
[turbofan] Ensure stackcheck flags do something.
While the intention is to eventually do away with
FLAG_turbo_loop_stackcheck and FLAG_turbo_preprocess_range,
they are useful for the interim we are still testing and
benchmarking the feature.
Review URL: https://codereview.chromium.org/
1314163003
Cr-Commit-Position: refs/heads/master@{#30399}
bradnelson [Wed, 26 Aug 2015 21:40:52 +0000 (14:40 -0700)]
Spliting out TyperCache into ZoneTypeCache to share with AsmTyper.
The zone type cache would be handy inside the asm.js typer.
Pulling it out into a seperate inlinable header to allow sharing.
BUG=https://code.google.com/p/v8/issues/detail?id=4203
TEST=None
R=andreas@chromium.org,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
1307093006
Cr-Commit-Position: refs/heads/master@{#30398}
mbrandy [Wed, 26 Aug 2015 21:33:10 +0000 (14:33 -0700)]
PPC: Fix InterpreterEntryTrampoline().
R=jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1315173004
Cr-Commit-Position: refs/heads/master@{#30397}
mbrandy [Wed, 26 Aug 2015 21:29:23 +0000 (14:29 -0700)]
PPC: [turbofan] Unify referencing of stack slots
Port
cbbaf9ea6abbc0417ee5765a4c58f1dda939ead0
Note that the above commit breaks embedded constant pools and will need to
be revised in a future CL.
Original commit message:
Previously, it was not possible to specify StackSlotOperands for all
slots in both the caller and callee stacks. Specifically, the region
of the callee's stack including the saved return address, frame
pointer, function pointer and context pointer could not be addressed
by the register allocator/gap resolver.
In preparation for better tail call support, which will use the gap
resolver to reconcile outgoing parameters, this change makes it
possible to address all slots on the stack, because slots in the
previously inaccessible dead zone may become parameter slots for
outgoing tail calls. All caller stack slots are accessible as they
were before, with slot -1 corresponding to the last stack
parameter. Stack slot indices >= 0 access the callee stack, with slot
0 corresponding to the callee's saved return address, 1 corresponding
to the saved frame pointer, 2 corresponding to the current function
context, 3 corresponding to the frame marker/JSFunction, and slots 4
and above corresponding to spill slots.
The following changes were specifically needed:
* Frame has been changed to explicitly manage three areas of the
callee frame, the fixed header, the spill slot area, and the
callee-saved register area.
* Conversions from stack slot indices to fp offsets all now go through
a common bottleneck: OptimizedFrame::StackSlotOffsetRelativeToFp
* The generation of deoptimization translation tables has been changed
to support the new stack slot indexing scheme. Crankshaft, which
doesn't support the new slot numbering in its register allocator,
must adapt the indexes when creating translation tables.
* Callee-saved parameters are now kept below spill slots, not above,
to support saving only the optimal set of used registers, which is
only known after register allocation is finished and spill slots
have been allocated.
R=danno@chromium.org, titzer@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1321553002
Cr-Commit-Position: refs/heads/master@{#30396}
mbrandy [Wed, 26 Aug 2015 20:13:56 +0000 (13:13 -0700)]
PPC: Fix "[turbofan] Support unboxed float and double stack parameters."
R=titzer@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1315183002
Cr-Commit-Position: refs/heads/master@{#30395}
mbrandy [Wed, 26 Aug 2015 20:08:25 +0000 (13:08 -0700)]
PPC: Cleanup: Remove unncessary leave_frame parameter from stub cache.
Port
fe432e1ace48c345c659c0bcb6a84798bca0b15e
R=mvstanton@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1321483003
Cr-Commit-Position: refs/heads/master@{#30394}
mbrandy [Wed, 26 Aug 2015 19:57:02 +0000 (12:57 -0700)]
PPC: VectorICs: New interface descriptor for vector transitioning stores.
Port
cd35155918f8f1a081a208721a878deba00a252b
R=mvstanton@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1319763004
Cr-Commit-Position: refs/heads/master@{#30393}
mbrandy [Wed, 26 Aug 2015 19:50:31 +0000 (12:50 -0700)]
PPC: [simd.js] Single SIMD128_VALUE_TYPE for all Simd128Values.
Port
f4c079d450a5990639b295d40a3d1663d70412d6
Original commit message:
There's no need to have one InstanceType per SIMD primitive type (this
will not scale long-term). Also reduce the amount of code duplication
and make it more robust wrt adding new SIMD types.
R=bmeurer@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1312513004
Cr-Commit-Position: refs/heads/master@{#30392}
mbrandy [Wed, 26 Aug 2015 19:46:39 +0000 (12:46 -0700)]
PPC: Fix "Move regexp implementation into its own folder."
R=yangguo@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1319783002
Cr-Commit-Position: refs/heads/master@{#30391}
mbrandy [Wed, 26 Aug 2015 19:45:28 +0000 (12:45 -0700)]
PPC: [compiler] Remove broken support for undetectable strings.
Port
b62dbf1efdec68ae709b0e91d3b7c13171b720c9
Original commit message:
Support for undetectable strings was officially dropped in
https://codereview.chromium.org/
916753002, but the compilers
weren't fixed properly.
R=bmeurer@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1312473012
Cr-Commit-Position: refs/heads/master@{#30390}
mstarzinger [Wed, 26 Aug 2015 15:33:25 +0000 (08:33 -0700)]
Remove named load from builtin in default super call.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1314493006
Cr-Commit-Position: refs/heads/master@{#30389}
conradw [Wed, 26 Aug 2015 14:59:05 +0000 (07:59 -0700)]
[parser] disallow language mode directive in body of function with non-simple parameters
TC39 agreed to disallow "use strict" directives in function body when
non-simple parameter lists are used.
This is a continuation of caitp's CL https://codereview.chromium.org/
1281163002/
with some refactorings removed for now.
Still TODO: there is a lot of duplication between the is_simple field of
FormalParametersBase and the NonSimpleParameter property ExpressionClassifier
keeps track of. It should be possible to remove the former with a minor
refactoring of arrow function parsing. This will be attempted in a follow-up CL.
BUG=
LOG=N
Review URL: https://codereview.chromium.org/
1300103005
Cr-Commit-Position: refs/heads/master@{#30388}
mstarzinger [Wed, 26 Aug 2015 13:59:35 +0000 (06:59 -0700)]
Move runtime helper for JSArrayBuffer onto objects.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1305383003
Cr-Commit-Position: refs/heads/master@{#30387}
conradw [Wed, 26 Aug 2015 13:39:31 +0000 (06:39 -0700)]
[es6] Make harmony_destructuring imply harmony_default_parameters
When encountering a "=" token in ParseAssignmentExpression, the default
parameter case is not locally distinguishable from the destructuring case.
BUG=
Review URL: https://codereview.chromium.org/
1317843002
Cr-Commit-Position: refs/heads/master@{#30386}
mstarzinger [Wed, 26 Aug 2015 13:18:46 +0000 (06:18 -0700)]
Move runtime helper for JSWeakCollection onto objects.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1314053003
Cr-Commit-Position: refs/heads/master@{#30385}
mstarzinger [Wed, 26 Aug 2015 12:46:10 +0000 (05:46 -0700)]
Move runtime helper for JSSet and JSMap onto objects.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1312413002
Cr-Commit-Position: refs/heads/master@{#30384}
hpayer [Wed, 26 Aug 2015 12:13:16 +0000 (05:13 -0700)]
Synchronize on concurrent store buffer entries.
BUG=chromium:524425
LOG=n
Review URL: https://codereview.chromium.org/
1313313002
Cr-Commit-Position: refs/heads/master@{#30383}
yangguo [Wed, 26 Aug 2015 12:03:56 +0000 (05:03 -0700)]
Install js intrinsic fallbacks for array functions on the native context.
R=cbruni@chromium.org
Review URL: https://codereview.chromium.org/
1309503003
Cr-Commit-Position: refs/heads/master@{#30382}
wingo [Wed, 26 Aug 2015 11:59:34 +0000 (04:59 -0700)]
In generators, "yield" cannot be an arrow formal parameter name
Thanks to André Bargull for the report.
BUG=v8:4212
LOG=N
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1309523005
Cr-Commit-Position: refs/heads/master@{#30381}
bmeurer [Wed, 26 Aug 2015 11:27:58 +0000 (04:27 -0700)]
[runtime] Remove the redundant %_IsObject intrinsic.
%_IsObject(foo) is equivalent to typeof foo === 'object' and has
exactly the same optimizations, so there's zero need for %_IsObject
in our code base.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
1313903003
Cr-Commit-Position: refs/heads/master@{#30380}
yangguo [Wed, 26 Aug 2015 11:16:38 +0000 (04:16 -0700)]
Call JS functions via native context instead of js builtins object.
We look up %-functions in the context if not found in the runtime.
R=bmeurer@chromium.org, mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
1306993003
Cr-Commit-Position: refs/heads/master@{#30379}
mvstanton [Wed, 26 Aug 2015 10:47:49 +0000 (03:47 -0700)]
Vector ICs: Ensure KeyedAccessStore mode is encoded in all handlers.
For vector-based keyed store ics, we need to know the current
KeyedAccessStore mode on ic MISS, and to produce optimized code.
We can't store this mode, which can change on any MISS in the IC
without patching. Therefore, this CL makes sure that the information is
redundantly available in the handlers embedded in the IC. This way,
when --vector-stores is turned on, we'll be able to extract that
information from the vector which maintains a list of these handlers.
BUG=
Review URL: https://codereview.chromium.org/
1312693004
Cr-Commit-Position: refs/heads/master@{#30378}
mstarzinger [Wed, 26 Aug 2015 10:25:19 +0000 (03:25 -0700)]
[heap] User safer root set accessor when possible.
R=mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1312763006
Cr-Commit-Position: refs/heads/master@{#30377}
chunyang.dai [Wed, 26 Aug 2015 09:56:37 +0000 (02:56 -0700)]
X87: Correctify instanceof and make it optimizable.
port
5d875a57fa2e65c1a4a6b50aeb23c38299c3cfbc (r30342).
original commit message:
The previous hack with HInstanceOfKnownGlobal was not only slower,
but also very brittle and required a lot of weird hacks to support it. And
what's even more important it wasn't even correct (because a map check
on the lhs is never enough for instanceof).
The new implementation provides a sane runtime implementation
for InstanceOf plus a fast case in the InstanceOfStub, combined with
a proper specialization in the case of a known global in CrankShaft,
which does only the prototype chain walk (coupled with a code
dependency on the known global).
As a drive-by-fix: Also fix the incorrect Object.prototype.isPrototypeOf
implementation.
R=weiliang.lin@intel.com
BUG=
Review URL: https://codereview.chromium.org/
1318663003
Cr-Commit-Position: refs/heads/master@{#30376}
mstarzinger [Wed, 26 Aug 2015 09:52:59 +0000 (02:52 -0700)]
[turbofan] Fix broken dynamic TDZ check for let and const.
This fixes broken dynamic hole-checks for the temporal dead zone of
non-initializing assignments to {let} and {const} declared variables.
Also note that this exemplifies a case where the dynamic check for such
assignments to {let} declared variables can no longer be elided as the
comment suggested.
R=rossberg@chromium.org
TEST=mjsunit/regress/regress-4388
BUG=v8:4388
LOG=n
Review URL: https://codereview.chromium.org/
1318693002
Cr-Commit-Position: refs/heads/master@{#30375}
ishell [Wed, 26 Aug 2015 09:37:46 +0000 (02:37 -0700)]
Do not inline array resize operations for outdated prototype maps.
BUG=chromium:523213
LOG=N
Review URL: https://codereview.chromium.org/
1313303002
Cr-Commit-Position: refs/heads/master@{#30374}
wingo [Wed, 26 Aug 2015 09:36:39 +0000 (02:36 -0700)]
Parse arrow functions at proper precedence level
BUG=v8:4211
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1315823002
Cr-Commit-Position: refs/heads/master@{#30373}
mstarzinger [Wed, 26 Aug 2015 09:35:30 +0000 (02:35 -0700)]
[heap] Prevent direct access to ExternalStringTable.
R=mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1312553003
Cr-Commit-Position: refs/heads/master@{#30372}
Hannes Payer [Wed, 26 Aug 2015 09:28:18 +0000 (11:28 +0200)]
Don't explicitly tear down code range in cctest/test-alloc/CodeRange to avoid double-free.
BUG=v8:4141
LOG=n
R=mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1312213007 .
Cr-Commit-Position: refs/heads/master@{#30371}
mtrofin [Wed, 26 Aug 2015 05:22:22 +0000 (22:22 -0700)]
[turbofan] Separate LiveRange and TopLevelLiveRange concepts
A TopLevelLiveRange is the live range of a virtual register. Through
register allocation, it may end up being split in a succession of child
live ranges, where data flow is handled through moves from
predecessor to successor child.
Today, the concepts of "top level" and "child" live ranges are conflated
under the LiveRange class. However, a good few APIs pertain solely
to TopLevelLiveRanges. This was communicated through comments or
DCHECKs - but this makes for poor code comprehensibility and maintainability.
For example, the worklist of the register allocator (live_ranges()) needs
to only contain TopLevelLiveRanges; spill range concerns are associated
only with the top range; phi-ness; certain phases in the allocation pipeline;
APIs on LiveRange used for initial construction - before splitting;
splintering - these are all responsibilities associated to TopLevelLiveRanges,
and not child live ranges.
This change separates the concepts.
An effect of this change is that child live range allocation need not involve
RegisterAllocationData. That's "a good thing" (lower coupling), but it has
the side-effect of not having a good way to construct unique identifiers for
child live ranges, relative to a given InstructionSequence.
LiveRange Id are used primarily for tracing/output-ing, and debugging.
I propose a 2-component identifier: a virtual register (vreg) number,
uniquely identifying TopLevelLiveRanges; and a relative identifier, which
uniquely identifies children of a given TopLevelLiveRange. "0" is reserved
for the TopLevel range. The relative identifier does not necessarily
indicate order in the child chain, which is no worse than the current state
of affairs.
I believe this change should make it easier to understand a trace output
(because the virtual register number is readily available). I plan to formalize
with a small structure the notion of live range id, and consolidate tracing
around that, as part of a separate CL. (there are seemingly disparate ways
to trace - printf or stream-based APIs - so this seems like an opportune
change to consolidate that)
Review URL: https://codereview.chromium.org/
1311983002
Cr-Commit-Position: refs/heads/master@{#30370}
v8-autoroll [Wed, 26 Aug 2015 03:24:52 +0000 (20:24 -0700)]
Update V8 DEPS.
Rolling v8/third_party/icu to
6b3ce817f8e828c3b7a577d2395f0882eb56ef18
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1311613003
Cr-Commit-Position: refs/heads/master@{#30369}
chunyang.dai [Wed, 26 Aug 2015 01:17:11 +0000 (18:17 -0700)]
X87: [Interpreter] Pass context to interpreter bytecode handlers and add LoadConstextSlot
For X87 platform, it has the same general register as ia32 and it will spill the
context to the stack too.
port
bfdc22d7fc1bc046a38770a676619eee613222f3 (r29325).
original commit message:
Passes the current context to bytecode interpreter handlers. This is held in the
context register on all architectures except for ia32 where there are too few
registers and it is instead spilled to the stack.
Also changes Load/StoreRegister to use kMachAnyTagged representation since they
should only ever hold tagged values.
BUG=
Review URL: https://codereview.chromium.org/
1316583003
Cr-Commit-Position: refs/heads/master@{#30368}
bradnelson [Wed, 26 Aug 2015 01:16:04 +0000 (18:16 -0700)]
Visit additional AST nodes as expressions in AstExpressionVisitor .
Visit AST Property nodes as expressions in AstExpressionVisitor.
Visit Yield and Throw as they are expressions too.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-ast-expression-visitor, test-typing-reset
R=rossberg@chromium.org,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
1314843002
Cr-Commit-Position: refs/heads/master@{#30367}
bbudge [Wed, 26 Aug 2015 01:14:58 +0000 (18:14 -0700)]
[simd.js] Clean up bad merge in messages.js
Eliminates duplicate var's and assignments.
LOG=N
BUG=v8:4124
Review URL: https://codereview.chromium.org/
1315993002
Cr-Commit-Position: refs/heads/master@{#30366}
littledan [Wed, 26 Aug 2015 01:13:51 +0000 (18:13 -0700)]
Test262 roll to the 2015-8-25 version
Review URL: https://codereview.chromium.org/
1317723003
Cr-Commit-Position: refs/heads/master@{#30365}
littledan [Wed, 26 Aug 2015 01:12:44 +0000 (18:12 -0700)]
--harmony-sloppy-function depends on --harmony-sloppy
The lack of marking this dependency led to a ClusterFuzz crash when
sloppy-function was on but not sloppy. This case does not make sense.
R=adamk
LOG=N
BUG=chromium:520891
Review URL: https://codereview.chromium.org/
1316773004
Cr-Commit-Position: refs/heads/master@{#30364}
rossberg [Tue, 25 Aug 2015 22:24:17 +0000 (15:24 -0700)]
[es6] Remaining cases of parameter scopes for sloppy eval
R=littledan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1303013007
Cr-Commit-Position: refs/heads/master@{#30363}
adamk [Tue, 25 Aug 2015 21:10:34 +0000 (14:10 -0700)]
[es6] Fix computed property names in nested literals
Make ObjectLiteral::is_simple() false for literals containing computed
property names, which causes IsCompileTimeValue() to return false and
thus force code to be generated for setting up such properties. This
mirrors the handling of '__proto__' in literals.
BUG=v8:4387
LOG=y
Review URL: https://codereview.chromium.org/
1307943007
Cr-Commit-Position: refs/heads/master@{#30362}
rossberg [Tue, 25 Aug 2015 18:51:57 +0000 (11:51 -0700)]
[es6] Correct length for functions with default parameters
R=adamk@chromium.org
BUG=v8:2160
LOG=N
Review URL: https://codereview.chromium.org/
1311163002
Cr-Commit-Position: refs/heads/master@{#30361}
bradnelson [Tue, 25 Aug 2015 16:07:13 +0000 (09:07 -0700)]
Fix AstExpressionVisitor to correctly handle switch + for.
These were missed by the previous tests,
uncovered in another context.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-ast-expression-visitor
R=rossberg@chromium.org,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
1316633002
Cr-Commit-Position: refs/heads/master@{#30360}
hpayer [Tue, 25 Aug 2015 15:26:45 +0000 (08:26 -0700)]
Add basic support for parallel compaction and flag.
BUG=524425
LOG=n
Review URL: https://codereview.chromium.org/
1314903002
Cr-Commit-Position: refs/heads/master@{#30359}
mstarzinger [Tue, 25 Aug 2015 15:16:37 +0000 (08:16 -0700)]
[heap] Enforce coding style decl order in {Heap} round #3.
R=mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1304873006
Cr-Commit-Position: refs/heads/master@{#30358}
mtrofin [Tue, 25 Aug 2015 14:47:26 +0000 (07:47 -0700)]
[turbofan] Deferred blocks splintering.
This change encompasses what is necessary to enable stack checks in loops without suffering large regressions.
Primarily, it consists of a new mechanism for dealing with deferred blocks by "splintering", rather than splitting, inside deferred blocks.
My initial change was splitting along deferred block boundaries, but the regression introduced by stackchecks wasn't resolved conclusively. After investigation, it appears that just splitting ranges along cold block boundaries leads to a greater opportunity for moves on the hot path, hence the suboptimal outcome.
The alternative "splinters" ranges rather than splitting them. While splitting creates 2 ranges and links them (parent-child), in contrast, splintering creates a new independent range with no parent-child relation to the original. The original range appears as if it has a liveness hole in the place of the splintered one. All thus obtained ranges are then register allocated with no change to the register allocator.
The splinters (cold blocks) do not conflict with the hot path ranges, by construction. The hot path ones have less pressure to split, because we remove a source of conflicts. After allocation, we merge the splinters back to their original ranges and continue the pipeline. We leverage the previous changes made for deferred blocks (determining where to spill, for example).
Review URL: https://codereview.chromium.org/
1305393003
Cr-Commit-Position: refs/heads/master@{#30357}
hpayer [Tue, 25 Aug 2015 13:49:06 +0000 (06:49 -0700)]
Allow more scavenges during idle times by pushing down the idle new space limit.
BUG=
Review URL: https://codereview.chromium.org/
1313083002
Cr-Commit-Position: refs/heads/master@{#30356}
mstarzinger [Tue, 25 Aug 2015 13:38:45 +0000 (06:38 -0700)]
[heap] Prevent direct access to StoreBuffer.
R=mlippautz@chromium.org
Review URL: https://codereview.chromium.org/
1317553002
Cr-Commit-Position: refs/heads/master@{#30355}
rmcilroy [Tue, 25 Aug 2015 12:56:50 +0000 (05:56 -0700)]
[interpreter] Allow verification and trace-turbo for bytecode handlers.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/
1308863004
Cr-Commit-Position: refs/heads/master@{#30354}
bbudge [Tue, 25 Aug 2015 12:35:06 +0000 (05:35 -0700)]
[simd.js] Update to spec version 0.8.2.
Adds Uint32x4, Uint16x8, and Uint8x16 types.
Adds all functions in the current spec, except for loads and stores.
LOG=Y
BUG=v8:4124
Committed: https://crrev.com/
4be6d37fd1ad0a6e0ea37da8863ae5169c2b89ba
Cr-Commit-Position: refs/heads/master@{#30322}
Review URL: https://codereview.chromium.org/
1294513004
Cr-Commit-Position: refs/heads/master@{#30353}
rmcilroy [Tue, 25 Aug 2015 11:31:09 +0000 (04:31 -0700)]
[Interpreter] Add implementations of arithmetic binary op bytecodes.
Adds implementations and tests for the following bytecodes:
- Add
- Sub
- Mul
- Div
- Mod
Also adds the Mod bytecode and adds support to BytecodeGenerator and
BytecodeArrayBuilder to enable it's use.
The current bytecodes always call through to the JS builtins. This also adds
LoadObjectField and CallJSBuiltin operators to the InterpreterAssembler.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/
1300813005
Cr-Commit-Position: refs/heads/master@{#30352}
hablich [Tue, 25 Aug 2015 11:18:29 +0000 (04:18 -0700)]
Revert of Moving ArraySplice Builtin to ElementsAccessor (patchset #8 id:140001 of https://codereview.chromium.org/
1293683005/ )
Reason for revert:
Fails layout tests: http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2032/builds/1450
Original issue's description:
> - remove the Backing-Store specific code from builtins.cc and put it in elements.cc.
> - adding tests to improve coverage of the splice method
>
> BUG=
>
> Committed: https://crrev.com/
8533d4b5433d3a9e9fb1015f206997bd6d869fe3
> Cr-Commit-Position: refs/heads/master@{#30269}
>
> Committed: https://crrev.com/
07a4a6cb8e2ab940b28a7151a925c796da023524
> Cr-Commit-Position: refs/heads/master@{#30326}
TBR=mvstanton@chromium.org,cbruni@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
1315823004
Cr-Commit-Position: refs/heads/master@{#30351}
cbruni [Tue, 25 Aug 2015 11:11:18 +0000 (04:11 -0700)]
Revert of Array.prototype.unshift builtin improvements (patchset #3 id:40001 of https://codereview.chromium.org/
1311343002/ )
Reason for revert:
https://codereview.chromium.org/
1315823004/
Original issue's description:
> Array.prototype.unshift builtin improvements
>
> Moving unshift to ElementAccessor and increasing the range of arguments
> handled directly in C++, namely directly supporting FastDoubleElementsKind.
> This should yield a factor 19 speedup for unshift on fast double arrays.
>
> BUG=
>
> Committed: https://crrev.com/
bf6764e6c1197e50ae148755488307a423b1d9b4
> Cr-Commit-Position: refs/heads/master@{#30347}
TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
1311363003
Cr-Commit-Position: refs/heads/master@{#30350}
mlippautz [Tue, 25 Aug 2015 10:59:40 +0000 (03:59 -0700)]
[heap] Make the current GCCallbackFlags are part of {Heap}.
Moves the GCCallbackflags where they belong, i.e., {Heap}, and gets rid of
IncrementalMarking::Start() callsites.
BUG=
Review URL: https://codereview.chromium.org/
1314853002
Cr-Commit-Position: refs/heads/master@{#30349}
titzer [Tue, 25 Aug 2015 10:17:26 +0000 (03:17 -0700)]
Add a PLACEHOLDER code kind.
The PLACEHOLDER code kind is used when compiling a code object that has
direct calls to other code objects, but those other code objects do not
yet exist because they have not yet been compiled. It serves as a
placeholder to break the cycle, e.g. in WASM.
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1308393003
Cr-Commit-Position: refs/heads/master@{#30348}
cbruni [Tue, 25 Aug 2015 09:45:24 +0000 (02:45 -0700)]
Array.prototype.unshift builtin improvements
Moving unshift to ElementAccessor and increasing the range of arguments
handled directly in C++, namely directly supporting FastDoubleElementsKind.
This should yield a factor 19 speedup for unshift on fast double arrays.
BUG=
Review URL: https://codereview.chromium.org/
1311343002
Cr-Commit-Position: refs/heads/master@{#30347}
rossberg [Tue, 25 Aug 2015 09:23:00 +0000 (02:23 -0700)]
Reship arrow functions
...in canary.
This reverts commit
c75af23299ec948cf2d809e8aa86b2c43184cde3.
R=hablich@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1319443002
Cr-Commit-Position: refs/heads/master@{#30346}
mlippautz [Tue, 25 Aug 2015 09:21:51 +0000 (02:21 -0700)]
[heap] Report proper GC type in prologue/eplilogue callbacks.
Followup to https://codereview.chromium.org/
1288683005
BUG=chromium:521946
LOG=N
Review URL: https://codereview.chromium.org/
1313023002
Cr-Commit-Position: refs/heads/master@{#30345}
mlippautz [Tue, 25 Aug 2015 08:24:04 +0000 (01:24 -0700)]
[heap] Enforce coding style decl order in {Heap} round #2.
BUG=
Review URL: https://codereview.chromium.org/
1313513003
Cr-Commit-Position: refs/heads/master@{#30344}
bmeurer [Tue, 25 Aug 2015 06:24:40 +0000 (23:24 -0700)]
[crankshaft] DCE must not eliminate (observable) math operations.
The HUnaryMathOperation cannot be eliminated in general, because the
spec requires a ToNumber conversion on the input, which is observable
of course.
BUG=v8:4389
LOG=y
Review URL: https://codereview.chromium.org/
1307413003
Cr-Commit-Position: refs/heads/master@{#30343}
bmeurer [Tue, 25 Aug 2015 04:48:36 +0000 (21:48 -0700)]
Correctify instanceof and make it optimizable.
The previous hack with HInstanceOfKnownGlobal was not only slower,
but also very brittle and required a lot of weird hacks to support it. And
what's even more important it wasn't even correct (because a map check
on the lhs is never enough for instanceof).
The new implementation provides a sane runtime implementation
for InstanceOf plus a fast case in the InstanceOfStub, combined with
a proper specialization in the case of a known global in CrankShaft,
which does only the prototype chain walk (coupled with a code
dependency on the known global).
As a drive-by-fix: Also fix the incorrect Object.prototype.isPrototypeOf
implementation.
BUG=v8:4376
LOG=y
Review URL: https://codereview.chromium.org/
1304633002
Cr-Commit-Position: refs/heads/master@{#30342}
bbudge [Mon, 24 Aug 2015 21:18:54 +0000 (14:18 -0700)]
[simd.js] Set --harmony-simd flag in test config.
Adds the flag to the test configuration so we aren't just testing the
polyfill.
Fixes some number conversion in native fromFloat32x4 function that now
fails.
LOG=N
BUG=v8:4124
Review URL: https://codereview.chromium.org/
1312703003
Cr-Commit-Position: refs/heads/master@{#30341}
littledan [Mon, 24 Aug 2015 18:57:08 +0000 (11:57 -0700)]
Add a separate scope for switch
The ES2015 specification for switch statements 13.12.11 specifies that
they get their own lexical scope. This patch introduces such a scope
through a complex desugaring in terms of blocks, done so that Crankshaft
does not have to be updated to support multiple constructs providing
scopes.
Recommitting this patch after a bug fix in Crankshaft to allow a
desugaring with certain elements missing a source location:
https://codereview.chromium.org/
1313443002
BUG=v8:4377
LOG=Y
R=adamk
Review URL: https://codereview.chromium.org/
1309163003
Cr-Commit-Position: refs/heads/master@{#30340}
domenic [Mon, 24 Aug 2015 18:15:56 +0000 (11:15 -0700)]
Ship --harmony_array_includes
Intent to ship: https://groups.google.com/d/msg/v8-users/-a8_8cb6FRI/trjyB5bACQAJ
BUG=v8:3575
R=adamk@chromium.org, rossberg@chromium.org
LOG=Y
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/
1295543003
Cr-Commit-Position: refs/heads/master@{#30339}
rossberg [Mon, 24 Aug 2015 18:00:59 +0000 (11:00 -0700)]
[es6] Fix default parameters in arrow functions
R=adamk@chromium.org, wingo@igalia.com
BUG=v8:811
LOG=N
Review URL: https://codereview.chromium.org/
1314543005
Cr-Commit-Position: refs/heads/master@{#30338}
littledan [Mon, 24 Aug 2015 17:18:41 +0000 (10:18 -0700)]
Translate AST to Hydrogen missing position
This patch translates RelocInfo::kNoPosition to SourcePosition::Unknown()
in constructing the Hydrogen graph from the parser's output. The translation
is done to increase the flexibility of the parser to desugar more things
that don't have natural locations.
R=bmeurer@chromium.org
BUG=v8:4377
LOG=N
Review URL: https://codereview.chromium.org/
1313443002
Cr-Commit-Position: refs/heads/master@{#30337}
bradnelson [Mon, 24 Aug 2015 17:16:38 +0000 (10:16 -0700)]
Adding visitors to regurgitate expression types or reset them.
Adding an AstExpressionVisitor to touch each expression node in
an AST.
Adding TypingReseter to clear the slate after a failed asm.js
validation that has set partial typing information.
Adding a ExpressionTypeCollector to walk the expressions
in an AST and emit them as a string for testing.
Adding tests of the above.
LOG=N
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-typing-reset,test-ast-expression-visitor
R=rossberg@chromium.org,titzer@chromium.org
Review URL: https://codereview.chromium.org/
1288773007
Cr-Commit-Position: refs/heads/master@{#30336}
hpayer [Mon, 24 Aug 2015 16:27:46 +0000 (09:27 -0700)]
Re-land "Concurrently unmap free pages."
BUG=chromium:507211
LOG=n
Review URL: https://codereview.chromium.org/
1306183003
Cr-Commit-Position: refs/heads/master@{#30335}
mstarzinger [Mon, 24 Aug 2015 15:55:30 +0000 (08:55 -0700)]
Make Simulator respect C stack limits as well.
The simulator uses a separate JS stack, exhaustion of the C stack
however is not caught by JS limit checks. This change now lowers the
limit of the JS stack accordingly on function calls.
R=mvstanton@chromium.org
BUG=chromium:522380
TEST=mjsunit/regress/regress-crbug-522380
LOG=n
Review URL: https://codereview.chromium.org/
1314623002
Cr-Commit-Position: refs/heads/master@{#30334}
mstarzinger [Mon, 24 Aug 2015 15:24:41 +0000 (08:24 -0700)]
Move StackGuard::InterruptRequested into StackLimitCheck.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1310253002
Cr-Commit-Position: refs/heads/master@{#30333}
rossberg [Mon, 24 Aug 2015 14:58:16 +0000 (07:58 -0700)]
Unship arrow functions
...until the hotfix has baked.
R=hablich@chromium.org
BUG=v8:4211
LOG=Y
Review URL: https://codereview.chromium.org/
1310243002
Cr-Commit-Position: refs/heads/master@{#30332}
yangguo [Mon, 24 Aug 2015 14:49:22 +0000 (07:49 -0700)]
Deserializer: flush code cache while code pointers are still valid.
Omitting test case because it would be brittle and become useless soon.
R=mlippautz@chromium.org
BUG=chromium:523453
LOG=N
Review URL: https://codereview.chromium.org/
1312763002
Cr-Commit-Position: refs/heads/master@{#30331}
yangguo [Mon, 24 Aug 2015 13:40:21 +0000 (06:40 -0700)]
Message formatting: handle unexpected case of failing property lookup.
R=cbruni@chromium.org
BUG=chromium:523308
LOG=N
Review URL: https://codereview.chromium.org/
1314543004
Cr-Commit-Position: refs/heads/master@{#30330}
mlippautz [Mon, 24 Aug 2015 13:29:32 +0000 (06:29 -0700)]
Revert "Make sure that memory reducer makes progress in incremental marking"
This reverts commit
1345f811bf6a3ab9376cfbed6f08084662b32a4d.
BUG=
Review URL: https://codereview.chromium.org/
1303333005
Cr-Commit-Position: refs/heads/master@{#30329}
yangguo [Mon, 24 Aug 2015 13:08:05 +0000 (06:08 -0700)]
Debugger: use correct position for for-next expression statement.
R=rossberg@chromium.org
BUG=chromium:523543
LOG=N
Review URL: https://codereview.chromium.org/
1310213002
Cr-Commit-Position: refs/heads/master@{#30328}
mlippautz [Mon, 24 Aug 2015 12:50:36 +0000 (05:50 -0700)]
[heap] Enforce coding style decl order in {Heap} round #1.
Order is now:
- forward declarations
- enums
- nested classes
- static consts
- constructors
- static methods
- regular methods
- members fields
Bonus:
- Allocate*() methods are grouped together
- Sections
BUG=
Review URL: https://codereview.chromium.org/
1312503004
Cr-Commit-Position: refs/heads/master@{#30327}
cbruni [Mon, 24 Aug 2015 10:55:08 +0000 (03:55 -0700)]
- remove the Backing-Store specific code from builtins.cc and put it in elements.cc.
- adding tests to improve coverage of the splice method
BUG=
Committed: https://crrev.com/
8533d4b5433d3a9e9fb1015f206997bd6d869fe3
Cr-Commit-Position: refs/heads/master@{#30269}
Review URL: https://codereview.chromium.org/
1293683005
Cr-Commit-Position: refs/heads/master@{#30326}
rmcilroy [Mon, 24 Aug 2015 10:25:34 +0000 (03:25 -0700)]
[Interpreter] Pass context to interpreter bytecode handlers and add LoadConstextSlot
Passes the current context to bytecode interpreter handlers. This is held in the
context register on all architectures except for ia32 where there are too few
registers and it is instead spilled to the stack.
Also changes Load/StoreRegister to use kMachAnyTagged representation since they
should only ever hold tagged values.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/
1294133004
Cr-Commit-Position: refs/heads/master@{#30325}
rmcilroy [Mon, 24 Aug 2015 10:23:39 +0000 (03:23 -0700)]
Add CompileInfo::GetDebugName()
Replaces all instances of the code which computed the debug
name of a stub or function with calls to CompileInfo::GetDebugName instead.
Also:
- Removes useless parameter on CodeStub::GetMajorName
- Removes FakeStubForTesting since it is no longer required
- Adds CompileInfo::ShouldEnsureSpaceForLazyDeopt() to replace unclear calls to IsStub().
Review URL: https://codereview.chromium.org/
1297203002
Cr-Commit-Position: refs/heads/master@{#30324}
hablich [Mon, 24 Aug 2015 10:06:30 +0000 (03:06 -0700)]
Revert of [simd.js] Update to spec version 0.8.2. (patchset #11 id:200001 of https://codereview.chromium.org/
1294513004/ )
Reason for revert:
Fails tests:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20deadcode/builds/5073/steps/steps/logs/stdio
Original issue's description:
> [simd.js] Update to spec version 0.8.2.
>
> Adds Uint32x4, Uint16x8, and Uint8x16 types.
> Adds all functions in the current spec, except for loads and stores.
>
> LOG=Y
> BUG=v8:4124
>
> Committed: https://crrev.com/
4be6d37fd1ad0a6e0ea37da8863ae5169c2b89ba
> Cr-Commit-Position: refs/heads/master@{#30322}
TBR=littledan@chromium.org,bbudge@google.com,bmeurer@chromium.org,hpayer@chromium.org,bbudge@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4124
Review URL: https://codereview.chromium.org/
1309513005
Cr-Commit-Position: refs/heads/master@{#30323}
bbudge [Mon, 24 Aug 2015 09:13:00 +0000 (02:13 -0700)]
[simd.js] Update to spec version 0.8.2.
Adds Uint32x4, Uint16x8, and Uint8x16 types.
Adds all functions in the current spec, except for loads and stores.
LOG=Y
BUG=v8:4124
Review URL: https://codereview.chromium.org/
1294513004
Cr-Commit-Position: refs/heads/master@{#30322}
chunyang.dai [Mon, 24 Aug 2015 08:43:49 +0000 (01:43 -0700)]
X87: Disable test case for X87 because of double register number restriction.
These two test cases introduced by
8525136b require that the double register is >=2.
But currently on x87 turbofan implementation only 1 double register is supported.
BUG=
Review URL: https://codereview.chromium.org/
1308763003
Cr-Commit-Position: refs/heads/master@{#30321}
mstarzinger [Mon, 24 Aug 2015 07:52:05 +0000 (00:52 -0700)]
Simplify macro-assembler.h include dance.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1306023002
Cr-Commit-Position: refs/heads/master@{#30320}
yangguo [Mon, 24 Aug 2015 07:15:01 +0000 (00:15 -0700)]
Native context: alpha sort slots and remove boilerplate.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
1307963002
Cr-Commit-Position: refs/heads/master@{#30319}
yangguo [Mon, 24 Aug 2015 06:56:56 +0000 (23:56 -0700)]
Revert of Parse arrow functions at proper precedence level (patchset #2 id:60001 of https://codereview.chromium.org/
1286383005/ )
Reason for revert:
Breaks layout test. Please change test expectation on blink first.
--- /mnt/data/b/build/slave/V8-Blink_Linux_64/build/layout-test-results/inspector/sources/debugger-pause/debugger-pause-in-internal-expected.txt
+++ /mnt/data/b/build/slave/V8-Blink_Linux_64/build/layout-test-results/inspector/sources/debugger-pause/debugger-pause-in-internal-actual.txt
@@ -1,4 +1,4 @@
-CONSOLE ERROR: line 9: Uncaught SyntaxError: Expected () to start arrow function, but got '}' instead of '=>'
+CONSOLE ERROR: line 9: Uncaught SyntaxError: Unexpected token )
Tests that pause on exception in internal script does not crash.
Script source was shown.
Original issue's description:
> Parse arrow functions at proper precedence level
>
> BUG=v8:4211
> LOG=Y
> R=rossberg@chromium.org
>
> Committed: https://crrev.com/
9271b0ccf9ddb217deb1f0b9ef9b59b64dc40214
> Cr-Commit-Position: refs/heads/master@{#30298}
TBR=rossberg@chromium.org,mstarzinger@chromium.org,fennyfanny655@gmail.com,machenbach@chromium.org,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4211
Review URL: https://codereview.chromium.org/
1315503002
Cr-Commit-Position: refs/heads/master@{#30318}
mstarzinger [Mon, 24 Aug 2015 06:52:46 +0000 (23:52 -0700)]
Get rid of CompilationInfo::GenerateCodeStub method.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
1309883002
Cr-Commit-Position: refs/heads/master@{#30317}
littledan [Sat, 22 Aug 2015 01:24:18 +0000 (18:24 -0700)]
Revert of Add a separate scope for switch (patchset #7 id:120001 of https://codereview.chromium.org/
1293283002/ )
Reason for revert:
Breaks cctest/test-cpu-profiler/SourceLocation on nosnap
Original issue's description:
> Add a separate scope for switch
>
> The ES2015 specification for switch statements 13.12.11 specifies that
> they get their own lexical scope. This patch introduces such a scope
> through a complex desugaring in terms of blocks, done so that Crankshaft
> does not have to be updated to support multiple constructs providing
> scopes.
>
> BUG=v8:4377
> LOG=Y
> R=adamk
>
> Committed: https://crrev.com/
9edbc1f21eb1050cabbe3b8bc9aebf89ada7ebd7
> Cr-Commit-Position: refs/heads/master@{#30314}
TBR=adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4377
Review URL: https://codereview.chromium.org/
1309043004
Cr-Commit-Position: refs/heads/master@{#30316}
littledan [Sat, 22 Aug 2015 00:18:12 +0000 (17:18 -0700)]
Fix function scoping issue
The parser has special behavior with respect to the bindings
of inner functions in sloppy mode which are not at the top
level of scopes. This behavior should be turned off when the
--harmony-sloppy-function flag is set, as lexical scoping
rules are used instead. Previously, the incorrect flag
--harmony-sloppy was used, resulting in a crashing bug.
BUG=chromium:520029
LOG=Y
R=adamk
Review URL: https://codereview.chromium.org/
1303033003
Cr-Commit-Position: refs/heads/master@{#30315}
littledan [Fri, 21 Aug 2015 23:54:21 +0000 (16:54 -0700)]
Add a separate scope for switch
The ES2015 specification for switch statements 13.12.11 specifies that
they get their own lexical scope. This patch introduces such a scope
through a complex desugaring in terms of blocks, done so that Crankshaft
does not have to be updated to support multiple constructs providing
scopes.
BUG=v8:4377
LOG=Y
R=adamk
Review URL: https://codereview.chromium.org/
1293283002
Cr-Commit-Position: refs/heads/master@{#30314}