Proxies: Make 'with' work, plus minor other fixes

Also fixes internal exception handling in several places of the runtime.

R=yangguo@chromium.org
BUG=v8:1543

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix unaligned accesses in back_edge tables.

This patch fixes the step size of masm->pc_ in back_edge tables to words (4 bytes) to ensure 4 bytes alignment for read/write operations. Read and write of words (4 bytes) data from aligned space (address % 4 == 0) is more efficient on all platforms and especially on MIPS where without this alignment fix a kernel exception handler is used for every unaligned access.

This patch increases the size of back_edge tables by 3 bytes in every row. By the test it seem the back_edge table quite small in every/most cases (maximal length is 18 so in that case there are only 54 additional bytes with this patch).

BUG=

Patch from Douglas Leung <Douglas.Leung@imgtec.com>

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test.

Port r15773 (60aa9f0)

Original commit message:
With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test. (https://code.google.com/p/v8/source/detail?r=15358) But that change caused a regression, so here is an improvement:

Put the internalized string types in the lower 64 entries of
INSTANCE_TYPE, and non-internalized string types in the next 64 entries.
This way we can restore the single bit check.

BUG=

Review URL: https://codereview.chromium.org/19723008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Logger: extract CodeEventLogger classes.

The idea is to extract all the CodeEvent loggers into separate classes
make an interface for code events and put them into a listeners array.

I extracted code that works with name_buffer into a separate base class CodeEventLogger.
And made JitLogger, LowLevelLogger and new CodeMap its descendants.

As a side effect I converted NameBuffer into nested class of CodeEventLogger
and converted NameMap into nested class of CodeMap.

BUG=260203
R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@15784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Logger: reorder methods in log.cc

No logic changes.

BUG=none
TEST=current test set
TBR=yurys@chromium.org

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

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