- Remove use_count_, only used for debug builds and tests.
- Use BitField instead of the unreliable C++ bit fields.
- Improve memory layout.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/780503002
Cr-Commit-Position: refs/heads/master@{#25632}
Instead, make it possible for indifidual tests to pass "always true flags" which
are not part of the varying flag set.
The downside is that if an experimental flag changes parsing of some of the
unrelated code snippets, it's noticed later (only after the flag is turned on by
default). But this is a reasonable trade off for faster tests.
Additional fix: Some tests (ErrorsFutureStrictReservedWords) were using
always_flags incorrectly (running two different tests with different
always_flags basically iterates over every flag combination anyway - most of
them twice).
BUG=v8:3707
LOG=N
Review URL: https://codereview.chromium.org/772823002
Cr-Commit-Position: refs/heads/master@{#25628}
Port c516d4f094
Partial port to un-break the build. There are a few failing
tests, and the code is suboptimal for smaller offsets.
Fixes and mips64 port will come in another CL.
BUG=
Review URL: https://codereview.chromium.org/762853004
Cr-Commit-Position: refs/heads/master@{#25626}
As there's no associated bug, here's the issue:
- Some ES6 functionality in Chrome is presently broken; this fixes it.
- The natives (built-in libraries) can be accessed by their 'name'.
This is used to active ES6 flags.
- Strangely enough, there's an id and a name, where the name is derived
from the id as "native %s.js", with %s for the id.
- NativesCollection<.>::GetScriptName uses the name.
- NativesCollection<.>::GetIndex uses the id.
- Example:
NativesCollection<EXPERIMENTAL>::GetIndex("harmony-string") -> 3
NativesCollection<EXPERIMENTAL>::GetScriptName(3) -> "native harmony-string.js"
- Nobody knows why; it's quite mysterious.
- When introducing the "external startup data", I didn't fully understand this
and used the id in both places.
- When the "external startup data" was turned on in Chrome, ES6 features broke
in Chrome since the libraries could no longer be found.
- This CL fixes this and makes the external startup data behave just like the
built-in version.
R=dslomov
BUG=
Review URL: https://codereview.chromium.org/774613003
Cr-Commit-Position: refs/heads/master@{#25624}
- Create a first-class Edge type.
- Separate node and edge iterators
- Make iterators only responsible for iteration
- Make it possible to modify the use edge iterator while iterating.
- Add the ability to update inputs to Edges directly.
Review URL: https://codereview.chromium.org/765983002
Cr-Commit-Position: refs/heads/master@{#25616}
This relands macroassembler instructions and weak cell caching and
does not include parts that caused "Linux ASan LSan" test failures.
BUG=v8:3663
LOG=N
Review URL: https://codereview.chromium.org/764003003
Cr-Commit-Position: refs/heads/master@{#25615}
Most of the run time came from testing with all possible flag combinations. None
of the flags passed affect the test, and there are specialized tests for testing
the features behind the flags; no need to slow down the generic test.
With these changes, run time for debug build goes from 186 s to 0.5 s.
In addition, fixed some missing commas between the test cases.
R=svenpanne@chromium.org
BUG=v8:3707
LOG=N
Review URL: https://codereview.chromium.org/766673003
Cr-Commit-Position: refs/heads/master@{#25612}
Groups and implicit references are no longer relevant at this point.
Also add tests that fail if the first or second round of ephemeral
marking is omitted
BUG=none
R=mstarzinger@chromium.org,hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/761343004
Cr-Commit-Position: refs/heads/master@{#25606}
v8::Object already has GetIdentityHash on it. This change adds its counterpart to v8::Name.
BUG=chromium:437416
LOG=Y
Review URL: https://codereview.chromium.org/753373003
Cr-Commit-Position: refs/heads/master@{#25598}
Reason for revert:
Need to revert the ported CL:
https://codereview.chromium.org/771033003/
Original issue's description:
> MIPS: Use weak cells in map checks in polymorphic ICs.
>
> Port 45a36948e1
>
> Fix typo in the mips ports.
>
> BUG=
TBR=ulan@chromium.org,danno@chromium.org,akos.palfi@imgtec.com,balazs.kilvady@imgtec.com,gergely.kis@imgtec.com,dusan.milosavljevic@imgtec.com,paul.lind@imgtec.com
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/768303002
Cr-Commit-Position: refs/heads/master@{#25596}
Also, remove V8_CC_CLANG since it's not read anywhere (and ideally shouldn't
be).
Clang tries to be compatible with gcc in clang mode, and with msvc in clang-cl
mode. It wants to go down the same code paths that these compilers want to go
down in most cases.
For example, V8PRIxPTR was set incorrectly on Windows 64-bit before this change
since macros.h assumed that checking for V8_CC_MSVC is enough to find LLP64
systems, but V8_CC_MSVC wasn't set for clang. Most other existing checks for
V8_CC_MSVC should be taken for clang-cl too (and for the remaining ones,
clang-cl is happy with either code path).
Likewise, V8_IMMEDIATE_CRASH is currently set to a suboptimal value with clang
since __builtin_trap() is only used if V8_CC_GNU is set.
Including clang in the gcc and cl macros is also what chromium does.
BUG=chromium:82385
LOG=y
Review URL: https://codereview.chromium.org/757553004
Cr-Commit-Position: refs/heads/master@{#25592}