Commit Graph

17243 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
5e938f9976 Remove GDB JIT hooks from the position recorder.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 14:41:06 +00:00
rossberg@chromium.org
1d7cd30677 Parser sync tests for let identifiers
R=marja@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 14:39:35 +00:00
rossberg@chromium.org
e274edc8b8 Make let usable as an identifier in ES6 sloppy mode.
All of our mjsunit suite now runs through with --harmony-scoping enabled, up to expected failures (tests checking syntax errors for const/function in strict mode).

R=marja@chromium.org, ulan@chromium.org
BUG=v8:2198
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 14:06:37 +00:00
hpayer@chromium.org
a087f30500 Fix Windows compile error.
BUG=
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 13:57:07 +00:00
mstarzinger@chromium.org
2269da5287 Switch type of the-hole to be internal.
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 12:37:08 +00:00
marja@chromium.org
e5991fc373 Implement handling of arrow functions in the parser
Arrow functions are parsed from ParseAssignmentExpression(). Handling the
parameter list is done by letting ParseConditionalExpression() parse a comma
separated list of identifiers, and it returns a tree of BinaryOperation nodes
with VariableProxy leaves, or a single VariableProxy if there is only one
parameter. When the arrow token "=>" is found, the VariableProxy nodes are
passed to ParseArrowFunctionLiteral(), which will then skip parsing the
paramaeter list. This avoids having to rewind when the arrow is found and
restart parsing the parameter list.

Note that the empty parameter list "()" is handled directly in
ParsePrimaryExpression(): after is has consumed the opening parenthesis,
if a closing parenthesis follows, then the only valid input is an arrow
function. In this case, ParsePrimaryExpression() directly calls
ParseArrowFunctionLiteral(), to avoid needing to return a sentinel value
to signal the empty parameter list. Because it will consume the body of
the arrow function, ParseAssignmentExpression() will not see the arrow
"=>" token as next, and return the already-parser expression.

The implementation is done in ParserBase, so it was needed to do some
additions to ParserBase, ParserTraits and PreParserTraits. Some of the
glue code can be removed later on when more more functionality is moved
to ParserBase.

Additionally, this adds a runtime flag "harmony_arrow_functions"
(disabled by default); enabling "harmony" will enable it as well.

BUG=v8:2700
LOG=N
R=marja@chromium.org

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

Patch from Adrián Pérez de Castro <aperez@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 12:27:07 +00:00
hpayer@chromium.org
0b38ffaca8 Revert "Precisely sweeping of scan-on-scavenge pages."
BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 12:22:01 +00:00
hpayer@chromium.org
ce916ff99a Allow main thread to contribute to the sweeping phase.
BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 12:07:28 +00:00
yangguo@chromium.org
4057ed91af Fix memory leak in Parser after r22314.
R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 11:34:14 +00:00
yurys@chromium.org
3994880715 Support ES6 Map and Set in heap profiler
Added special handling for Map and Set in the heap snapshot generator.

Extracted common base type from JSMap/JSSet similar to JSWeakMap/JSWeakSet.

After handling collection specific properties all collections are processed as regular JSObject to make sure all regular properties set on them are present in the heap snapshot.

BUG=v8:3368
LOG=Y
R=alph@chromium.org, rossberg@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=22311

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 10:54:47 +00:00
yangguo@chromium.org
d9d66d02b4 Fix build.
TBR=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 10:48:28 +00:00
yangguo@chromium.org
339bc81390 Refactor ScriptData class for cached compile data.
R=marja@chromium.org, vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 10:28:05 +00:00
machenbach@chromium.org
500b76d5be Only compare allocation output in predictable mode.
This also adds an assert that makes sure allocations are printed.

BUG=391747
LOG=n
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 09:48:31 +00:00
yurys@chromium.org
3b2511ed4a Revert "Support ES6 Map and Set in heap profiler"
This reverts commit 47f86e067f due to some weird (likely unrelated) compilation errors.

BUG=v8:3368
TBR=rossberg

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 08:45:45 +00:00
yurys@chromium.org
47f86e067f Support ES6 Map and Set in heap profiler
Added special handling for Map and Set in the heap snapshot generator.

Extracted common base type from JSMap/JSSet similar to JSWeakMap/JSWeakSet.

After handling collection specific properties all collections are processed as regular JSObject to make sure all regular properties set on them are present in the heap snapshot.

BUG=v8:3368
LOG=Y
R=alph@chromium.org, rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 07:24:52 +00:00
adamk@chromium.org
05463c4906 Avoid unnecessary hashing in OrderedHashTable
Add an overload of OrderedHashTable::FindEntry that takes
a hash along with the key to allow callsites which need to
re-use the hash (such as Add()) to avoid recomputing it.

On my Macbook this results in improvements on the Collections
microbenchmarks:
  Map-Collections: +4%
  Set-Collections: +5%

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 16:19:53 +00:00
marja@chromium.org
79ddf746d9 Parser / Scanner: Minor refactorings to make streaming scripts work easier.
1) Call DeserializeScopeChain only if it's going to do something
non-trivial. And we only need to internalize the AstValueFactory in those cases.

2) BufferedUtf16CharacterStream::FillBuffer doesn't need the length
argument. The length is always kBufferSize and the subclasses can just read it
(it's protected).

R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 14:50:23 +00:00
mstarzinger@chromium.org
91efa58849 Drop deprecated --es5-readonly flag from test suite.
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 14:37:58 +00:00
m.m.capewell@googlemail.com
577984b3d6 ARM: sligthly reduce deopt tables size
BUG=
R=ulan@chromium.org, bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 14:08:13 +00:00
jochen@chromium.org
c1f6a0306e Remove deprecate counter/histogram methods
Callers should use the methods with the same name on Isolate instead.

BUG=none
R=dcarney@chromium.org
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 14:03:05 +00:00
machenbach@chromium.org
562274b60d Fix number of times failures are rerun.
BUG=374134
LOG=n
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 12:48:08 +00:00
svenpanne@chromium.org
4533294e98 Fixed printing of external references.
Previously we relied on undefined behavior (printf("%s", NULL)), now
we explicitly emit "<unknown>" when we hit an external reference with
an unknown name.

BUG=392068
LOG=y
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 12:12:21 +00:00
svenpanne@chromium.org
5f2bd30bb4 Fixed expected builtins count
TBR=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 12:11:35 +00:00
machenbach@chromium.org
3023e46f19 Make fuzz-natives test generator more robust.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:39:22 +00:00
machenbach@chromium.org
13f4c91276 Fix test driver output for passes in predictable mode.
Passes in predictable mode were wrongly reported as failures by the json progress indicator. This moves control about what is reported completely to execution.py.

BUG=391747
LOG=n
R=ishell@chromium.org, jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:37:36 +00:00
rossberg@chromium.org
23753270ba Fix several issues with ES6 redeclaration checks
R=ulan@chromium.org
BUG=v8:3426
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:35:05 +00:00
dusan.milosavljevic@rt-rk.com
a0f6878a06 Add mips64 port.
Summary:

- Changes in common code are mainly boilerplate changes,
gyp and test status files updates.

- On mips64 simulator all tests pass from all test units.

- Current issues: mjsunit JS debugger tests fail randomly on HW in release mode.
Corresponding tests are skipped on HW.

- Skipped tests on mips64: test-heap/ReleaseOverReservedPages, mjsunit/debug-*

TEST=
BUG=
R=danno@chromium.org, plind44@gmail.com, ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:08:26 +00:00
mstarzinger@chromium.org
cb778b24ae Fix trailing whitespace in gdbinit file.
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 10:55:55 +00:00
mstarzinger@chromium.org
50beec9738 Follow-up to a pre-existing regression test.
R=yangguo@chromium.org
BUG=v8:1530,v8:1872
TEST=mjsunit/regress/regress-1530
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 10:23:58 +00:00
jochen@chromium.org
2200522271 Add a check that we make progress during incremental marking
BUG=381820
R=hpayer@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 09:16:54 +00:00
rmcilroy@chromium.org
ae6496e6ea [Arm]: Optimize ConstantPoolBuilder::Populate code by minimizing calls to OffsetOfElementAt
Calling OffsetOfElementAt becomes expensive when compiling functions with many
constant pool entries.  This was causing a regression in MandreelLatency due
to the time spent populating the constant pool array for large compiled
functions.

This change avoids calling OffsetOfElementAt for each entry, and instead keeps
track of the current offsets in ConstantPoolBuilder::Populate.  This gives the
following improvements on a Nexus 5:

                     Inline CP  |  OOL CP (before CL)  |  OOL CP (after CL)
Mandreel:               4305    |        3961          |       4120
MandreelLatency:        2298    |        1198          |       1994
Octane Score:           5197    |        4982          |       5152

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 09:08:37 +00:00
ulan@chromium.org
68036255ea Fix for-loop with const/let and empty condition/iteration statements.
BUG=v8:3425, v8:3424
LOG=N
TEST=mjsunit/harmony/empty-for.js
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 07:50:11 +00:00
yangguo@chromium.org
8a2a4bf983 Flush ICache after deserializing code.
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 07:32:55 +00:00
yangguo@chromium.org
823daea2ba Temporarily disable test-compiler/SerializeToplevel on ARM.
TBR=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 06:02:18 +00:00
machenbach@chromium.org
e3e03d80ef Add predictable mode to test driver.
BUG=391747
LOG=n
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 15:59:23 +00:00
aandrey@chromium.org
6872ad5c46 Change some names in Promise instrumentation events.
TBR=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 14:45:57 +00:00
dslomov@chromium.org
969a3d7b9d Add TIMEOUT for MultithreadedParallelIsolates
R=machenbach@chromium.org
BUG=v8:3215
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 14:43:09 +00:00
Jacob.Bramley@arm.com
2e257d6cff Reland r22247 "ARM64: Use UntagSmi helpers and clean up assertions."
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 14:14:25 +00:00
yangguo@chromium.org
41b74fd26f Fix issues with code serializer.
- code pre-aging does not work with serializing.
- compilation info needs to remember that we compile for serializing.
- test case leaks memory.

R=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 14:13:50 +00:00
jochen@chromium.org
cfff8e95d9 Add vogelheim@ to v8 OWNERS
R=danno@chromium.org, vogelheim@chromium.org
LOG=n
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 13:26:48 +00:00
hpayer@chromium.org
1435d0d7aa We can iterate a scan on scavange page if it was precisely swept or just added to the old generation.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 12:29:15 +00:00
hpayer@chromium.org
2cf9fc19f2 Make sure that the overflow store buffer size is always larger or equals than the regular store buffer size.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 11:22:51 +00:00
yangguo@chromium.org
0bc70a5f3e Temporarily disable failing test.
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 10:22:26 +00:00
yangguo@chromium.org
1aede5f400 Introduce code serializer/deserializer.
R=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 09:04:08 +00:00
jkummerow@chromium.org
54b294a418 Use hydrogenized KeyedLoadGeneric stub for generic named loads too (with --compiled-keyed-generic-loads).
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:46:33 +00:00
hpayer@chromium.org
ac8b636756 Reland "Precisely sweep scan on scavenge pages and use heap iterator to iterate over them."
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:44:45 +00:00
jkummerow@chromium.org
d7ecf0e428 Fix build (solve OBJECT_PRINT dependency)
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:43:20 +00:00
jkummerow@chromium.org
3b9da14adf --trace-ic: much faster and available in Release mode.
Also add IC tracing to a path where it was missing.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:28:08 +00:00
hpayer@chromium.org
a0dadc8b0d Avoid scan-on-scavenge pages during full collection.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:20:22 +00:00
marja@chromium.org
c393b9a576 Revert "Implement handling of arrow functions in the parser"
This reverts r22265.

Reason: ASAN tests fail.

BUG=
TBR=marja@chromium.org,aperez@igalia.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 07:48:22 +00:00