Commit Graph

17291 Commits

Author SHA1 Message Date
verwaest@chromium.org
aa7198dfdd This CL simplifies var / const by ensuring the behavior is consistent in itself, and with regular JS semantics; between regular var/const and eval-ed var/const.
Legacy const is changed so that a declaration declares a configurable, but non-writable, slot, and the initializer reconfigures it (when possible) to non-configurable non-writable. This avoids the need for "the hole" as marker value in JSContextExtensionObjects and GlobalObjects. Undefined is used instead.

BUG=
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 14:01:04 +00:00
rossberg@chromium.org
942fe1914f Reland "Include symbol properties in Object.{create,defineProperties}"
Second try; implementation that doesn't rely on external arrays.

R=mstarzinger@chromium.org
BUG=v8:3440

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 14:00:33 +00:00
mstarzinger@chromium.org
cb3e2beba3 Fix error message about read-only symbol properties.
R=rossberg@chromium.org
BUG=v8:3441
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 13:57:10 +00:00
titzer@chromium.org
f28f6102f8 Revert "Remove sequential sweeping mode and perform lazy sweeping when no sweeper threads are active."
Reason: broke win64 build

This reverts commit 221bfdd2da2b6f3c1cbe77c5d197f1ea626b0bd2.

TBR=hpayer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 13:02:36 +00:00
rossberg@chromium.org
f2536bf7af Revert "Include symbol properties in Object.{create,defineProperties}"
TBR=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 12:27:08 +00:00
hpayer@chromium.org
030df48ced Remove sequential sweeping mode and perform lazy sweeping when no sweeper threads are active.
BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 11:31:22 +00:00
yangguo@chromium.org
ba8bbee634 Serialize builtins by referencing canonical ones.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 11:22:03 +00:00
rossberg@chromium.org
5c8d0d18f0 Include symbol properties in Object.{create,defineProperties}
R=mstarzinger@chromium.org
BUG=v8:3440
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 10:59:29 +00:00
jochen@chromium.org
712957548d Unify LookupIterator::GetRoot and Objects::GetRootMap
BUG=none
R=verwaest@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 10:54:24 +00:00
yangguo@chromium.org
cc9a9f4191 Ensure that each profiling entry ends with a new line.
Currently this does not happen if the message builder buffer is full.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 10:47:40 +00:00
machenbach@chromium.org
4493756dcb Whitespace change to trigger bots.
TBR=jochen@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 09:27:07 +00:00
marja@chromium.org
70da8959bc 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/383983002

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 07:55:45 +00:00
jochen@chromium.org
168742b81a Introduce a PrototypeIterator class and use it for prototype access
The new pattern is that we first get the map of the root of the
prototype chain using Object::GetMapRoot() and then walk up the
prototype chain using Map::prototype().

BUG=???
R=verwaest@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 07:19:49 +00:00
machenbach@chromium.org
df3c11d760 Whiltespace change to trigger bots.
TBR=jochen@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-12 16:56:32 +00:00
machenbach@chromium.org
ac96f2d727 Whiltespace change to trigger bots.
TBR=jochen@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-12 15:27:18 +00:00
jarin@chromium.org
457de26330 Fix arm64 deoptimization from double registers (reverts r20613).
This reverts "ARM64: Use pair memory access in deoptimizer entry", r20613. It does not really make sense to micro-optimize the deoptimizer as it is the ultra-slow path. Moreover, the original code was easier to read (in addition to being correct).

BUG=391313
LOG=N
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 19:30:09 +00:00
mvstanton@chromium.org
18961d7c03 Revert "Use the same registers for StoreIC and KeyedStoreIC."
This reverts commit r22358 due to release mode arm64 test failures.

TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 14:50:59 +00:00
mvstanton@chromium.org
8a0267f96e Use the same registers for StoreIC and KeyedStoreIC.
The x64 and ia32 platforms already did this, port to arm and arm64.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 13:53:19 +00:00
kilvadyb@homejinni.com
8efe72df31 MIPS: slightly reduce deopt tables size.
Port r22305 (00a3740)

BUG=
R=dusan.milosavljevic@rt-rk.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 13:49:33 +00:00
machenbach@chromium.org
aa2aaa0831 Whitespace change to trigger bots.
BUG=
TBR=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 13:29:12 +00:00
svenpanne@chromium.org
4e69166807 Unbreak build by making old MSVC happy (hopefully).
TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 12:55:56 +00:00
svenpanne@chromium.org
99d3c3b1c4 Made printing of special FP values portable.
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 12:42:37 +00:00
machenbach@chromium.org
d0e1daf357 Whitespace change to trigger bots.
BUG=
TBR=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 12:37:53 +00:00
machenbach@chromium.org
316e4ad297 Whitespace change to trigger bots.
BUG=
TBR=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 12:28:22 +00:00
svenpanne@chromium.org
1e2d3ecb35 Make UBSan happy.
This involves avoiding signed multiplication overflow, shifting too
far and overflow during negation.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 12:12:58 +00:00
machenbach@chromium.org
0a5a0cc36c Whitespace change to trigger bots.
BUG=
TBR=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 11:54:33 +00:00
dslomov@chromium.org
1b5958382a Revert "Remove sequential sweeping mode and perform lazy sweeping when no sweeper threads are active."
This reverts commit r22346 for breaking GC stress tests.

TBR=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 11:33:57 +00:00
dslomov@chromium.org
4db1f68077 Disabling flakes.Filed 3433, 3434, 3435.
R=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 11:20:37 +00:00
akos.palfi@imgtec.com
aba630f104 MIPS: update owners.
BUG=
R=danno@chromium.org, plind44@gmail.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 10:02:48 +00:00
hpayer@chromium.org
6d022494ec Remove sequential sweeping mode and perform lazy sweeping when no sweeper threads are active.
BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 09:51:34 +00:00
alph@chromium.org
e64230c1f9 Unflake and speedup JsNative*Sample cpu profile tests
Instead of running cpu profiler for a hundred milliseconds,
collecting samples distributed in a non-deterministic way all along
the code, make the tests rely on a single sample we collect on
the profiler start.

R=bmeurer@chromium.org, yurys@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 09:06:12 +00:00
mstarzinger@chromium.org
4468f441b0 Remove AddCode and RemoveCode GDB JIT entry hooks.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 07:51:25 +00:00
weiliang.lin@intel.com
9d047839b5 X87: Use a register spec for StoreIC and KeyedStoreIC.
port r22328

original commit message:

  Use a register spec for StoreIC and KeyedStoreIC.

  This continues refactoring already applied for LoadIC in r22035 (https://code.google.com/p/v8/source/detail?r=22035).

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 07:47:58 +00:00
yangguo@chromium.org
fe072007d7 Change ASSERTs in serializer macro to STATIC_ASSERTs.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 07:04:51 +00:00
yangguo@chromium.org
ada872481f Fix assertion in ScriptData.
R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 06:58:25 +00:00
yangguo@chromium.org
11dbc40cf3 Temporarily remove newly introduced assertion.
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 06:46:24 +00:00
marja@chromium.org
938b57f75b Revert "Implement handling of arrow functions in the parser"
This reverts revision 22320.

Reason: ASAN still detects leaks!

Conflicts:
	src/preparser.h

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 06:39:31 +00:00
akos.palfi@imgtec.com
e97ea23fa8 MIPS: Use a register spec for StoreIC and KeyedStoreIC.
Port r22328 (92275b7a)

Original commit message:
This continues refactoring already applied for LoadIC in r22035 (https://code.google.com/p/v8/source/detail?r=22035).

BUG=
R=gergely@homejinni.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 01:50:12 +00:00
rmcilroy@chromium.org
d6e2065910 Revert "Enable out-of-line constant pool on Arm"
This reverts r22332 due to Arm breakages.

TBR=dslomov

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 22:39:10 +00:00
machenbach@chromium.org
38b13b0adf Add compile-only win64 trybot.
BUG=353487
LOG=n
R=jochen@chromium.org
TBR=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 19:24:33 +00:00
verwaest@chromium.org
42276f2467 Ensure we update attributes in CopyGeneralizeFieldRepresentation
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 18:30:19 +00:00
rmcilroy@chromium.org
648e570a0e Enable out-of-line constant pool on Arm
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 18:06:39 +00:00
hpayer@chromium.org
cff790d0b3 Fix windows compile, again.
BUG=
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 17:13:27 +00:00
mstarzinger@chromium.org
d0667e9755 Only install JitCodeEventHandler for GDB JIT if requested.
TBR=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 16:31:57 +00:00
mstarzinger@chromium.org
be3fa945c5 Fix compilation with shared library.
TBR=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 15:19:29 +00:00
mvstanton@chromium.org
3d880be540 Use a register spec for StoreIC and KeyedStoreIC.
This continues refactoring already applied for LoadIC in r22035 (https://code.google.com/p/v8/source/detail?r=22035).

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 14:59:47 +00:00
rossberg@chromium.org
da5bc8d517 Stray assertion
TBR=marja@chromium.org
BUG=

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

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 14:50:32 +00:00
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