vogelheim@chromium.org [Wed, 16 Jul 2014 12:18:33 +0000 (12:18 +0000)]
Change ScriptCompiler::CompileOptions to allow for two 'cache' modes
(parser or code) and to be explicit about cache consumption or production
(rather than making presence of cached_data imply one or the other.)
Also add a --cache flag to d8, to allow testing the functionality.
-----------------------------
API change
Reason: Currently, V8 supports a 'parser cache' for repeatedly executing the same script. We'd like to add a 2nd mode that would cache code, and would like to let the embedder decide which mode they chose (if any).
Note: Previously, the 'use cached data' property was implied by the presence of the cached data itself. (That is, kNoCompileOptions and source->cached_data != NULL.) That is no longer sufficient, since the presence of data is no longer sufficient to determine /which kind/ of data is present.
Changes from old behaviour:
- If you previously didn't use caching, nothing changes.
Example:
v8::CompileUnbound(isolate, source, kNoCompileOptions);
- If you previously used caching, it worked like this:
- 1st run:
v8::CompileUnbound(isolate, source, kProduceToCache);
Then, source->cached_data would contain the
data-to-be cached. This remains the same, except you
need to tell V8 which type of data you want.
v8::CompileUnbound(isolate, source, kProduceParserCache);
- 2nd run:
v8::CompileUnbound(isolate, source, kNoCompileOptions);
with source->cached_data set to the data you received in
the first run. This will now ignore the cached data, and
you need to explicitly tell V8 to use it:
v8::CompileUnbound(isolate, source, kConsumeParserCache);
-----------------------------
BUG=
R=marja@chromium.org, yangguo@chromium.org
Review URL: https://codereview.chromium.org/
389573006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22431
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 16 Jul 2014 12:03:33 +0000 (12:03 +0000)]
Rename [Load/Delete]ContextSlot for consistency after r22379.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
397973002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22430
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 16 Jul 2014 09:55:34 +0000 (09:55 +0000)]
Store builtin index on the builtin code object.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
395823002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22429
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 16 Jul 2014 09:54:34 +0000 (09:54 +0000)]
Properly escape benchmark names when retrieving results.
This allows benchmarks to contain regular expression characters in their name.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
396203003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22428
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Wed, 16 Jul 2014 09:53:32 +0000 (09:53 +0000)]
Revert "Remove erroneous uses of CXX / CXX_target / CXX_host from gyp."
This reverts commit r22425 for breaking the Arm debug builder.
BUG=384474
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
393273002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22427
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 16 Jul 2014 09:26:11 +0000 (09:26 +0000)]
Make ToPrimitive throw on symbol wrappers
R=mstarzinger@chromium.org
BUG=v8:3442
LOG=Y
Review URL: https://codereview.chromium.org/
389263003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22426
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Wed, 16 Jul 2014 09:20:37 +0000 (09:20 +0000)]
Remove erroneous uses of CXX / CXX_target / CXX_host from gyp.
The current gyp config tries to test whether the compiler is an arm / mips
compiler and whether it supports -m32 / -m64 based on a test within gyp.
Unfortunately CXX / CXX_target / CXX_host are no no longer set early enough
in gyp for this to work, and so all of these tests were actually being done
using "$(which g++)" rather than the appropriate CXX_target / CXX_host compiler.
This change removes these dynamic tests and instead bases the decisions on
knowledge of the host / target / v8_target architecture combination. The
the -m32/-m64 flags are set based on host_cxx_is_biarch / target_cxx_is_biarch,
which are set to reasonable defaults of only ia32/x64 or clang compilers
being build for biarch support. The host_cxx_is_biarch / target_cxx_is_biarch
variables can be overriden if required.
BUG=384474
LOG=NO
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
382343003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22425
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 16 Jul 2014 08:53:46 +0000 (08:53 +0000)]
Allow benchmarks to provide the standard deviation.
Some benchmarks include their own runner which provides an
overall average and a standard deviation. This enables
extraction of that value similar to the other measurements.
These benchmarks should only be run once. If a benchmarks
specifies multiple runs and provides a standard deviation,
a warning will be issued that makes the build fail on the
buildbot side.
TEST=python -m unittest run_benchmarks_test
BUG=393947
LOG=n
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
395633012
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22424
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 16 Jul 2014 08:42:52 +0000 (08:42 +0000)]
[Auto-roll] Bump up version to 3.28.26.0
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
394153003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22423
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 16 Jul 2014 08:14:50 +0000 (08:14 +0000)]
Do not expose all timer events to the API callback.
R=fmeawad@chromium.org
Review URL: https://codereview.chromium.org/
388783004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22422
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 16 Jul 2014 07:57:13 +0000 (07:57 +0000)]
Add script to bump up version on bleeding edge.
The version.cc file will from now on be controlled on
bleeding edge and on trunk. The next version to use will
always be max(bleeding_edge_version, trunk_version) + 1.
The trunk and bleeding_edge versions are not semantically
tied together. The trunk branch can be used to make
independent point releases of bleeding_edge revisions.
The version on bleeding_edge will be increased if:
- the lkgr version is smaller than the version of the latest
revision,
- the lkgr version is not a version change itself,
- the tree is not closed for maintenance.
This will allow chromium to refer directly to bleeding_edge
revisions of v8. The v8 versions will not be unique, but
they will change as often as possible, dependent on the lkgr
cycle time and the frequency this script is called.
BUG=391261
LOG=n
TEST=tools/push-to-trunk/script_test.py
TEST=tools/push-to-trunk/bump_up_version.py --dry_run
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
389353003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22421
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 16 Jul 2014 07:55:05 +0000 (07:55 +0000)]
Error.captureStackTrace should define "stack" property as configurable.
R=verwaest@chromium.org
BUG=393988
LOG=N
Review URL: https://codereview.chromium.org/
396063008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22420
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 16 Jul 2014 06:59:14 +0000 (06:59 +0000)]
Verify that source string matches serialized code.
R=mvstanton@chromium.org, vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
394793002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22417
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Wed, 16 Jul 2014 03:12:29 +0000 (03:12 +0000)]
X87: Drop unnecessary receiver validity checks from {Load,Store}IC_Normal
port r22391
original commit message:
Drop unnecessary receiver validity checks from {Load,Store}IC_Normal.
Since these builtins are used as handlers after a map check/dispatch, they don't need to check the receiver again.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
396833004
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22416
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
akos.palfi@imgtec.com [Tue, 15 Jul 2014 19:03:13 +0000 (19:03 +0000)]
MIPS: Minor fixes to r22396
BUG=
R=akos.palfi@imgtec.com
Review URL: https://codereview.chromium.org/
394913002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22413
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
akos.palfi@imgtec.com [Tue, 15 Jul 2014 19:01:31 +0000 (19:01 +0000)]
MIPS: Fix r19500 register usage to match to ASSERT.
BUG=
R=akos.palfi@imgtec.com
Review URL: https://codereview.chromium.org/
395863002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22412
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
akos.palfi@imgtec.com [Tue, 15 Jul 2014 19:00:02 +0000 (19:00 +0000)]
MIPS: Drop unnecessary receiver validity checks from {Load,Store}IC_Normal.
Port r22391 (fe86010)
Original commit message:
Since these builtins are used as handlers after a map check/dispatch, they don't need to check the receiver again.
BUG=
R=akos.palfi@imgtec.com
Review URL: https://codereview.chromium.org/
396663004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22411
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dusan.milosavljevic@rt-rk.com [Tue, 15 Jul 2014 16:57:04 +0000 (16:57 +0000)]
MIPS64: Reland r22082 "Replace HeapNumber as doublebox with an explicit MutableHeapNumber.
Port r22129 (676bb14).
TEST=
BUG=
R=balazs.kilvady@imgtec.com, paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/
395803002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22410
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 15 Jul 2014 12:22:38 +0000 (12:22 +0000)]
Revert "Remove failure tag.".
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
398473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22409
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 15 Jul 2014 11:11:15 +0000 (11:11 +0000)]
Remove failure tag.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
397613002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22408
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 15 Jul 2014 11:01:03 +0000 (11:01 +0000)]
Fix assertion failure. Use Vector instead of List in code deserializer.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
390353002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22407
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 15 Jul 2014 10:51:12 +0000 (10:51 +0000)]
Allow embedding of ConsString objects into code.
R=yangguo@chromium.org
BUG=v8:2803
LOG=N
Review URL: https://codereview.chromium.org/
395713002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22406
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Tue, 15 Jul 2014 10:41:23 +0000 (10:41 +0000)]
X87: Use the same registers for StoreIC and KeyedStoreIC.
port r22387
original commit message:
Use the same registers for StoreIC and KeyedStoreIC.
Based on https://codereview.chromium.org/
389283002 ("Use register parameters in ElementsTransitionGenerator") which must land first.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
391933002
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22405
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Tue, 15 Jul 2014 10:19:30 +0000 (10:19 +0000)]
Enum RegisterInfo renamed to ParameterIndices.
"Info" is information-poor.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
385953004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22404
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 15 Jul 2014 10:17:22 +0000 (10:17 +0000)]
Do not dump user source code in the code serializer.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
390303002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22403
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Tue, 15 Jul 2014 09:46:10 +0000 (09:46 +0000)]
X87: Use register parameters in ElementsTransitionGenerator
port r22384
original commit message:
Use register parameters in ElementsTransitionGenerator
x
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
395633010
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22402
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 15 Jul 2014 09:19:22 +0000 (09:19 +0000)]
Unify the IsShortcutCandidate predicate.
R=yangguo@chromium.org
BUG=v8:2803
LOG=N
Review URL: https://codereview.chromium.org/
390193007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22399
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 15 Jul 2014 08:46:47 +0000 (08:46 +0000)]
Fix up internalized strings after deserializing user code.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
387343002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22398
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
akos.palfi@imgtec.com [Tue, 15 Jul 2014 08:40:26 +0000 (08:40 +0000)]
MIPS: Use the same registers for StoreIC and KeyedStoreIC.
Port r22387 (
ff76c666)
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
390263002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22397
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
akos.palfi@imgtec.com [Tue, 15 Jul 2014 08:38:16 +0000 (08:38 +0000)]
MIPS: Use register parameters in ElementsTransitionGenerator.
Port r22384 (
52caca20)
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
393693003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22396
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
weiliang.lin@intel.com [Tue, 15 Jul 2014 08:37:37 +0000 (08:37 +0000)]
X87: Clean up and update const / var
port r22379
original commit message:
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=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
397573002
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22395
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 15 Jul 2014 08:24:44 +0000 (08:24 +0000)]
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/
396443004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22394
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 15 Jul 2014 08:13:42 +0000 (08:13 +0000)]
fix the vtune support bug.
During https://code.google.com/p/v8/source/detail?r=19925 checkin context bound scripts (Script)
and context unbound scripts (UnboundScript) are Distinguished.
And then Sven Panne helped to fix the vtune support compilation
error in https://code.google.com/p/v8/source/detail?r=20955.
The problem is that there is runtime error for vtune
support.
In our original implementation, we encapsulated and passed v8::internal::Script
to V8 API. It will leads to type check error for current V8::Script definition.
So I changed the Handle<Script> definition in JitCodeEvent
to Handle<UnboundScript>
and add the corresponding change in log.cc.
If you do NOT prefer to change in include/v8.h. I think I can change the definition of
CodeEventLogger::LogRecordedBuffer(...) so that the we can pass the correct
type (JSFunction) as V8::Script to V8 API.
BUG=
R=danno@chromium.org, svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
334263018
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22393
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Tue, 15 Jul 2014 08:10:26 +0000 (08:10 +0000)]
Fix flags for test cases involving arrow functions
There are a lot of tests in cctest/test-parsing/ErrorsArrowFunctions,
so it is quite slow. This patch removes some flags to make it faster.
Removing three flags that don't affect the test brings down the run
time one order of magnitude, which is fast enough even for debug/ASAN
bots.
Also, remove the unneeded kArrowFunctions flag from
cctest/test-parsing/NoErrorsYieldSloppyAllModes
BUG=
R=marja@chromium.org
Review URL: https://codereview.chromium.org/
387383002
Patch from Adrián Pérez de Castro <aperez@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22392
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 15 Jul 2014 08:07:25 +0000 (08:07 +0000)]
Drop unnecessary receiver validity checks from {Load,Store}IC_Normal.
Since these builtins are used as handlers after a map check/dispatch, they don't need to check the receiver again.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
390053002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22391
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 15 Jul 2014 06:59:42 +0000 (06:59 +0000)]
Removed some copy-n-paste from StackFrame::Foo API entries.
BUG=v8:3436
LOG=y
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
388183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22390
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Mon, 14 Jul 2014 20:43:41 +0000 (20:43 +0000)]
Use the same registers for StoreIC and KeyedStoreIC.
Based on https://codereview.chromium.org/
389283002 ("Use register parameters in ElementsTransitionGenerator") which must land first.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
390013002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22387
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kilvadyb@homejinni.com [Mon, 14 Jul 2014 18:53:49 +0000 (18:53 +0000)]
MIPS: Remove ASSERT since there are tons of different ASSIGN variants
Port r22382 (84a841f)
BUG=
R=akos.palfi@imgtec.com
Review URL: https://codereview.chromium.org/
395503002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22386
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kilvadyb@homejinni.com [Mon, 14 Jul 2014 18:22:34 +0000 (18:22 +0000)]
MIPS: 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.
Port r22379 (fb62653)
Original commit message:
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=akos.palfi@imgtec.com
Review URL: https://codereview.chromium.org/
389373004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22385
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Mon, 14 Jul 2014 15:03:38 +0000 (15:03 +0000)]
Use register parameters in ElementsTransitionGenerator.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
389283002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22384
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 14 Jul 2014 14:52:24 +0000 (14:52 +0000)]
Remove PropertyAttributes from SetProperty
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
390833003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22383
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 14 Jul 2014 14:42:33 +0000 (14:42 +0000)]
Remove ASSERT since there are tons of different ASSIGN variants
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
385173009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22382
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 14 Jul 2014 14:05:30 +0000 (14:05 +0000)]
Replace AddProperty by AddNamedProperty to speed up the common case
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/
384003003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22381
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 14 Jul 2014 14:01:30 +0000 (14:01 +0000)]
Fix d8 object printing (symbols, accessors)
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
388243002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22380
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 14 Jul 2014 14:01:04 +0000 (14:01 +0000)]
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
rossberg@chromium.org [Mon, 14 Jul 2014 14:00:33 +0000 (14:00 +0000)]
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
mstarzinger@chromium.org [Mon, 14 Jul 2014 13:57:10 +0000 (13:57 +0000)]
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
titzer@chromium.org [Mon, 14 Jul 2014 13:02:36 +0000 (13:02 +0000)]
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
rossberg@chromium.org [Mon, 14 Jul 2014 12:27:08 +0000 (12:27 +0000)]
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
hpayer@chromium.org [Mon, 14 Jul 2014 11:31:22 +0000 (11:31 +0000)]
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
yangguo@chromium.org [Mon, 14 Jul 2014 11:22:03 +0000 (11:22 +0000)]
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
rossberg@chromium.org [Mon, 14 Jul 2014 10:59:29 +0000 (10:59 +0000)]
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
jochen@chromium.org [Mon, 14 Jul 2014 10:54:24 +0000 (10:54 +0000)]
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
yangguo@chromium.org [Mon, 14 Jul 2014 10:47:40 +0000 (10:47 +0000)]
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
machenbach@chromium.org [Mon, 14 Jul 2014 09:27:07 +0000 (09:27 +0000)]
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
marja@chromium.org [Mon, 14 Jul 2014 07:55:45 +0000 (07:55 +0000)]
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
jochen@chromium.org [Mon, 14 Jul 2014 07:19:49 +0000 (07:19 +0000)]
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
machenbach@chromium.org [Sat, 12 Jul 2014 16:56:32 +0000 (16:56 +0000)]
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
machenbach@chromium.org [Sat, 12 Jul 2014 15:27:18 +0000 (15:27 +0000)]
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
jarin@chromium.org [Fri, 11 Jul 2014 19:30:09 +0000 (19:30 +0000)]
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
mvstanton@chromium.org [Fri, 11 Jul 2014 14:50:59 +0000 (14:50 +0000)]
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
mvstanton@chromium.org [Fri, 11 Jul 2014 13:53:19 +0000 (13:53 +0000)]
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
kilvadyb@homejinni.com [Fri, 11 Jul 2014 13:49:33 +0000 (13:49 +0000)]
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
machenbach@chromium.org [Fri, 11 Jul 2014 13:29:12 +0000 (13:29 +0000)]
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
svenpanne@chromium.org [Fri, 11 Jul 2014 12:55:56 +0000 (12:55 +0000)]
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
svenpanne@chromium.org [Fri, 11 Jul 2014 12:42:37 +0000 (12:42 +0000)]
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
machenbach@chromium.org [Fri, 11 Jul 2014 12:37:53 +0000 (12:37 +0000)]
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
machenbach@chromium.org [Fri, 11 Jul 2014 12:28:22 +0000 (12:28 +0000)]
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
svenpanne@chromium.org [Fri, 11 Jul 2014 12:12:58 +0000 (12:12 +0000)]
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
machenbach@chromium.org [Fri, 11 Jul 2014 11:54:33 +0000 (11:54 +0000)]
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
dslomov@chromium.org [Fri, 11 Jul 2014 11:33:57 +0000 (11:33 +0000)]
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
dslomov@chromium.org [Fri, 11 Jul 2014 11:20:37 +0000 (11:20 +0000)]
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
akos.palfi@imgtec.com [Fri, 11 Jul 2014 10:02:48 +0000 (10:02 +0000)]
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
hpayer@chromium.org [Fri, 11 Jul 2014 09:51:34 +0000 (09:51 +0000)]
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
alph@chromium.org [Fri, 11 Jul 2014 09:06:12 +0000 (09:06 +0000)]
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
mstarzinger@chromium.org [Fri, 11 Jul 2014 07:51:25 +0000 (07:51 +0000)]
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
weiliang.lin@intel.com [Fri, 11 Jul 2014 07:47:58 +0000 (07:47 +0000)]
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
yangguo@chromium.org [Fri, 11 Jul 2014 07:04:51 +0000 (07:04 +0000)]
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
yangguo@chromium.org [Fri, 11 Jul 2014 06:58:25 +0000 (06:58 +0000)]
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
yangguo@chromium.org [Fri, 11 Jul 2014 06:46:24 +0000 (06:46 +0000)]
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
marja@chromium.org [Fri, 11 Jul 2014 06:39:31 +0000 (06:39 +0000)]
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
akos.palfi@imgtec.com [Fri, 11 Jul 2014 01:50:12 +0000 (01:50 +0000)]
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
rmcilroy@chromium.org [Thu, 10 Jul 2014 22:39:10 +0000 (22:39 +0000)]
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
machenbach@chromium.org [Thu, 10 Jul 2014 19:24:33 +0000 (19:24 +0000)]
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
verwaest@chromium.org [Thu, 10 Jul 2014 18:30:19 +0000 (18:30 +0000)]
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
rmcilroy@chromium.org [Thu, 10 Jul 2014 18:06:39 +0000 (18:06 +0000)]
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
hpayer@chromium.org [Thu, 10 Jul 2014 17:13:27 +0000 (17:13 +0000)]
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
mstarzinger@chromium.org [Thu, 10 Jul 2014 16:31:57 +0000 (16:31 +0000)]
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
mstarzinger@chromium.org [Thu, 10 Jul 2014 15:19:29 +0000 (15:19 +0000)]
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
mvstanton@chromium.org [Thu, 10 Jul 2014 14:59:47 +0000 (14:59 +0000)]
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
rossberg@chromium.org [Thu, 10 Jul 2014 14:54:35 +0000 (14:54 +0000)]
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
hpayer@chromium.org [Thu, 10 Jul 2014 14:50:32 +0000 (14:50 +0000)]
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
mstarzinger@chromium.org [Thu, 10 Jul 2014 14:41:06 +0000 (14:41 +0000)]
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
rossberg@chromium.org [Thu, 10 Jul 2014 14:39:35 +0000 (14:39 +0000)]
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
rossberg@chromium.org [Thu, 10 Jul 2014 14:06:37 +0000 (14:06 +0000)]
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
hpayer@chromium.org [Thu, 10 Jul 2014 13:57:07 +0000 (13:57 +0000)]
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
mstarzinger@chromium.org [Thu, 10 Jul 2014 12:37:08 +0000 (12:37 +0000)]
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
marja@chromium.org [Thu, 10 Jul 2014 12:27:07 +0000 (12:27 +0000)]
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
hpayer@chromium.org [Thu, 10 Jul 2014 12:22:01 +0000 (12:22 +0000)]
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
hpayer@chromium.org [Thu, 10 Jul 2014 12:07:28 +0000 (12:07 +0000)]
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