Previous approach for property reconfiguration was to create a free-floating map with generalized representations of all fields. This patch does it right.
When property is reconfigured either by changing its kind (kData <-> kAccessor) or its attributes it implies creation of a new branch in transition tree. If such a branch already existed before reconfiguration then it should be merged with the old (or source) branch of the transition tree. Merging procedure includes all the heavy machinery such as property location changes (kDescriptor -> kField), field representation/field type generalization, map deprecation, etc.
Review URL: https://codereview.chromium.org/888623002
Cr-Commit-Position: refs/heads/master@{#26667}
The heuristic is quite naive at the moment (build a frame iff the
register allocator needed spill slots), we can improve that later.
Review URL: https://codereview.chromium.org/933603002
Cr-Commit-Position: refs/heads/master@{#26664}
Removed useless (and in the future incorrect) DCHECKs on the way.
Review URL: https://codereview.chromium.org/921443004
Cr-Commit-Position: refs/heads/master@{#26655}
Use simple old-skool constructors instead. Note that the long repeated
member initializer lists could be reduced a bit by using C++11's
brace-or-equal initializers, which are actually recommended by the
Google C++ style guide in this case, but the ARM toolchain is still
buggy in this area (see patch sets 1 and 2). :-/
Review URL: https://codereview.chromium.org/913993004
Cr-Commit-Position: refs/heads/master@{#26654}
and "Just visit young array buffers during scavenge. Additionally keep the views in new space in a separate global list and move them to the corresponding array buffers when they get promoted."
This reverts commit 295ab27830
and commit bd61a85faf.
TBR=hpayer@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/929973002
Cr-Commit-Position: refs/heads/master@{#26653}
Added new INTERNAL_REFERENCE_ENCODED RelocInfo type to differentiate MIPS existing use of internal references in instructions from the new raw pointer reference needed for dd(Label*).
BUG=
TEST=cctest/test-assembler-mips/jump_tables1, cctest/test-assembler-mips/jump_tables2, cctest/test-assembler-mips/jump_tables3, cctest/test-run-machops/RunSwitch1
Review URL: https://codereview.chromium.org/922043005
Cr-Commit-Position: refs/heads/master@{#26651}
Reason for revert:
Speculative revert. This CL seems to break octane.
Original issue's description:
> Don't always bail out of GenerateTypedArrayInitialize
>
> In an innocuous cleanup patch, https://code.google.com/p/v8/source/detail?r=21621,
> some boolean logic got mixed up and the Hydrogen code for TypedArrayInitialize
> was changed to always bail out. This swaps the logic appropriately.
>
> Committed: https://crrev.com/907f0b6ce573333f1cbca00db5cb1df1ead175bb
> Cr-Commit-Position: refs/heads/master@{#26643}
TBR=dslomov@chromium.org,adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/929773002
Cr-Commit-Position: refs/heads/master@{#26650}
port 2707d4c9f4 (r26628).
original commit message:
This CL fixes tests that no longer valid and also fixes two issues:
1. 'super()' in non derived constructors.
2. Failure to step into derived constructors.
BUG=
Review URL: https://codereview.chromium.org/920543005
Cr-Commit-Position: refs/heads/master@{#26647}
With the new ES6 semantics super construct calls are only valid in
a constructor in a derived class. This is something that is
statically known and we report early SyntaxError in case it occurs.
We therefore do not need to track this any more.
BUG=v8:3330
LOG=N
R=dslomov@chromium.org, adamk
Review URL: https://codereview.chromium.org/924123002
Cr-Commit-Position: refs/heads/master@{#26644}
The preparser needs to log the usage of super properties and then update
the scope when we create the function later.
BUG=v8:3888
LOG=N
R=dslomov@chromium.org, marja
Review URL: https://codereview.chromium.org/923683002
Cr-Commit-Position: refs/heads/master@{#26642}
StatisticsExtension::GetCounters() has grown to repeat a lot of code
so to make it more maintainable and generate less machine code,
make it data driven. This makes a 64 bit Linux build 50 KB smaller.
Total change: -51677 bytes
==========================
1 shrunk, for a net change of -51677 bytes (64222 bytes before, 12545 bytes after) across 1 sources
279691 unchanged, totalling 51423668 bytes
Per-source Analysis:
-------------------------------------------------------------------------------------------------------------------
-51677 - Source: /home/bratell/src/chromium/src/v8/src/extensions/statistics-extension.cc - (gained 0, lost 51677)
-------------------------------------------------------------------------------------------------------------------
Shrunk symbols:
-51677: v8::internal::StatisticsExtension::GetCounters(v8::FunctionCallbackInfo<v8::Value> const&) type=t, (was 64222 bytes, now 12545 bytes)
BUG=
Review URL: https://codereview.chromium.org/912413003
Cr-Commit-Position: refs/heads/master@{#26640}
This removed some inconsistent/duplicated code and made the testing
side entrance much simpler: Now it simply constructs a pipeline and
hands off to the "tail" of the normal pipeline.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/924823002
Cr-Commit-Position: refs/heads/master@{#26637}
It is a default option for some try bots.
otherwise compilation fails on
DCHECK(layout_descriptor->IsConsistentWithMap(*map));
BUG=none
LOG=n
Review URL: https://codereview.chromium.org/920993003
Cr-Commit-Position: refs/heads/master@{#26636}
Port 2707d4c9f4
Original commit message:
This CL fixes tests that no longer valid and also fixes two issues:
1. 'super()' in non derived constructors.
2. Failure to step into derived constructors.
BUG=
R=paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/920173002
Cr-Commit-Position: refs/heads/master@{#26635}
1) create beefy RelocInfo table when cpu profiler is active, so if a function
was optimized when profiler was active RelocInfo would get separate DeoptInfo
for the each deopt case.
2) push DeoptInfo from CodeEntry to ProfileNode.
When deopt happens we put the info collected on #1 into CodeEntry and record stack sample.
On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list.
Sample profile dump.
[Top down]:
0 (root) 0 #1
1 29 #2
1 test 29 #3
2 opt_function 29 #4
2 opt_function 29 #5
deopted at 118 with reason 'not a heap number'
deopted at 137 with reason 'division by zero'
BUG=452067
LOG=n
Committed: https://crrev.com/ce8701b247d3c6604f24f17a90c02d17b4417f54
Cr-Commit-Position: refs/heads/master@{#26615}
Review URL: https://codereview.chromium.org/919953002
Cr-Commit-Position: refs/heads/master@{#26630}
This is needed as normal chromium checkouts don't fetch
branch-heads.
These branches will also be replicated by GitHub and are
fetched when cloning from the repository.
The expected object size will be the same or smaller than
before as we currently push the same information onto the
candidates branch (which already is in refs/heads). The only
difference is the increasing number of refs in refs/heads.
BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n
TEST=./script_test.py
TEST=tools/release/create_release.py -r machenbach@chromium.org -a machenbach@chromium.org --dry-run
Review URL: https://codereview.chromium.org/914973002
Cr-Commit-Position: refs/heads/master@{#26629}
This CL fixes tests that no longer valid and also fixes two issues:
1. 'super()' in non derived constructors.
2. Failure to step into derived constructors.
R=arv@chromium.org, yurys@chromium.org
BUG=v8:3834
LOG=Y
Review URL: https://codereview.chromium.org/923443003
Cr-Commit-Position: refs/heads/master@{#26628}
To solence C++ compiler warnings because is_mutable_ is only for CHECK.
BUG=
Review URL: https://codereview.chromium.org/922673002
Cr-Commit-Position: refs/heads/master@{#26618}