Don't use different read/write slots for context globals, but
let them share the same slot, which reduces the number of
initial misses, and also saves some memory for large scripts.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/1258213002
Cr-Commit-Position: refs/heads/master@{#29889}
Reason for revert:
This CL may be the reason for the spike on memory corruption. Tentatively reverting this CL.
BUG=chromium:512780
LOG=n
Original issue's description:
> Activate preserving of optimized code map accross GCs.
>
> This enables --noflush-optimized-code-cache which allows preserving
> entries in the optimized code map accross GCs. This only applies to
> values being reachable through other paths.
>
> R=hpayer@chromium.org,hablich@chromium.org
>
> Committed: https://crrev.com/1a8776db25b63c4ce718423772d1fd13f58eeab5
> Cr-Commit-Position: refs/heads/master@{#29755}
TBR=hablich@chromium.org,mstarzinger@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1255043003
Cr-Commit-Position: refs/heads/master@{#29888}
We can apply the shortcut used for data properties of the JSGlobalObject
to builtin properties as well. This mostly affects the custom properties
we use for the Math functions (i.e. rngstate for Math.random() and kMath
for sin, cos and friends).
Drive-by-fix: Also mark the internal builtin typed arrays properties
(rngstate, kMath and rempio2result) as READ_ONLY, as they should not be
touched after genesis.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/1254143003
Cr-Commit-Position: refs/heads/master@{#29887}
No need to pass the name explicitly to the stubs; the runtime can
extract the name from the ScopeInfo (the extension of the
ScriptContext) on-demand easily without any performance impact.
Review URL: https://codereview.chromium.org/1259963002
Cr-Commit-Position: refs/heads/master@{#29886}
Per discussion on the bug, the DCHECK'd case actually occurs in normal
operation, outside of V8's control.
BUG=chromium:388244
LOG=n
Review URL: https://codereview.chromium.org/1255043002
Cr-Commit-Position: refs/heads/master@{#29877}
SharedFunctionInfos that have a debug info must not be collected.
Otherwise we lose previously set break points. This means that
there is no need to hold onto debug infos weakly. The reason this
has not caused an issue up till now is that code flushing has been
disabled when the debugger is active.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/1255793003
Cr-Commit-Position: refs/heads/master@{#29869}
Port d6ee366d5c
Original commit message:
This is the initial round of optimizations for the
LoadGlobalViaContextStub and StoreGlobalViaContextStub, basically
turning them into platform code stubs to avoid the Crankshaft overhead
in the fast case, and making the runtime interface cheaper.
R=bmeurer@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=chromium:510694
LOG=n
Review URL: https://codereview.chromium.org/1261473002
Cr-Commit-Position: refs/heads/master@{#29867}
In CL 0fe2fbd173 the implementation of
MathPow for all ports are unified and MathPow stub code is invoked.
So we move the direct runtime function call from full-codegen to MathPow
stub for X87 platform.
BUG=
Review URL: https://codereview.chromium.org/1258873002
Cr-Commit-Position: refs/heads/master@{#29865}
Also make a minor improvement in the mips32 StoreGlobalViaContextStub
and fix some bad comments in the macro-assembler.
BUG=
Review URL: https://codereview.chromium.org/1254153002
Cr-Commit-Position: refs/heads/master@{#29859}
Class bindings are mutable and lexically scoped, with TDZ semantics.
They may not overlap with var bindings in the same scope. This patch
adds tests for those properties.
R=adamk
BUG=v8:3305
LOG=N
Review URL: https://codereview.chromium.org/1254003004
Cr-Commit-Position: refs/heads/master@{#29856}
--harmony_sloppy includes behavior to turn on sloppy mode lexical
bindings. Before this patch, it also included a way to parse let
which is likely web-incompatible (let is disallowed as an
identifier). This patch splits off the let parsing from the more
general block scoping code, so that block scoping can be developed
independently.
R=adamk
LOG=N
BUG=v8:3305
Review URL: https://codereview.chromium.org/1255013002
Cr-Commit-Position: refs/heads/master@{#29855}
In ES5, dates were supposed to default to UTC if no timezone was specified. However, this changed in ES6, which specified that dates should be in the local timezone if no timezone was specified. This CL updates our behavior to match that part of the ES6 spec.
BUG=chromium:391730, v8:4242
LOG=Y
Review URL: https://codereview.chromium.org/1229903004
Cr-Commit-Position: refs/heads/master@{#29854}
- Ensure frame_size is always set during allocation.
- Add DCHECKs that frame_size is a valid value
- Remove locals_count, which we don't need yet (possibly every)
- Add a newline at the end of BytecodeArray::Dissassemble
for each bytecode.
BUG=v8:4280
LOG=N
Review URL: https://codereview.chromium.org/1254873002
Cr-Commit-Position: refs/heads/master@{#29852}
This also allows us to not always compile for debugging when debug is active.
Review URL: https://codereview.chromium.org/1258583002
Cr-Commit-Position: refs/heads/master@{#29848}
This function will be used later instead of HasLowAllocationRate
to decide how many pages to compact.
BUG=chromium:502247
LOG=NO
Review URL: https://codereview.chromium.org/1254603002
Cr-Commit-Position: refs/heads/master@{#29841}