Ensure that generated code for object literals will call Runtime_DefineOrRedefineAccessorProperty only once per accessor property.

To do this, we collect all accessor properties in a first pass and emit code for
defining those properties afterwards in a second pass.

As a finger exercise, the table used for collecting accessors has a (subset of
an) STL-like iterator interface, including STL-like names and operators.
Although C++ is quite verbose here (as usual, but partly this is caused by our
current slightly clumsy classes/templates), things work out quite nicely and it
cleans up some confusion, e.g. a table entry is not an iterator etc.
Everything compiles into very efficient code, e.g. the loop condition 'it !=
accessor_table.end()' compiles into a single 'testl' instruction on ia32.
+1 for using standard APIs!

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fixed breakage caused by r11051 on non-ia32 platforms.

TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Don't use an explicit s0 in ClampDoubleToUint8.

R=fschneider@chromium.org
BUG=v8:2004
TEST=test/mjsunit/pixel-array-rounding.js

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Debugger: add ability to set script source from within OnBeforeCompile.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Improve representation inference for HUnknownOSRValue.

Use corresponding phi from the loop entry as a hint to infer proper representation for HUnkownOSRValue and dependent phis.

R=fschneider@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: Inline functions that use arguments object in f.apply(o, arguments) pattern.

Port r11008 (f7a04e6f9).

Original commit message:

Support arguments materialization after deoptimization in all frames (not only in topmost one).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9677053
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix declarations escaping global strict eval.

According to ES5 10.4.2(3), eval calls of strict code always require
their own lexical and variable environment. For now we just add a new
scope when we parse the strict mode directive. The clean solution would
be to always have this sope present (even for global eval calls) and
adapt variable binding to cope with that.

R=rossberg@chromium.org
BUG=v8:1624
TEST=mjsunit/regress/regress-1624,test262/S10.4.2.1_A1

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Debugger: naive implementation of "step into Function.prototype.bind".

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix minor inconsistency with inline function list.

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix clang template weirdness.

TBR=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Update revision.html for V8 benchmark version 7.

R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
More fixes for V8 benchmark version 7.

R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@11064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Experimental profiler: split RegExp.test() for better optimization.

BUG=
TEST=

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

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