Commit Graph

8015 Commits

Author SHA1 Message Date
yangguo
60dc30970c Correctly name memory stat for context snapshot size.
TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/1078353002

Cr-Commit-Position: refs/heads/master@{#27765}
2015-04-10 22:36:02 +00:00
caitpotter88
a6ba7ffe36 [cleanup] fix SpreadCalls perf-test names in JSTests.json
BUG=v8:3018
R=arv@chromium.org
LOG=N

Review URL: https://codereview.chromium.org/1079103005

Cr-Commit-Position: refs/heads/master@{#27758}
2015-04-10 18:29:25 +00:00
conradw
3d5717a71b [strong] Implement static restrictions on binding 'undefined' in arrow functions
Implements the strong mode proposal's static restrictions on the use of the
identifier 'undefined', for arrow functions. Assumes these restrictions are
intended to be identical to the restrictions on the use of 'eval and 'arguments'
in strict mode. In addition, Location variables inconsistantly named (e.g.
dupe_error_loc vs dupe_loc) are now consistently named the shorter way.

Baseline: https://codereview.chromium.org/1070633002

BUG=v8:3956
LOG=N

Review URL: https://codereview.chromium.org/1060883004

Cr-Commit-Position: refs/heads/master@{#27756}
2015-04-10 18:27:05 +00:00
machenbach
7898475e92 Revert of Make full GC reduce memory footprint an explicit event in the idle notification handler. (patchset #2 id:20001 of https://codereview.chromium.org/1072363002/)
Reason for revert:
[Sheriff] breaks nosnap with timeouts:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/2513
http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/6220

Original issue's description:
> Make full GC reduce memory footprint an explicit event in the idle notification handler.
>
> BUG=
>
> Committed: https://crrev.com/845705aa99b6bfa8d264cfda1c3b5f1229802ab5
> Cr-Commit-Position: refs/heads/master@{#27753}

TBR=ulan@chromium.org,rmcilroy@chromium.org,hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/1081443002

Cr-Commit-Position: refs/heads/master@{#27755}
2015-04-10 18:21:43 +00:00
yangguo
88630d4e54 Use cctest to track memory stats for isolate and context.
R=machenbach@chromium.org

Review URL: https://codereview.chromium.org/1074143002

Cr-Commit-Position: refs/heads/master@{#27754}
2015-04-10 14:13:25 +00:00
hpayer
845705aa99 Make full GC reduce memory footprint an explicit event in the idle notification handler.
BUG=

Review URL: https://codereview.chromium.org/1072363002

Cr-Commit-Position: refs/heads/master@{#27753}
2015-04-10 14:06:46 +00:00
wingo
fe031978cb Fix some -Werror=sign-compare errors
R=svenpanne@chromium.org
LOG=N
BUG=

Review URL: https://codereview.chromium.org/1072333002

Cr-Commit-Position: refs/heads/master@{#27752}
2015-04-10 13:59:39 +00:00
dcarney
e7ba4791e5 simplify GlobalValueMap calls to DisposeWeak
BUG=

Review URL: https://codereview.chromium.org/1074153002

Cr-Commit-Position: refs/heads/master@{#27750}
2015-04-10 13:40:31 +00:00
titzer
277be506c8 Remove Type::Array bit and replace with Type::GlobalObject
R=rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1074133002

Cr-Commit-Position: refs/heads/master@{#27749}
2015-04-10 13:29:39 +00:00
verwaest
8c98cc074e Add basic crankshaft support for slow-mode for-in to avoid disabling optimizations
BUG=

Review URL: https://codereview.chromium.org/1075933003

Cr-Commit-Position: refs/heads/master@{#27748}
2015-04-10 13:15:31 +00:00
titzer
dee044d601 Add more exhaustive tests for Math.min and Math.max.
R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1078073002

Cr-Commit-Position: refs/heads/master@{#27747}
2015-04-10 12:35:16 +00:00
jkummerow
c1f28b6c10 Handlify Map::SetPrototype()
Review URL: https://codereview.chromium.org/1005393004

Cr-Commit-Position: refs/heads/master@{#27745}
2015-04-10 12:13:22 +00:00
conradw
8ef7159582 [strong] Implement static restrictions on binding/assignment to 'undefined'
identifier. Delete unused (and now incorrect) function IsValidStrictVariable.

Implements the strong mode proposal's static restrictions on the use of the
identifier 'undefined'. Assumes these restrictions are intended to be identical
to the restrictions on the use of 'eval' and 'arguments' in strict mode. The
AllowEvalOrArgumentsAsIdentifier enum has been renamed to
AllowRestrictedIdentifiers as logic involving it is now also used for this case.

BUG=v8:3956

LOG=N

Review URL: https://codereview.chromium.org/1070633002

Cr-Commit-Position: refs/heads/master@{#27744}
2015-04-10 12:04:55 +00:00
bmeurer
35f6c0fdbf [turbofan] Optimize silent hole checks on legacy const context slots.
Currently we always generate a diamond in the graph builder for every
legacy const context slot, which we cannot get rid of until late control
reduction, even if we know after context specialization that the slot is
already initialized.

Now we generate a select instead, which the CommonOperatorReducer
happily removes during typed lowering. This greatly speeds up asm.js
code generated by Emscripten with the new POINTER_MASKING mode.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1072353002

Cr-Commit-Position: refs/heads/master@{#27739}
2015-04-10 10:28:12 +00:00
yangguo
c0593a1fc8 Add perf test configuration to track memory use of context and isolate.
R=machenbach@chromium.org

Review URL: https://codereview.chromium.org/1075143002

Cr-Commit-Position: refs/heads/master@{#27738}
2015-04-10 09:48:57 +00:00
titzer
ff9eaef188 Split cctest/test-types.cc into heap and zone versions for more parallelism.
R=bmeurer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1074063004

Cr-Commit-Position: refs/heads/master@{#27737}
2015-04-10 09:26:00 +00:00
mstarzinger
7196ea72c8 [crankshaft] Fix interceptor shadowing constant global property.
This makes sure Crankshaft respects interceptors in the global object
even when they shadow a constant global property.

R=verwaest@chromium.org
TEST=cctest/test-api-interceptors/PrePropertyHandler

Review URL: https://codereview.chromium.org/1070803002

Cr-Commit-Position: refs/heads/master@{#27733}
2015-04-10 08:30:44 +00:00
caitpotter88
9836c34dba [es6] do not add caller/arguments to ES6 function definitions
BUG=v8:3946, v8:3982
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
LOG=N
R=arv@chromium.org, rossberg@chromium.org

Review URL: https://codereview.chromium.org/1027283004

Cr-Commit-Position: refs/heads/master@{#27729}
2015-04-09 22:40:28 +00:00
adamk
52bbb4f609 Collect list of requested modules in ModuleDescriptor while parsing
BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/1078903002

Cr-Commit-Position: refs/heads/master@{#27724}
2015-04-09 22:09:47 +00:00
caitpotter88
48eff34c32 [es6] don't "replace" Object.prototype.toString for --harmony-tostring
When ObjectToString is installed on Object.prototype twice (once in v8natives.js, and once in harmony-tostring.js), this pollutes old code spaces on some devices. To prevent this, the function is only installed once, preventing test failures when the --harmony-tostring flag is flipped on by default.

BUG=v8:3502
LOG=N
R=arv@chromium.org

Review URL: https://codereview.chromium.org/1072083002

Cr-Commit-Position: refs/heads/master@{#27720}
2015-04-09 20:53:46 +00:00
mstarzinger
96ef78aa0b [turbofan] Fix FrameInspector when deoptimizer is disabled.
This is a workaround to make the debugger happy about TurboFan frames
when the debugger causes frame inspection. Note that this can happen
because the debugger can be activated while there still are optimized
TurboFan activations on the stack.

R=ishell@chromium.org
BUG=chromium:465298
TEST=mjsunit/regress/regress-crbug-465298
LOG=N

Review URL: https://codereview.chromium.org/1074793003

Cr-Commit-Position: refs/heads/master@{#27717}
2015-04-09 19:40:49 +00:00
arv
635b5fea98 Lexical arguments for arrow functions
Only allocate 'arguments' if the scope is not an arrow scope.

BUG=v8:2700
LOG=N
R=adamk@chromium.org, wingo@igalia.cmo

Review URL: https://codereview.chromium.org/1078483002

Cr-Commit-Position: refs/heads/master@{#27716}
2015-04-09 19:39:38 +00:00
adamk
9b09a28d5c Remove comparison operator and helper function from AstRawString interface
These comparisons are only meant to be done by AstValueFactory itself (in
its string_table_ operations), so make the Compare() function a private
member of AstValueFactory.

All other clients of AstRawStrings should compare them by pointer value.
There were only two clients which failed to abide by this rule, one
recently-added (in ModuleDescriptor) and the other in Literal::Match
(in ast.cc, added in https://code.google.com/p/v8/source/detail?r=24396).

Review URL: https://codereview.chromium.org/1069423003

Cr-Commit-Position: refs/heads/master@{#27715}
2015-04-09 19:38:34 +00:00
caitpotter88
74c381221c [es6] implement spread calls
BUG=v8:3018
R=
LOG=N

Review URL: https://codereview.chromium.org/938443002

Cr-Commit-Position: refs/heads/master@{#27714}
2015-04-09 19:37:19 +00:00
Adam Klein
9164e0b62c Skip another debug test that fails in always-opt/turbofan
TBR=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1072143002

Cr-Commit-Position: refs/heads/master@{#27710}
2015-04-09 17:46:14 +00:00
dcarney
572196f6c2 [turbofan] support small immediates
R=titzer@chromium.org

BUG=

Review URL: https://codereview.chromium.org/1075903002

Cr-Commit-Position: refs/heads/master@{#27709}
2015-04-09 14:06:24 +00:00
mstarzinger
63eeab12eb Make TestInternalWeakLists more robust against flags.
This makes some tests in test-heap.cc more robust against flags, now
that top-level code can be optimized by the --always-opt flag.

R=hpayer@chromium.org
TEST=cctest/test-heap/TestInternalWeakLists

Review URL: https://codereview.chromium.org/1071063004

Cr-Commit-Position: refs/heads/master@{#27699}
2015-04-09 11:01:21 +00:00
dcarney
8392d9c43b [turbofan] Make AllocatedOperand an InstructionOperand::Kind.
This is preparatory work to have MachineTypes encoded in AllocatedOperands.

Review URL: https://codereview.chromium.org/1075863002

Cr-Commit-Position: refs/heads/master@{#27698}
2015-04-09 10:40:43 +00:00
dcarney
07ff6d9f22 [turbofan] cleanup InstructionOperand a little
- ConstantOperand was using a too-small field too store its virtual register
- drop ConvertTo, replace it with simple copy
- split AllocatedOperand off from Immediate and Constant to make assignment clearer, also paving the way for small Immediates
- put zone first in *Operand::New
- driveby: drop delayed ssa deconstruction experiment

R=titzer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1050803002

Cr-Commit-Position: refs/heads/master@{#27692}
2015-04-09 09:15:32 +00:00
yangguo
fd8d0d1419 Blacklist tests due to optimizing toplevel with --always-opt.
Those two tests fail in gc-stress and custom snapshot (embedding mjsunit.js).
This is likely due to different GC timing with the custom snapshot.

R=mstarzinger@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1078653002

Cr-Commit-Position: refs/heads/master@{#27688}
2015-04-09 08:47:34 +00:00
mstarzinger
dd3067a787 Disable more failing tests after f3338dd3b0.
TBR=machenbach@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1075813002

Cr-Commit-Position: refs/heads/master@{#27687}
2015-04-09 08:21:45 +00:00
jing.bao
dba47f6486 [ia32] Introduce BMI instructions.
BUG=v8:4015
LOG=n

Review URL: https://codereview.chromium.org/1069683002

Cr-Commit-Position: refs/heads/master@{#27683}
2015-04-09 06:50:58 +00:00
arv
e965a1f84a ES6: Number and Boolean prototype should be ordinary objects
BUG=v8:4001
LOG=N
R=adamk@chromium.org, rossberg@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1051373002

Cr-Commit-Position: refs/heads/master@{#27680}
2015-04-08 21:18:40 +00:00
balazs.kilvady
8c3af6ca03 MIPS: [turbofan] Add new Float32Abs and Float64Abs operators.
Port 9af9f1d026

Original commit message:
These operators compute the absolute floating point value of some
arbitrary input, and are implemented without any branches (i.e. using
vabs on arm, and andps/andpd on x86).

BUG=

Review URL: https://codereview.chromium.org/1073463003

Cr-Commit-Position: refs/heads/master@{#27679}
2015-04-08 19:30:11 +00:00
caitpotter88
ab7d5f9620 [parser] report better errors for multiple ForBindings in ForIn/Of loops
Instead of "unexpected token" errors, report something meatier and more actionable.

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

Review URL: https://codereview.chromium.org/1062263002

Cr-Commit-Position: refs/heads/master@{#27677}
2015-04-08 18:47:45 +00:00
mstarzinger
4b5bf1e33c Disable more failing tests after f3338dd3b0.
TBR=machenbach@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1070843002

Cr-Commit-Position: refs/heads/master@{#27675}
2015-04-08 17:28:58 +00:00
loislo
eb95406e2b CpuProfiler: public API for deopt info in cpu profiler.
BUG=chromium:452067
LOG=n

Committed: https://crrev.com/baf927ff5115ec62a6dad684b9232ed9d3960e3a
Cr-Commit-Position: refs/heads/master@{#27626}

Review URL: https://codereview.chromium.org/1045753002

Cr-Commit-Position: refs/heads/master@{#27674}
2015-04-08 16:13:31 +00:00
mvstanton
af293729ad Tests that carefully checks opt/deopt status shouldn't --always-opt.
If we optimize a function before gathering feedback it may be
peppered with soft deoptimizations. So it can't help but deoptimize.
A judicious reading of the code isn't enough to determine what the
optimization state should be in the face of such chaotic gyrations.

BUG=
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/1069363003

Cr-Commit-Position: refs/heads/master@{#27671}
2015-04-08 15:56:01 +00:00
mstarzinger
515e483dd0 Disable more failing tests after f3338dd3b0.
TBR=machenbach@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1067413002

Cr-Commit-Position: refs/heads/master@{#27670}
2015-04-08 14:16:58 +00:00
titzer
1b400a14cb Add more systematic tests for comparisons.
Because, well, JavaScript is tricky and compilers like folding.

R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1069673002

Cr-Commit-Position: refs/heads/master@{#27668}
2015-04-08 13:15:41 +00:00
titzer
a511c78999 Fix maybe_string_add for adds that have no type feedback where --always-opt is on.
R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1071473003

Cr-Commit-Position: refs/heads/master@{#27667}
2015-04-08 13:14:30 +00:00
mstarzinger
322cfb3589 [turbofan] Add JSStackCheck into loop bodies.
This allows loopy TurboFan code to be interrupted by placing a stack
check (i.e. JSStackCheck node) into each loop. Note that we currently
limit this to non-asm.js code. Also note that stack checks are actually
placed after loop headers and not at back-branches, which allows us to
reuse existing BailoutIds from Crankshaft.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/1065923002

Cr-Commit-Position: refs/heads/master@{#27666}
2015-04-08 12:55:02 +00:00
mstarzinger
d1bcfaf034 [ia32] Fix MacroAssembler::Move for int64 to float64 moves.
R=bmeurer@chromium.org
TEST=test262-es6/language/expressions/addition/S9.3_A4.1_T2

Review URL: https://codereview.chromium.org/1071543003

Cr-Commit-Position: refs/heads/master@{#27663}
2015-04-08 12:06:59 +00:00
Benedikt Meurer
9af9f1d026 [turbofan] Add new Float32Abs and Float64Abs operators.
These operators compute the absolute floating point value of some
arbitrary input, and are implemented without any branches (i.e. using
vabs on arm, and andps/andpd on x86).

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/1066393002

Cr-Commit-Position: refs/heads/master@{#27662}
2015-04-08 11:55:04 +00:00
mstarzinger
ed6733e8fd Disable more failing tests after f3338dd3b0.
TBR=machenbach@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1067303003

Cr-Commit-Position: refs/heads/master@{#27661}
2015-04-08 11:42:24 +00:00
yangguo
3a4d073f1d Create result array of %DebugGetLoadedScripts outside the debug context.
R=jarin@chromium.org
BUG=chromium:474297
LOG=N

Review URL: https://codereview.chromium.org/1062143002

Cr-Commit-Position: refs/heads/master@{#27659}
2015-04-08 11:15:02 +00:00
titzer
2b59959c71 [turbofan] Match selects in control reducer (configurable).
R=bmeurer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1061303002

Cr-Commit-Position: refs/heads/master@{#27658}
2015-04-08 11:13:49 +00:00
yangguo
5db360dd56 Blacklist failing test on arm64 (issue 4016).
TBR=jkummerow@chromium.org
BUG=v8:4016
LOG=N

Review URL: https://codereview.chromium.org/1071513002

Cr-Commit-Position: refs/heads/master@{#27656}
2015-04-08 11:11:37 +00:00
mstarzinger
ad94e145c3 Disable more failing tests after f3338dd3b0.
TBR=yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1072433002

Cr-Commit-Position: refs/heads/master@{#27655}
2015-04-08 10:35:16 +00:00
mstarzinger
0716bc3f76 Disable more failing tests after f3338dd3b0.
TBR=yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1067353002

Cr-Commit-Position: refs/heads/master@{#27652}
2015-04-08 09:51:18 +00:00