Insert conversion to string in string.replace.
(missing since r13761)

R=ulan@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Reapply optimization of DeoptimizeIf for ia32 broken in r13633.

R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Currently this mostly just moves code around.
- 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.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Order arguments of ComputeMonomorphicFlags to match ComputeFlags.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix wrong test in r13766 (Insert conversion to string in string.replace).

R=ulan@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix math.round with SSE4.1.

R=verwaest@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert "Reapply optimization of DeoptimizeIf for ia32." (r13767)

This optimization turns out to have a negative effect on i5 processors
throughout the board. This needs further investigation to figure out
the underlying reason but will be rolled out for now.

R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Minor cleanup of CompareIC state

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

R=jkummerow@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Set unswept free bytes for concurent sweeper.

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Turn off parallel and concurrent sweeping on system with just one processor/core.

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Prepare push to trunk.  Now working on version 3.17.7.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Renamed "symbols" to "internalized strings" throughout the code base,
in preparation of the introduction of ES6 'symbols' (aka private/unique names).

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).

R=yangguo@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Simplify line editor choice in d8.

R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@13783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@13784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix Win64 compilation problem.

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
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: https://v8.googlecode.com/svn/branches/bleeding_edge@13786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix cast warning on Win32

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Limit EatAtLeast recursion by a budget.

BUG=178790

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@13788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Handle dereferencing needs to be allowed for printing during optimization phase.

BUG=

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

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