platform/upstream/v8.git
11 years agoConsistently unlink evacuation candidates before sweeping.
mstarzinger@chromium.org [Mon, 11 Mar 2013 10:11:57 +0000 (10:11 +0000)]
Consistently unlink evacuation candidates before sweeping.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Unify deoptimizer for stub failure trampoline frames.
palfia@homejinni.com [Mon, 11 Mar 2013 09:58:45 +0000 (09:58 +0000)]
MIPS: Unify deoptimizer for stub failure trampoline frames.

Port r13887 (6d146270)

Original commit message:
This unifies the translation of a compiled stub frame to a stub failure
trampoline frame. Only the frame's register allocation is different on
each architecture and can be factored out.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Fix debug mode related porting mistakes.
palfia@homejinni.com [Mon, 11 Mar 2013 09:56:51 +0000 (09:56 +0000)]
MIPS: Fix debug mode related porting mistakes.

This commit fixes bugs in commit r13874 and in r13876.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFixed register allocation corner case.
svenpanne@chromium.org [Mon, 11 Mar 2013 09:49:00 +0000 (09:49 +0000)]
Fixed register allocation corner case.

The predicate CanBeSpilled had a bug, prohibiting the necessary spilling and
correct splitting of live ranges. Removed a redundant assertion immediately done
by the callee anyway.

Thanks to Slava for help with that issue and the entertaining historical
background of the whole story... ;-)

BUG=177883

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoIn the absence of type feedback, pessimistically force Tagged representation for...
jkummerow@chromium.org [Mon, 11 Mar 2013 08:42:07 +0000 (08:42 +0000)]
In the absence of type feedback, pessimistically force Tagged representation for UnaryAdd

BUG=v8:2527

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Add .dir-locals.el."
svenpanne@chromium.org [Mon, 11 Mar 2013 08:16:22 +0000 (08:16 +0000)]
Revert "Add .dir-locals.el."

After some discussions, this seems to be the wrong approach. We should probably
either link to the Google style guide and its related configuration files, or
even add a Makefile target for downloading it.

Furthermore, with this change Emacs keeps popping up an annoying confirmation
window for new files.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoTo fully support hydrogen code stubs which accept a variable number of arguments,
mvstanton@chromium.org [Fri, 8 Mar 2013 21:07:55 +0000 (21:07 +0000)]
To fully support hydrogen code stubs which accept a variable number of arguments,
the HReturn/LReturn instruction needs to be able to determine argument count
from a stack evaluation rather than as a constant from scope.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUnify deoptimizer for stub failure trampoline frames.
mstarzinger@chromium.org [Fri, 8 Mar 2013 16:18:50 +0000 (16:18 +0000)]
Unify deoptimizer for stub failure trampoline frames.

This unifies the translation of a compiled stub frame to a stub failure
trampoline frame. Only the frame's register allocation is different on
each architecture and can be factored out.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUnlink evacuation candidates from list of pages before starting sweeper threads.
hpayer@chromium.org [Fri, 8 Mar 2013 14:41:21 +0000 (14:41 +0000)]
Unlink evacuation candidates from list of pages before starting sweeper threads.
Removed FinalizeSweeping().

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEnsure runtime functions have a NoHandleAllocation scope.
mstarzinger@chromium.org [Fri, 8 Mar 2013 14:11:58 +0000 (14:11 +0000)]
Ensure runtime functions have a NoHandleAllocation scope.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd .dir-locals.el.
svenpanne@chromium.org [Fri, 8 Mar 2013 13:47:58 +0000 (13:47 +0000)]
Add .dir-locals.el.

* .dir-locals.el: New file, to help Emacs users produce better
  changesets.  In particular, prevents automatic copyright year
  updates.

BUG=

Review URL: https://codereview.chromium.org/12687003
Patch from  Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrepare push to trunk. Now working on version 3.17.10.
svenpanne@chromium.org [Fri, 8 Mar 2013 13:12:50 +0000 (13:12 +0000)]
Prepare push to trunk.  Now working on version 3.17.10.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRestore Function()'s expected string representation.
mstarzinger@chromium.org [Fri, 8 Mar 2013 11:47:20 +0000 (11:47 +0000)]
Restore Function()'s expected string representation.

R=rossberg@chromium.org
BUG=v8:2470
TEST=mjsunit/regress/regress-2470

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEnable deprecatations (again).
svenpanne@chromium.org [Fri, 8 Mar 2013 08:37:28 +0000 (08:37 +0000)]
Enable deprecatations (again).

Hopefully we will win the race this time...

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Unify grow mode and stub kind
palfia@homejinni.com [Fri, 8 Mar 2013 00:55:24 +0000 (00:55 +0000)]
MIPS: Unify grow mode and stub kind

Port r13850 (bb94d408)

Original commit message:
In the process, ensure that transition-causing element stores handle all cases of the transitioned receiver map.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Cleaned up CpuFeature scope handling.
palfia@homejinni.com [Fri, 8 Mar 2013 00:54:19 +0000 (00:54 +0000)]
MIPS: Cleaned up CpuFeature scope handling.

Port r13823 (cb37ab63)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Make IC patching resilient to flushing of the original target() ic.
palfia@homejinni.com [Fri, 8 Mar 2013 00:52:37 +0000 (00:52 +0000)]
MIPS: Make IC patching resilient to flushing of the original target() ic.

Port r13831 (52d6fd70)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: ES6 symbols: Allow symbols as property names
palfia@homejinni.com [Fri, 8 Mar 2013 00:49:28 +0000 (00:49 +0000)]
MIPS: ES6 symbols: Allow symbols as property names

Port r13811 (0e64f280)

Original commit message:
Since symbols and strings share a common representation, most of this change is about consistently replacing 'String' with 'Name' in all places where property names are expected. In particular, no new logic at all is necessary for maps, property dictionaries, or transitions. :) The only places where an actual case distinction is needed have to do with generated type checks, and with conversions of names to strings (especially in logger and profiler).

Left in some TODOs wrt to the API: interceptors and native getters don't accept symbols as property names yet, because that would require extending the external v8.h.

(Baseline CL: https://codereview.chromium.org/12296026/)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Polymorphism support for load IC.
palfia@homejinni.com [Fri, 8 Mar 2013 00:46:45 +0000 (00:46 +0000)]
MIPS: Polymorphism support for load IC.

Port r13801 (6de52924)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Fixed ASSERT in commit r13807.
palfia@homejinni.com [Fri, 8 Mar 2013 00:44:52 +0000 (00:44 +0000)]
MIPS: Fixed ASSERT in commit r13807.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: ES6 symbols: Implement Symbol intrinsic and basic functionality
palfia@homejinni.com [Fri, 8 Mar 2013 00:42:59 +0000 (00:42 +0000)]
MIPS: ES6 symbols: Implement Symbol intrinsic and basic functionality

Port r13786 (b5e7a82a)

Original commit message:
- Add --harmony-symbols flag.
- Add Symbol constructor; allow symbols as (unreplaced) return value from constructors.
- Introduce %CreateSymbol and %_IsSymbol natives and respective instructions.
- Extend 'typeof' code generation to handle symbols.
- Extend CompareIC with a UNIQUE_NAMES state that (uniformly) handles internalized strings and symbols.
- Property lookup delegates to SymbolDelegate object for symbols, which only carries the toString method.
- Extend Object.prototype.toString to recognise symbols.

Per the current draft spec, symbols are actually pseudo objects that are frozen with a null prototype and only one property (toString). For simplicity, we do not treat them as proper objects for now, although typeof will return "object". Only property access works as if they were (frozen) objects (via the internal delegate object).

(Baseline CL: https://codereview.chromium.org/12223071/)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoReintroduce lost space in r13867.
mstarzinger@chromium.org [Thu, 7 Mar 2013 16:59:18 +0000 (16:59 +0000)]
Reintroduce lost space in r13867.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAvoid bool to Oddball conversions by being lazy.
yangguo@chromium.org [Thu, 7 Mar 2013 16:22:19 +0000 (16:22 +0000)]
Avoid bool to Oddball conversions by being lazy.

R=svenpanne@chromium.org
BUG=v8:2491

Review URL: https://chromiumcodereview.appspot.com/12459011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agolog: add %p option to --logfile, expands to pid
yangguo@chromium.org [Thu, 7 Mar 2013 16:19:51 +0000 (16:19 +0000)]
log: add %p option to --logfile, expands to pid

Review URL: https://chromiumcodereview.appspot.com/12093008
Patch from Ben Noordhuis <info@bnoordhuis.nl>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoHarden Function()'s parsing of function literals.
mstarzinger@chromium.org [Thu, 7 Mar 2013 15:46:14 +0000 (15:46 +0000)]
Harden Function()'s parsing of function literals.

R=rossberg@chromium.org
BUG=v8:2470
TEST=mjsunit/regress/regress-2470

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoES6 symbols: refine test for getOwnPropertyNames
rossberg@chromium.org [Thu, 7 Mar 2013 15:43:47 +0000 (15:43 +0000)]
ES6 symbols: refine test for getOwnPropertyNames

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrepare push to trunk. Now working on version 3.17.9.
ulan@chromium.org [Thu, 7 Mar 2013 15:13:03 +0000 (15:13 +0000)]
Prepare push to trunk.  Now working on version 3.17.9.

R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/12457014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Enable deprecations again." because of Chrome compile error.
ulan@chromium.org [Thu, 7 Mar 2013 14:50:26 +0000 (14:50 +0000)]
Revert "Enable deprecations again." because of Chrome compile error.

R=svenpanne@chromium.org

Review URL: https://chromiumcodereview.appspot.com/12493008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agofix uninitialized variable
dcarney@chromium.org [Thu, 7 Mar 2013 14:01:42 +0000 (14:01 +0000)]
fix uninitialized variable

R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdded pretenuring of array literals test.
hpayer@chromium.org [Thu, 7 Mar 2013 14:00:53 +0000 (14:00 +0000)]
Added pretenuring of array literals test.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agofix more windows warnings
dcarney@chromium.org [Thu, 7 Mar 2013 13:31:52 +0000 (13:31 +0000)]
fix more windows warnings

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agofix windows build
dcarney@chromium.org [Thu, 7 Mar 2013 12:58:44 +0000 (12:58 +0000)]
fix windows build

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoBuild fix for deprecated api use
dcarney@chromium.org [Thu, 7 Mar 2013 12:09:27 +0000 (12:09 +0000)]
Build fix for deprecated api use

R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRuntime version of declarative native accessors.
dcarney@chromium.org [Thu, 7 Mar 2013 11:42:58 +0000 (11:42 +0000)]
Runtime version of declarative native accessors.

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEnable deprecations again.
svenpanne@chromium.org [Thu, 7 Mar 2013 11:30:36 +0000 (11:30 +0000)]
Enable deprecations again.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd missing license headers.
jkummerow@chromium.org [Thu, 7 Mar 2013 11:12:26 +0000 (11:12 +0000)]
Add missing license headers.

BUG=chromium:98597

Review URL: https://codereview.chromium.org/12486003
Patch from PaweÅ‚ Hajdan Jr. <phajdan.jr@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoInsert missing type cast in JSON.stringify.
yangguo@chromium.org [Thu, 7 Mar 2013 09:58:27 +0000 (09:58 +0000)]
Insert missing type cast in JSON.stringify.

R=dcarney@chromium.org
BUG=v8:2570

Review URL: https://chromiumcodereview.appspot.com/12599003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoIntegrate concurrent sweeping with incremental marking.
hpayer@chromium.org [Thu, 7 Mar 2013 09:27:49 +0000 (09:27 +0000)]
Integrate concurrent sweeping with incremental marking.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Send SIGPROF signals on the profiler event processor thread"
yurys@chromium.org [Thu, 7 Mar 2013 09:12:48 +0000 (09:12 +0000)]
Revert "Send SIGPROF signals on the profiler event processor thread"

This reverts commit r13735 as CPU profiler data is inaccurate after that change.

BUG=v8:2571

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUnify grow mode and stub kind
danno@chromium.org [Wed, 6 Mar 2013 21:51:07 +0000 (21:51 +0000)]
Unify grow mode and stub kind

In the process, ensure that transition-causing element stores handle all cases of the transitioned receiver map.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Fixed faulty branch condition handling for doubles.
palfia@homejinni.com [Wed, 6 Mar 2013 18:55:50 +0000 (18:55 +0000)]
MIPS: Fixed faulty branch condition handling for doubles.

This commit also includes BranchF refactoring in macro-assembler.

TEST=mozilla/ecma/TypeConversion/9.2.js

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Fix code size assertions for branch delay slots.
palfia@homejinni.com [Wed, 6 Mar 2013 18:54:13 +0000 (18:54 +0000)]
MIPS: Fix code size assertions for branch delay slots.

TEST=mozilla/ecma_3/Date/15.9.4.3.js

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix Array.length, String.length and Function.prototype LoadICs on x64.
yangguo@chromium.org [Wed, 6 Mar 2013 18:19:35 +0000 (18:19 +0000)]
Fix Array.length, String.length and Function.prototype LoadICs on x64.

R=jkummerow@chromium.org
BUG=v8:2568

Review URL: https://chromiumcodereview.appspot.com/12545004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix linebreak in grokdump
verwaest@chromium.org [Wed, 6 Mar 2013 17:13:48 +0000 (17:13 +0000)]
Fix linebreak in grokdump

Review URL: https://chromiumcodereview.appspot.com/12433006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoExtend grokdump with support for maps, transition and descriptor arrays.
verwaest@chromium.org [Wed, 6 Mar 2013 17:06:48 +0000 (17:06 +0000)]
Extend grokdump with support for maps, transition and descriptor arrays.

Review URL: https://chromiumcodereview.appspot.com/12389077

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMake sure that on x86 we don't generate SSE2 code in the snapshot.
mvstanton@chromium.org [Wed, 6 Mar 2013 16:15:01 +0000 (16:15 +0000)]
Make sure that on x86 we don't generate SSE2 code in the snapshot.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUnify deoptimizer for construct stub frames.
mstarzinger@chromium.org [Wed, 6 Mar 2013 16:12:24 +0000 (16:12 +0000)]
Unify deoptimizer for construct stub frames.

This unifies the translation of artificial construct stub frames. The
frame layout is almost the same on all architectures and only differs
in the presence of a slot holding the constructor function.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdded back some utf8 optimizations
dcarney@chromium.org [Wed, 6 Mar 2013 15:39:57 +0000 (15:39 +0000)]
Added back some utf8 optimizations

R=yangguo@chromium.org
BUG=https://code.google.com/p/v8/issues/detail?id=2551

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoArm fix: incorrect register used in CompareObjectType
mvstanton@chromium.org [Wed, 6 Mar 2013 15:11:27 +0000 (15:11 +0000)]
Arm fix: incorrect register used in CompareObjectType

R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrint dependent code in MapPrint.
ulan@chromium.org [Wed, 6 Mar 2013 14:55:59 +0000 (14:55 +0000)]
Print dependent code in MapPrint.

R=verwaest@chromium.org

Review URL: https://chromiumcodereview.appspot.com/12538002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoBetter hydrogen printing for the allocate instruction
mvstanton@chromium.org [Wed, 6 Mar 2013 14:10:02 +0000 (14:10 +0000)]
Better hydrogen printing for the allocate instruction

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoES6 symbols: filter symbols form for-in loops and Object.keys
rossberg@chromium.org [Wed, 6 Mar 2013 13:55:21 +0000 (13:55 +0000)]
ES6 symbols: filter symbols form for-in loops and Object.keys

R=verwaest@chromium.org
BUG=v8:2158

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: A debug code assert needed to be behind the new optimize_constructed_arrays...
mvstanton@chromium.org [Wed, 6 Mar 2013 12:25:42 +0000 (12:25 +0000)]
MIPS: A debug code assert needed to be behind the new optimize_constructed_arrays flag.

Port r13791 (fe11ffe7)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Allocation Info Tracking, continued.
mvstanton@chromium.org [Wed, 6 Mar 2013 12:23:09 +0000 (12:23 +0000)]
MIPS: Allocation Info Tracking, continued.

Port r13790 (0a70a3af)

Original commit message:
Addresses missing cases for array literals.
Adds support for "new Array()" call sites. This isn't complete yet, I have to run with --noinline_new.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoTrack Hydrogen statistics on a per-Isolate basis
svenpanne@chromium.org [Wed, 6 Mar 2013 10:49:34 +0000 (10:49 +0000)]
Track Hydrogen statistics on a per-Isolate basis

This is basically the same fix as the one for --trace-hydrogen, but now for
--hydrogen-stats. Removed a few train wrecks on the way.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSeparate output files for --trace-hydrogen.
svenpanne@chromium.org [Wed, 6 Mar 2013 07:25:46 +0000 (07:25 +0000)]
Separate output files for --trace-hydrogen.

The output filenames have now the form "hydrogen-<ProcessId>-<IsolateId>.cfg".
Minor cleanup on the way.

Note that we have a similar bug regarding statistics, but this will be handled
in a separate CL.

BUG=v8:2563

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSplit and replace the EmitVFPTruncate routine to only do what is needed. Floor
rodolph.perfetta@gmail.com [Tue, 5 Mar 2013 19:35:59 +0000 (19:35 +0000)]
Split and replace the EmitVFPTruncate routine to only do what is needed. Floor
and Round have been rewritten to use the default rounding mode.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPresweep one page before parallel/concurrent sweeping.
hpayer@chromium.org [Tue, 5 Mar 2013 17:51:49 +0000 (17:51 +0000)]
Presweep one page before parallel/concurrent sweeping.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMake IC patching resilient to flushing of the original target() ic.
verwaest@chromium.org [Tue, 5 Mar 2013 17:38:35 +0000 (17:38 +0000)]
Make IC patching resilient to flushing of the original target() ic.

Review URL: https://chromiumcodereview.appspot.com/12451003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoWait for sweeper threads in EnsureSweeperProgress() only if the main thread finished...
hpayer@chromium.org [Tue, 5 Mar 2013 17:32:02 +0000 (17:32 +0000)]
Wait for sweeper threads in EnsureSweeperProgress() only if the main thread finished its sweeping phase.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoES6 symbols: enable symbols as weak map keys
rossberg@chromium.org [Tue, 5 Mar 2013 17:24:08 +0000 (17:24 +0000)]
ES6 symbols: enable symbols as weak map keys

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoProperly handle misses for StoreArrayLengthStub on ia32 and x64
adamk@chromium.org [Tue, 5 Mar 2013 16:31:11 +0000 (16:31 +0000)]
Properly handle misses for StoreArrayLengthStub on ia32 and x64

Both failed to generate a miss if the key wasn't "length".
ARM and MIPS were already correct.

BUG=v8:2566

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDetails wrt parallel recompilation.
yangguo@chromium.org [Tue, 5 Mar 2013 16:22:08 +0000 (16:22 +0000)]
Details wrt parallel recompilation.

This includes:
- actually release handles kept by compilation info when compilation completes.
- do not use parallel recompilation on single core CPUs.
- artificially delay parallel recompilation for debugging.
- fix outdated assertions wrt optimization status.
- add "parallel" option to %OptimizeFunctionOnNextCall.

R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/12442002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRemove obsolete CodeFlusher debug code.
mstarzinger@chromium.org [Tue, 5 Mar 2013 16:08:11 +0000 (16:08 +0000)]
Remove obsolete CodeFlusher debug code.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrint whether a HCheckPrototypeMaps is omitted.
mstarzinger@chromium.org [Tue, 5 Mar 2013 14:11:56 +0000 (14:11 +0000)]
Print whether a HCheckPrototypeMaps is omitted.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agofix x32 handling of Atomic64
svenpanne@chromium.org [Tue, 5 Mar 2013 13:54:03 +0000 (13:54 +0000)]
fix x32 handling of Atomic64

The x32 logic for the size of Atomic64 handles NaCL, but misses
the Linux case.  Check the standard __ILP32__ to handle that too.

This has been fixed in the Chromium base tree already:
https://codereview.chromium.org/12186005/

BUG=chromium-os:36866
TEST=compiled the code for x86_64 (64bit) & x86_64 (x32)

Review URL: https://codereview.chromium.org/12374065
Patch from Mike Frysinger <vapier@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoCleaned up CpuFeature scope handling.
svenpanne@chromium.org [Tue, 5 Mar 2013 10:48:16 +0000 (10:48 +0000)]
Cleaned up CpuFeature scope handling.

First of all, it has nothing to do with Isolates, it is related to the assembler
at hand. Furthermore, the saving/restoring is platform-independent. Cleaned up
some platform-specific stuff on the way.

Note that there are some things which still need some cleanup, like e.g. using
EnumSet instead of uint64_t, making Probe() more uniform across platforms etc.,
but the CL is already big enough.

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoLinux: for use_system_v8=1, use all_dependent_settings
jkummerow@chromium.org [Tue, 5 Mar 2013 09:49:54 +0000 (09:49 +0000)]
Linux: for use_system_v8=1, use all_dependent_settings

instead of direct_dependent_settings - with V8 headers
being included in other headers, the former works much better.

This is a configuration that is not used for Google Chrome
neither V8 buildbot, and has been tested for its intended
use case (Linux distributions).

BUG=none

Review URL: https://codereview.chromium.org/12378092
Patch from PaweÅ‚ Hajdan Jr. <phajdan.jr@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRemove "library" variable from standalone.gypi.
jkummerow@chromium.org [Tue, 5 Mar 2013 09:28:48 +0000 (09:28 +0000)]
Remove "library" variable from standalone.gypi.

BUG=111541
R=jkummerow@chromium.org

Signed-off-by: Thiago Farina <tfarina@chromium.org>
Review URL: https://codereview.chromium.org/12379082
Patch from Thiago Farina <tfarina@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFixed HCheckSmiOrInt <-> HBoundsCheck interaction wrt. representations
jkummerow@chromium.org [Tue, 5 Mar 2013 09:14:28 +0000 (09:14 +0000)]
Fixed HCheckSmiOrInt <-> HBoundsCheck interaction wrt. representations

BUG=v8:2556

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoImprove integer division on ARM in favor of power of 2 constant divisor
ulan@chromium.org [Tue, 5 Mar 2013 08:47:59 +0000 (08:47 +0000)]
Improve integer division on ARM in favor of power of 2 constant divisor
BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/12052032
Patch from Rajeev R Krithivasan <rkrithiv@codeaurora.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEnable zapping of disposed global handles in release mode.
mstarzinger@chromium.org [Mon, 4 Mar 2013 18:24:37 +0000 (18:24 +0000)]
Enable zapping of disposed global handles in release mode.

R=hpayer@chromium.org
BUG=chromium:176056

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd workaround for redefinition of __proto__ property.
mstarzinger@chromium.org [Mon, 4 Mar 2013 17:53:40 +0000 (17:53 +0000)]
Add workaround for redefinition of __proto__ property.

This is a temporary workaround when the __proto__ property is being
redefined (e.g. by Object.freeze()) to not loose the foreign callback.
Once the __proto__ property is a real JavaScript accessor this hack is
no longer necessary. This change also makes __proto__ configurable.

R=rossberg@chromium.org
BUG=v8:2565
TEST=mjsunit/regress/regress-2565

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAlso fix cast warnings on Win64
rossberg@chromium.org [Mon, 4 Mar 2013 16:12:26 +0000 (16:12 +0000)]
Also fix cast warnings on Win64

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMake sure builtin functions don't rely on __proto__.
mstarzinger@chromium.org [Mon, 4 Mar 2013 16:05:12 +0000 (16:05 +0000)]
Make sure builtin functions don't rely on __proto__.

This makes sure that none of the builtin functions rely on the __proto__
accessor which can now be monkey-patched by applications. Instead use a
separate %SetPrototype() intrinsic or object literals to do the job.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix assert in PagedSpace::SizeOfObject for concurrent sweeping.
hpayer@chromium.org [Mon, 4 Mar 2013 15:47:59 +0000 (15:47 +0000)]
Fix assert in PagedSpace::SizeOfObject for concurrent sweeping.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix one more cast warning on Win32
rossberg@chromium.org [Mon, 4 Mar 2013 15:25:33 +0000 (15:25 +0000)]
Fix one more cast warning on Win32

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix cast warnings on Win32
rossberg@chromium.org [Mon, 4 Mar 2013 15:15:37 +0000 (15:15 +0000)]
Fix cast warnings on Win32

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoES6 symbols: Allow symbols as property names
rossberg@chromium.org [Mon, 4 Mar 2013 15:00:57 +0000 (15:00 +0000)]
ES6 symbols: Allow symbols as property names

Since symbols and strings share a common representation, most of this change is about consistently replacing 'String' with 'Name' in all places where property names are expected. In particular, no new logic at all is necessary for maps, property dictionaries, or transitions. :) The only places where an actual case distinction is needed have to do with generated type checks, and with conversions of names to strings (especially in logger and profiler).

Left in some TODOs wrt to the API: interceptors and native getters don't accept symbols as property names yet, because that would require extending the external v8.h.

(Baseline CL: https://codereview.chromium.org/12296026/)

R=verwaest@chromium.org,mstarzinger@chromium.org
BUG=v8:2158

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoWait for sweeper threads and finalize sweeping only if parallel/concurrent sweeping...
hpayer@chromium.org [Mon, 4 Mar 2013 14:56:20 +0000 (14:56 +0000)]
Wait for sweeper threads and finalize sweeping only if parallel/concurrent sweeping was in progress.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Renamed "symbols" to "internalized strings" throughout the code base, in prepar...
palfia@homejinni.com [Mon, 4 Mar 2013 14:45:39 +0000 (14:45 +0000)]
MIPS: Renamed "symbols" to "internalized strings" throughout the code base, in preparation of the introduction of ES6 'symbols' (aka private/unique names).

Port r13781 (59f39a06)

Original commit message:
The SymbolTable became the StringTable. I also made sure to adapt all comments. The only remaining use of the term "symbol" (other than unrelated uses in the parser and such) is now 'NewSymbol' in the API and the 'V8.KeyedLoadGenericSymbol' counter, changing which might break embedders.

The one functional change in this CL is that I removed the former 'empty_string' constant, since it is redundant given the 'empty_symbol' constant that we also had (and both were used inconsistently).

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrepare push to trunk. Now working on version 3.17.8.
yangguo@chromium.org [Mon, 4 Mar 2013 14:44:23 +0000 (14:44 +0000)]
Prepare push to trunk.  Now working on version 3.17.8.

R=mstarzinger@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/12395012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Minor cleanup of CompareIC state
palfia@homejinni.com [Mon, 4 Mar 2013 14:41:39 +0000 (14:41 +0000)]
MIPS: Minor cleanup of CompareIC state

Port r13775 (1fd19d83)

Original commit message:
Allow transitioning from KNOWN_OBJECT to KNONW_OBJECT or OBJECT.
Also, rename HEAP_NUMBER IC states to NUMBER, since they handle Smis, too.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Currently this mostly just moves code around.
palfia@homejinni.com [Mon, 4 Mar 2013 14:29:40 +0000 (14:29 +0000)]
MIPS: Currently this mostly just moves code around.

Port r13768 (4996bcd0)

Original commit message:
- Later the different parts will become individual code objects that tailcall into one another.
- The mapcheck/symbol check still needs to be separated from the overall prototype-chain check so that the ICs can reuse the handlers.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Fix materialization of arguments objects with unknown values.
palfia@homejinni.com [Mon, 4 Mar 2013 14:26:30 +0000 (14:26 +0000)]
MIPS: Fix materialization of arguments objects with unknown values.

Port r13763 (6b32e7d6)

Original commit message:
This fixes the deoptimizer to materialize arguments objects of correct
length even in cases where the actual argument values are unknown and
were optimized away by Crankshaft. This can happen if only the length
property or the identity of an arguments object is used.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Compile FastCloneShallowObjectStub using Crankshaft.
palfia@homejinni.com [Mon, 4 Mar 2013 14:23:30 +0000 (14:23 +0000)]
MIPS: Compile FastCloneShallowObjectStub using Crankshaft.

Port r13732 (686b0a45)

Original commit message:
This changes FastCloneShallowObjectStub to be compiled independent of
the target architecture. It also adds tracing to the deoptimizer for
compiled stubs and contains some minor bugfixes.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPolymorphism support for load IC.
verwaest@chromium.org [Mon, 4 Mar 2013 14:03:27 +0000 (14:03 +0000)]
Polymorphism support for load IC.

Review URL: https://chromiumcodereview.appspot.com/12340112

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Refactor RegExpStub to check lazily.
palfia@homejinni.com [Mon, 4 Mar 2013 13:15:16 +0000 (13:15 +0000)]
MIPS: Refactor RegExpStub to check lazily.

Port r13727 (55a760ec)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoBugfix: allow handle dereference only when we have a valid hydrogen graph or lithium...
mvstanton@chromium.org [Mon, 4 Mar 2013 12:34:49 +0000 (12:34 +0000)]
Bugfix: allow handle dereference only when we have a valid hydrogen graph or lithium chunk.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoTweak register allocation for Math.round and do not use roundsd.
yangguo@chromium.org [Mon, 4 Mar 2013 08:44:42 +0000 (08:44 +0000)]
Tweak register allocation for Math.round and do not use roundsd.

R=svenpanne@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/12374046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoA debug code assert needed to be behind the new optimize_constructed_arrays flag.
mvstanton@chromium.org [Fri, 1 Mar 2013 16:59:53 +0000 (16:59 +0000)]
A debug code assert needed to be behind the new optimize_constructed_arrays flag.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAllocation Info Tracking, continued.
mvstanton@chromium.org [Fri, 1 Mar 2013 16:06:34 +0000 (16:06 +0000)]
Allocation Info Tracking, continued.

Addresses missing cases for array literals.
Adds support for "new Array()" call sites. This isn't complete yet, I have to run with --noinline_new.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoHandle dereferencing needs to be allowed for printing during optimization phase.
mvstanton@chromium.org [Fri, 1 Mar 2013 15:50:57 +0000 (15:50 +0000)]
Handle dereferencing needs to be allowed for printing during optimization phase.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoLimit EatAtLeast recursion by a budget.
yangguo@chromium.org [Fri, 1 Mar 2013 14:50:14 +0000 (14:50 +0000)]
Limit EatAtLeast recursion by a budget.

BUG=178790

Review URL: https://chromiumcodereview.appspot.com/12380026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix cast warning on Win32
rossberg@chromium.org [Fri, 1 Mar 2013 14:31:01 +0000 (14:31 +0000)]
Fix cast warning on Win32

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoES6 symbols: Implement Symbol intrinsic and basic functionality
rossberg@chromium.org [Fri, 1 Mar 2013 13:28:55 +0000 (13:28 +0000)]
ES6 symbols: Implement Symbol intrinsic and basic functionality

- Add --harmony-symbols flag.
- Add Symbol constructor; allow symbols as (unreplaced) return value from constructors.
- Introduce %CreateSymbol and %_IsSymbol natives and respective instructions.
- Extend 'typeof' code generation to handle symbols.
- Extend CompareIC with a UNIQUE_NAMES state that (uniformly) handles internalized strings and symbols.
- Property lookup delegates to SymbolDelegate object for symbols, which only carries the toString method.
- Extend Object.prototype.toString to recognise symbols.

Per the current draft spec, symbols are actually pseudo objects that are frozen with a null prototype and only one property (toString). For simplicity, we do not treat them as proper objects for now, although typeof will return "object". Only property access works as if they were (frozen) objects (via the internal delegate object).

(Baseline CL: https://codereview.chromium.org/12223071/)

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix Win64 compilation problem.
hpayer@chromium.org [Fri, 1 Mar 2013 12:46:20 +0000 (12:46 +0000)]
Fix Win64 compilation problem.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUnify deoptimizer for accessor and arguments frames.
mstarzinger@chromium.org [Fri, 1 Mar 2013 12:23:24 +0000 (12:23 +0000)]
Unify deoptimizer for accessor and arguments frames.

This unifies the translation of artificial accessor stub and arguments
adaptor frames. The frame layout is the same on all architectures and
the computation code can be shared.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoES6 symbols: Introduce Symbol class, along with abstract Name class
rossberg@chromium.org [Fri, 1 Mar 2013 10:34:31 +0000 (10:34 +0000)]
ES6 symbols: Introduce Symbol class, along with abstract Name class

The new instance type 'Symbol' represents ES6 symbols (a.k.a. private/unique names). Currently, symbols are simple data objects that only carry a hash code, random-generated upon allocation.

The new type 'Name' now serves as the common super class for strings and symbols, and is supposed to represent property names. We will eventually migrate APIs from String to Name for the standard key type.

Strings and symbols share the same hash field representation, via the Name class. This way, we should be able to use the same code paths for symbols and internalized strings in most cases. Also, Symbol's instance type code is allocated adjacent to internalized string codes in the enum, allowing a simple range check for the common case.

Baseline CL: https://codereview.chromium.org/12210083/

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSimplify line editor choice in d8.
yangguo@chromium.org [Thu, 28 Feb 2013 17:40:24 +0000 (17:40 +0000)]
Simplify line editor choice in d8.

R=rossberg@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/12330171

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00