platform/upstream/v8.git
15 years agoFollow up to change 402:
iposva@chromium.org [Wed, 1 Oct 2008 20:21:34 +0000 (20:21 +0000)]
Follow up to change 402:
- Remove unused symbol finally_state_symbol.

Review URL: http://codereview.chromium.org/5640

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

15 years agoGet rid of the local variable we use to keep the state
kasperl@chromium.org [Wed, 1 Oct 2008 10:57:37 +0000 (10:57 +0000)]
Get rid of the local variable we use to keep the state
during the execution of a finally block by just pushing
the state on the execution stack instead.
Review URL: http://codereview.chromium.org/5626

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

15 years agoAdded test timing.
christian.plesner.hansen@gmail.com [Wed, 1 Oct 2008 09:07:45 +0000 (09:07 +0000)]
Added test timing.

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

15 years agoFix issue 86 by keeping track of the fact that finally blocks
kasperl@chromium.org [Wed, 1 Oct 2008 07:43:00 +0000 (07:43 +0000)]
Fix issue 86 by keeping track of the fact that finally blocks
are evaluated with an extra element on the stack, which needs
to be taken into account when breaking and continuing.

I'll clean up the code and add an abstraction for manipulating
the break stack height in a future CL -- I want to try to get
rid of the separate local variable we keep around for the "state"
when running in a finally block.
Review URL: http://codereview.chromium.org/5625

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

15 years agoAdded option to parallelize test runs.
christian.plesner.hansen@gmail.com [Tue, 30 Sep 2008 15:32:07 +0000 (15:32 +0000)]
Added option to parallelize test runs.

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

15 years agoDisallow copy and assigning a few public objects.
deanm@chromium.org [Tue, 30 Sep 2008 11:43:18 +0000 (11:43 +0000)]
Disallow copy and assigning a few public objects.

BUG=97

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

15 years agoRemove some craaaazy trailing whitespace.
deanm@chromium.org [Tue, 30 Sep 2008 11:41:58 +0000 (11:41 +0000)]
Remove some craaaazy trailing whitespace.

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

15 years agoRemove an ARM jump elimination test.
deanm@chromium.org [Tue, 30 Sep 2008 10:20:58 +0000 (10:20 +0000)]
Remove an ARM jump elimination test.

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

15 years agoFaster sort.
olehougaard [Tue, 30 Sep 2008 09:58:22 +0000 (09:58 +0000)]
Faster sort.

Using insertion sort below a certain threshold to give faster sorting of arrays (esp. short ones).
Review URL: http://codereview.chromium.org/6006

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

15 years agoRemove the ARM jump elimination. This completely removes jump elimination.
deanm@chromium.org [Tue, 30 Sep 2008 09:42:08 +0000 (09:42 +0000)]
Remove the ARM jump elimination.  This completely removes jump elimination.

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

15 years agoRemove x86 jump elimination. This was just complicated enough to make it annoying...
deanm@chromium.org [Mon, 29 Sep 2008 07:33:58 +0000 (07:33 +0000)]
Remove x86 jump elimination.  This was just complicated enough to make it annoying to support short jump encoding.  I measured a code size increase of 5 bytes on the V8 benchmark, from missing one jump to next elimination possibility.

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

15 years agoClean up some naming to be consistent between runtime and JS code.
deanm@chromium.org [Sun, 28 Sep 2008 13:21:41 +0000 (13:21 +0000)]
Clean up some naming to be consistent between runtime and JS code.

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

15 years agoRemove two cases of needlessly jumping to the next instruction. The jump eliminator...
deanm@chromium.org [Sun, 28 Sep 2008 12:21:12 +0000 (12:21 +0000)]
Remove two cases of needlessly jumping to the next instruction.  The jump eliminator will remove these cases, but it's easy enough to just do statically in the code, and not require the eliminator to do it at runtime.

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

15 years agoRemove ComparisonDeferred and inline the non-smi case. ARM is doing it's own thing...
deanm@chromium.org [Sun, 28 Sep 2008 09:38:09 +0000 (09:38 +0000)]
Remove ComparisonDeferred and inline the non-smi case.  ARM is doing it's own thing here.  This should cut down on code size, and open up two possiblities for short jump encoding.

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

15 years agoFix failing test caused by extra precision in register allocated fp values.
erik.corry@gmail.com [Fri, 26 Sep 2008 23:14:43 +0000 (23:14 +0000)]
Fix failing test caused by extra precision in register allocated fp values.
Review URL: http://codereview.chromium.org/5019

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

15 years agoFix build breakage on ARM by removing IA32 flags
erik.corry@gmail.com [Fri, 26 Sep 2008 16:14:22 +0000 (16:14 +0000)]
Fix build breakage on ARM by removing IA32 flags

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

15 years agoUse -O9, tune for nocoma, assume at least a Pentium when generating code.
erik.corry@gmail.com [Fri, 26 Sep 2008 15:53:42 +0000 (15:53 +0000)]
Use -O9, tune for nocoma, assume at least a Pentium when generating code.
Review URL: http://codereview.chromium.org/4298

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

15 years agoAdded new test type, message, to test error reporting.
christian.plesner.hansen@gmail.com [Fri, 26 Sep 2008 13:06:49 +0000 (13:06 +0000)]
Added new test type, message, to test error reporting.

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

15 years agoFix stack check wraparound problem for ARM simulator.
erik.corry@gmail.com [Fri, 26 Sep 2008 12:11:35 +0000 (12:11 +0000)]
Fix stack check wraparound problem for ARM simulator.
Review URL: http://codereview.chromium.org/2926

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

15 years agoStack checks in generated code for function apply is now controlled
sgjesse@chromium.org [Fri, 26 Sep 2008 10:27:39 +0000 (10:27 +0000)]
Stack checks in generated code for function apply is now controlled
by the check-stack flag. Changed the condition code from greater to
above_equal as the SP should be unsigned (this matches the stack
check in function entry).
Review URL: http://codereview.chromium.org/4296

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

15 years agoAdding comment to the fix of issue 95.
olehougaard [Fri, 26 Sep 2008 10:25:14 +0000 (10:25 +0000)]
Adding comment to the fix of issue 95.
Review URL: http://codereview.chromium.org/5003

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

15 years agoFix for issue 95.
olehougaard [Fri, 26 Sep 2008 09:15:02 +0000 (09:15 +0000)]
Fix for issue 95.

Fixed QuickSort so it doesn't overflow the stack with non-reflexsive comparison functions.
Review URL: http://codereview.chromium.org/4297

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

15 years agoMark test test-debug/ThreadedDebugging as flaky.
sgjesse@chromium.org [Fri, 26 Sep 2008 07:57:11 +0000 (07:57 +0000)]
Mark test test-debug/ThreadedDebugging as flaky.
Review URL: http://codereview.chromium.org/5001

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

15 years agowhich it now does.
christian.plesner.hansen@gmail.com [Fri, 26 Sep 2008 03:44:09 +0000 (03:44 +0000)]
which it now does.

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

15 years agoIntroduce some checks to indicate that the benchmarks have run correctly.
erik.corry@gmail.com [Thu, 25 Sep 2008 13:48:27 +0000 (13:48 +0000)]
Introduce some checks to indicate that the benchmarks have run correctly.
This change affects the results by around 2% so the version number has been
bumped to 2 to avoid confusion.
Review URL: http://codereview.chromium.org/4401

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

15 years agoTuning quick sort.
olehougaard [Thu, 25 Sep 2008 13:21:56 +0000 (13:21 +0000)]
Tuning quick sort.

Tuning the quick sort algorithm to avoid degenerating to an n^2 algorithm when all elements are the same.
Review URL: http://codereview.chromium.org/4083

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

15 years agoAdded copyright headers to tests.
christian.plesner.hansen@gmail.com [Thu, 25 Sep 2008 13:14:23 +0000 (13:14 +0000)]
Added copyright headers to tests.

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

15 years agoFixed problem where the test framework would assume that .svn was a
christian.plesner.hansen@gmail.com [Thu, 25 Sep 2008 13:01:26 +0000 (13:01 +0000)]
Fixed problem where the test framework would assume that .svn was a
test suite and then fail.

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

15 years ago- Added support for warnings on unused test rules.
christian.plesner.hansen@gmail.com [Thu, 25 Sep 2008 12:38:34 +0000 (12:38 +0000)]
- Added support for warnings on unused test rules.
- Added automatic loading of test suites

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

15 years agoUsing quick sort for arrays.
olehougaard [Thu, 25 Sep 2008 11:28:02 +0000 (11:28 +0000)]
Using quick sort for arrays.

Using quick sort in ArraySort instead of heap sort for better performance.
Review URL: http://codereview.chromium.org/4065

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

15 years agoUpdate version string and ChangeLog. We are now working on version
ager@chromium.org [Thu, 25 Sep 2008 08:45:38 +0000 (08:45 +0000)]
Update version string and ChangeLog.  We are now working on version
0.3.4.
Review URL: http://codereview.chromium.org/4272

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

15 years ago- Added a map cache for literal objects. This will
bak@chromium.org [Thu, 25 Sep 2008 07:46:07 +0000 (07:46 +0000)]
- Added a map cache for literal objects. This will
  canonicalize maps for object literals. JSON objects
  with the same set of properties names will then
  share the same map.
  This reduces the amount of generated code associated
  with object literals.
- Added a flag canonicalize_object_literal_maps.
  (default true)
- Changed the format of a function's literal array.
  Only the global context is now stored in the literal prefix.

Review URL: http://codereview.chromium.org/4078

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

15 years agoMake sure that the body of the function created by calling Function is
ager@chromium.org [Thu, 25 Sep 2008 07:35:45 +0000 (07:35 +0000)]
Make sure that the body of the function created by calling Function is
on a line of its own.  This allows the body to be terminated by a
single-line comment.

Also, make sure to set the name of the function to anonymous after the
fact so that recursion through the name anonymous is not allowed and
so that global variables called anonymous are not shadowed.

This is a fix for http://code.google.com/p/v8/issues/detail?id=85
Review URL: http://codereview.chromium.org/4248

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

15 years agoDon't defer the stack check failure code. It is a CallStub, which will be a single...
deanm@chromium.org [Wed, 24 Sep 2008 16:34:00 +0000 (16:34 +0000)]
Don't defer the stack check failure code.  It is a CallStub, which will be a single 5 byte call instruction.  This should cause equivalent code size now, but opens up the opportunity to make one of the most common jcc's to use short encoding in the future.

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

15 years agoThis is a fix of issue http://b/issue?id=1381845.
feng@chromium.org [Wed, 24 Sep 2008 15:47:34 +0000 (15:47 +0000)]
This is a fix of issue http://b/issue?id=1381845.

Check domain security on prototypes in for-in loop.

Review URL: http://codereview.chromium.org/4236

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

15 years agoAdded a profiling option (prof) to the SCons build. Currently
sgjesse@chromium.org [Wed, 24 Sep 2008 08:47:39 +0000 (08:47 +0000)]
Added a profiling option (prof) to the SCons build. Currently
it just makes the linker generate a MAP file for the shell
sample on Windows.
Review URL: http://codereview.chromium.org/4064

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

15 years agoAdded some peephole optimizaitions regarding push of immediate followed
sgjesse@chromium.org [Tue, 23 Sep 2008 13:31:14 +0000 (13:31 +0000)]
Added some peephole optimizaitions regarding push of immediate followed
by pop eax.
Review URL: http://codereview.chromium.org/4212

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

15 years agoEnable string pooling in the VS release build. This saves 46k for a v8_shell_sample...
deanm@chromium.org [Tue, 23 Sep 2008 12:32:43 +0000 (12:32 +0000)]
Enable string pooling in the VS release build.  This saves 46k for a v8_shell_sample.exe, I didn't measure performance or the overall change to a Chromium build.  I think this option should always make sense anyway, unless we're using some string constants incorrectly.

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

15 years agoFixed lint error.
christian.plesner.hansen@gmail.com [Tue, 23 Sep 2008 12:23:20 +0000 (12:23 +0000)]
Fixed lint error.

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

15 years agoMove more functionality from CEntryStub to the helper
kasperl@chromium.org [Tue, 23 Sep 2008 12:21:54 +0000 (12:21 +0000)]
Move more functionality from CEntryStub to the helper
functions in the macro assembler.
Review URL: http://codereview.chromium.org/4402

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

15 years ago- Added new object type, RegExp, for regular expressions.
christian.plesner.hansen@gmail.com [Tue, 23 Sep 2008 11:45:43 +0000 (11:45 +0000)]
- Added new object type, RegExp, for regular expressions.
- Renamed some ::kSizes to ::kHeaderSizes to avoid confusion.

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

15 years agoAllow platforms (linux and win32) to not force 16-byte alignment
kasperl@chromium.org [Tue, 23 Sep 2008 10:06:58 +0000 (10:06 +0000)]
Allow platforms (linux and win32) to not force 16-byte alignment
of activation frames (needed on Mac OS X).
Review URL: http://codereview.chromium.org/4211

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

15 years agoParse /proc/self/maps lines better to handle variations between Linux kernels.
erik.corry@gmail.com [Tue, 23 Sep 2008 08:56:12 +0000 (08:56 +0000)]
Parse /proc/self/maps lines better to handle variations between Linux kernels.
It seems noone has had time to file a bug on this.
Review URL: http://codereview.chromium.org/4210

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

15 years agoRefactored the code for entering and leaving exit frames (calls
kasperl@chromium.org [Tue, 23 Sep 2008 08:19:26 +0000 (08:19 +0000)]
Refactored the code for entering and leaving exit frames (calls
from JavaScript to C++). Includes a few slight optimizations
like keeping argv in a callee-saved register.
Review URL: http://codereview.chromium.org/4035

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

15 years agoChange the logging information for generated stubs to be
kasperl@chromium.org [Tue, 23 Sep 2008 07:33:08 +0000 (07:33 +0000)]
Change the logging information for generated stubs to be
consistent with the other log events for generated code.
Review URL: http://codereview.chromium.org/4033

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

15 years agoRemove debugging code that snuck in with the ARM calling convention changes.
iposva@chromium.org [Mon, 22 Sep 2008 16:00:56 +0000 (16:00 +0000)]
Remove debugging code that snuck in with the ARM calling convention changes.
Thanks to Erik Corry for spotting this.

Review URL: http://codereview.chromium.org/4015

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

15 years agoWork around issue 80 by splitting strings from the environment
kasperl@chromium.org [Mon, 22 Sep 2008 15:50:30 +0000 (15:50 +0000)]
Work around issue 80 by splitting strings from the environment
variables into lists before appending to them.
Review URL: http://codereview.chromium.org/3185

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

15 years agoRefactor the enum RelocMode changing the naming scheme from lower case to
sgjesse@chromium.org [Mon, 22 Sep 2008 13:57:03 +0000 (13:57 +0000)]
Refactor the enum RelocMode changing the naming scheme from lower case to
upper case. Moved it into the RelocInfo class together with the associated
is_xxx functions. Renamed is_xxx to IsXxx in the process.

Removed the exit_js_frame mode as it was no longer used.

Patch Set 2 renames RELOC_MODE_COUNT to NUMBER_OF_MODES and fixes a couple of lint errors.
Review URL: http://codereview.chromium.org/3186

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

15 years agoIn release, disable UNREACHABLE and make UNIMPLEMENTED and FATAL simpler, removing...
deanm@chromium.org [Mon, 22 Sep 2008 09:22:18 +0000 (09:22 +0000)]
In release, disable UNREACHABLE and make UNIMPLEMENTED and FATAL simpler, removing the file name and line numbers, so we carry around less data and can share more code.

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

15 years agoAdd compilation flags for optimizing samples built in release
kasperl@chromium.org [Mon, 22 Sep 2008 08:27:54 +0000 (08:27 +0000)]
Add compilation flags for optimizing samples built in release
mode. Remove /Ob2 /Oi /Oy from VS build because they are
already enabled by /Ox.
Review URL: http://codereview.chromium.org/4012

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

15 years agoMade the ARM port with simulator build and run on Windows.
sgjesse@chromium.org [Fri, 19 Sep 2008 12:35:15 +0000 (12:35 +0000)]
Made the ARM port with simulator build and run on Windows.

The reason for the "ugly" definition of SScanF is that the Windows CRT does not have a vsscanf function making it difficult to add OS::SSprintF to platform.h.
Review URL: http://codereview.chromium.org/2988

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

15 years agoAvoid the KMP overhead for simple indexOf() operations. Will look into evaluating...
deanm@chromium.org [Fri, 19 Sep 2008 12:30:14 +0000 (12:30 +0000)]
Avoid the KMP overhead for simple indexOf() operations.  Will look into evaluating the best cutoff between a simple search and KMP in the future.  This improves some simple operations ~1.5x.

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

15 years agoDon't try an indexOf() when the search string is bigger than the string. The current...
deanm@chromium.org [Fri, 19 Sep 2008 11:31:02 +0000 (11:31 +0000)]
Don't try an indexOf() when the search string is bigger than the string.  The current code will spend a bunch of time trying to match, even though we should know a match is impossible.

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

15 years agoTryFlatten is inlined, while Flatten is not. Make an optimization to avoid the call...
deanm@chromium.org [Fri, 19 Sep 2008 11:06:35 +0000 (11:06 +0000)]
TryFlatten is inlined, while Flatten is not.  Make an optimization to avoid the call to Flatten when we're already flat.  This gives me 5% on some simple indexOf experiments.

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

15 years agoAdd assembler.h the the Visual Studio project file.
sgjesse@chromium.org [Fri, 19 Sep 2008 10:10:21 +0000 (10:10 +0000)]
Add assembler.h the the Visual Studio project file.
Review URL: http://codereview.chromium.org/2985

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

15 years agoFix lint issues.
kasperl@chromium.org [Thu, 18 Sep 2008 13:42:39 +0000 (13:42 +0000)]
Fix lint issues.
Review URL: http://codereview.chromium.org/3144

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

15 years agoAdded fast-case for switch statement where all lables are constant Smi's in a limited...
lrn@chromium.org [Thu, 18 Sep 2008 11:59:55 +0000 (11:59 +0000)]
Added fast-case for switch statement where all lables are constant Smi's in a limited range (IA32 only so far).
Implemented using a jump-table, for constant time lookup.

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

15 years agoUse null instead of undefined for deleted elements in code caches.
ager@chromium.org [Thu, 18 Sep 2008 11:18:27 +0000 (11:18 +0000)]
Use null instead of undefined for deleted elements in code caches.
Update the lookup and update code for code caches to deal with deleted
elements.

Do not clear the code cache for the builtins object.  If there was a
matching element in the code cache, we would have hit the monomorphic
prototype failure case and removed it.
Review URL: http://codereview.chromium.org/3140

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

15 years agoFix ARM build by adding a dummy last_statement_position() accessor
kasperl@chromium.org [Thu, 18 Sep 2008 10:40:25 +0000 (10:40 +0000)]
Fix ARM build by adding a dummy last_statement_position() accessor
to the assembler.
Review URL: http://codereview.chromium.org/2961

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

15 years agoRevert revision 331. The propagation of monomorphic prototype failure
ager@chromium.org [Thu, 18 Sep 2008 10:22:46 +0000 (10:22 +0000)]
Revert revision 331.  The propagation of monomorphic prototype failure
information does not work.  In certains situations, it will keep
alternating between unrelated monomorphic states instead of going
megamorphic.
Review URL: http://codereview.chromium.org/2959

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

15 years agoRevert changes to src\assembler-arm.h which slipped into a previous checkin breaking...
sgjesse@chromium.org [Thu, 18 Sep 2008 10:15:17 +0000 (10:15 +0000)]
Revert changes to src\assembler-arm.h which slipped into a previous checkin breaking the ARM build.
Review URL: http://codereview.chromium.org/2958

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

15 years agoDefer the writing of the source position data to the relocation information
sgjesse@chromium.org [Thu, 18 Sep 2008 08:51:43 +0000 (08:51 +0000)]
Defer the writing of the source position data to the relocation information
until a possible debug break location is reached. Currently this is call sites
with calls to code objects and JS return. Source position information in the
code therefore no longer refers to the "first" instruction generated for a
given source position (which was not the case defered code anyway) but to the
first break location after that source position was passed (again defered code
always start with source position information). This doesn't make a difference
for the debugger as it will always be stopped only at debug break locations.
However, this makes the life of the peep-hole optimizer much easier as many
oportunities for posh/pop eliminations where previosly blocked by relocation
information already written to the code object.

Two types of source positions are still collected. Statement positions indicate
the position of the start of the statement leading to this code and (plain)
positions indicate other places typically call sites to help indicate current
position in backtraces. The two different types of positions are also used to
distinguish between step next and step in.

Runs all the tests (including debugger tests) as before.

Moved the checking for the FLAG_debug_info to one place.

I will do the same changes to the ARM codegenerator in a seperate changelist.

Review URL: http://codereview.chromium.org/2957

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

15 years agoRemove unused codereview.settings file.
kasperl@chromium.org [Thu, 18 Sep 2008 08:29:06 +0000 (08:29 +0000)]
Remove unused codereview.settings file.

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

15 years agoFlush the runtime %DebugPrint output. Should have no performance impact,
whessev8 [Thu, 18 Sep 2008 07:31:37 +0000 (07:31 +0000)]
Flush the runtime %DebugPrint output.  Should have no performance impact,
since %DebugPrint is not often used.  Needed for some performance testing
statistics outputting.

Fix the declaration of descriptor enumerated constants to be more readable.
Review URL: http://codereview.chromium.org/3100

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

15 years agoPropagate the information that a monomorphic prototype failure has
ager@chromium.org [Thu, 18 Sep 2008 06:55:14 +0000 (06:55 +0000)]
Propagate the information that a monomorphic prototype failure has
occured.  After a monomorphic prototype failure has been detected,
other monomorphic inline caches for the same type will have a code
object in the map's code cache which is not the current target.  We
recognize this case and use the code object that is in the cache
instead of going megamorphic.

Review URL: http://codereview.chromium.org/2928

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

16 years agoUpdate version string and ChangeLog; we're now working on
kasperl@chromium.org [Wed, 17 Sep 2008 13:56:12 +0000 (13:56 +0000)]
Update version string and ChangeLog; we're now working on
version 0.3.3.
Review URL: http://codereview.chromium.org/3101

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

16 years agoChanged the disassembler formatting
sgjesse@chromium.org [Wed, 17 Sep 2008 12:38:50 +0000 (12:38 +0000)]
Changed the disassembler formatting
Changed the formatting of the comment in the disassembler output to contain
more information on code targets.
Review URL: http://codereview.chromium.org/3099

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

16 years agoMove the initial code space to be before the young space instead of after it.
erik.corry@gmail.com [Wed, 17 Sep 2008 10:59:19 +0000 (10:59 +0000)]
Move the initial code space to be before the young space instead of after it.
The old arrangement meant that the alignment requirements of young space were
likely to nullify ASLR.
Review URL: http://codereview.chromium.org/2925

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

16 years agoThe OutOfMemory and OutOfMemoryNested tests set a heap limit that was too low.
erik.corry@gmail.com [Wed, 17 Sep 2008 10:58:45 +0000 (10:58 +0000)]
The OutOfMemory and OutOfMemoryNested tests set a heap limit that was too low.
A change in the way heap was allocated meant that the initial heap size was
sometimes not higher than the limit, which mean that the limit started having
and effect and prevented V8 from booting up.

Fixes http://code.google.com/p/v8/issues/detail?id=25
Review URL: http://codereview.chromium.org/2924

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

16 years agoMore thorough tests of sorting integers in lexicographic order.
erik.corry@gmail.com [Wed, 17 Sep 2008 10:25:05 +0000 (10:25 +0000)]
More thorough tests of sorting integers in lexicographic order.
Review URL: http://codereview.chromium.org/2923

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

16 years agoAdded missing static to returned buffer.
sgjesse@chromium.org [Wed, 17 Sep 2008 09:05:36 +0000 (09:05 +0000)]
Added missing static to returned buffer.
Review URL: http://codereview.chromium.org/3096

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

16 years ago- Rename flags.defs to flag-definitions.h.
iposva@chromium.org [Wed, 17 Sep 2008 08:47:50 +0000 (08:47 +0000)]
- Rename flags.defs to flag-definitions.h.
- Add better support for ignoring files in the presubmit tool.

Review URL: http://codereview.chromium.org/3082

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

16 years agoAdded presubmit.py to the tools tab for easier access.
iposva@chromium.org [Tue, 16 Sep 2008 14:37:24 +0000 (14:37 +0000)]
Added presubmit.py to the tools tab for easier access.

TBR=mark
Review URL: http://codereview.chromium.org/2892

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

16 years agoOnly remove the code object that caused the monomorphic prototype
ager@chromium.org [Tue, 16 Sep 2008 12:41:36 +0000 (12:41 +0000)]
Only remove the code object that caused the monomorphic prototype
failure instead of clearing the cache.  Clearing the cache makes us
miss subsequent monomorphic prototype failures.

Review URL: http://codereview.chromium.org/2889

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

16 years agoFix issue 67 by copying the receiver function one slot
kasperl@chromium.org [Tue, 16 Sep 2008 11:40:21 +0000 (11:40 +0000)]
Fix issue 67 by copying the receiver function one slot
down too. Also fix lint issue in codegen-arm.cc.

Reviewed offline by Ivan (iposva@chromium.org).
Review URL: http://codereview.chromium.org/3080

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

16 years agoFix http://code.google.com/p/v8/issues/detail?id=69 :
iposva@chromium.org [Tue, 16 Sep 2008 11:23:02 +0000 (11:23 +0000)]
Fix code.google.com/p/v8/issues/detail?id=69 :
- Simplify the switch statement code generation.
- Ensure that the switch value is always popped from the stack.

Credit goes to Feng for isolating the issue and proposing a fix.
Review URL: http://codereview.chromium.org/2888

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

16 years agoRemove the old builtins framework with the huge, nasty
kasperl@chromium.org [Tue, 16 Sep 2008 10:12:32 +0000 (10:12 +0000)]
Remove the old builtins framework with the huge, nasty
macro.
Review URL: http://codereview.chromium.org/3079

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

16 years agoKeep the inline caches for the builtins object monomorphic when
ager@chromium.org [Tue, 16 Sep 2008 09:21:22 +0000 (09:21 +0000)]
Keep the inline caches for the builtins object monomorphic when
libraries are loaded lazily.

Review URL: http://codereview.chromium.org/2885

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

16 years agoStop adapting the arguments passed to the builtin implementations
kasperl@chromium.org [Tue, 16 Sep 2008 07:24:46 +0000 (07:24 +0000)]
Stop adapting the arguments passed to the builtin implementations
of Array.prototype.push and Array.prototype.pop. Avoid going
through the arguments adaptor trampoline for call ICs that end
up calling a builtin that does not need arguments adaption.
Review URL: http://codereview.chromium.org/2884

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

16 years agoGeneralize the Function.prototype.call hooks in the
kasperl@chromium.org [Mon, 15 Sep 2008 15:02:38 +0000 (15:02 +0000)]
Generalize the Function.prototype.call hooks in the
arguments adaptor code to allow builtins to work without
argument adaptor frames. Get rid of unused JavaScript
implementation of call and apply and the associated
code generation hooks.
Review URL: http://codereview.chromium.org/2850

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

16 years agoSimplify logic in string-to-double conversion code.
ager@chromium.org [Mon, 15 Sep 2008 12:17:36 +0000 (12:17 +0000)]
Simplify logic in string-to-double conversion code.

Fast case for strings that are definitely not numbers.
Review URL: http://codereview.chromium.org/2847

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

16 years agoFixed broken build of mksnapshot on Windows as there was warnings against
sgjesse@chromium.org [Mon, 15 Sep 2008 10:57:53 +0000 (10:57 +0000)]
Fixed broken build of mksnapshot on Windows as there was warnings against
the use of fopen. Change use of fopen to OS::FOpen to get rid of warning.
Review URL: http://codereview.chromium.org/2846

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

16 years agoRemove EOL trailing whitespace.
deanm@chromium.org [Mon, 15 Sep 2008 09:24:59 +0000 (09:24 +0000)]
Remove EOL trailing whitespace.

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

16 years agoMove the Counters to structures that can be POD initialized, avoiding the need for...
deanm@chromium.org [Mon, 15 Sep 2008 08:59:31 +0000 (08:59 +0000)]
Move the Counters to structures that can be POD initialized, avoiding the need for static constructors on program startup.  They were only default initializing and doing some unneeded string operations.

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

16 years ago- Add support for building the ARM simulator version of V8 to the Xcode project.
iposva@chromium.org [Fri, 12 Sep 2008 17:25:38 +0000 (17:25 +0000)]
- Add support for building the ARM simulator version of V8 to the Xcode project.
- Added new compilation-cache.[cc|h] files.
- Fixed log.cc to be able to build without ENABLE_LOGGING_AND_PROFILING defined.

The next step is to mirror the xcconfigs in a separate change.
Review URL: http://codereview.chromium.org/1948

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

16 years agoThe serialization system handles some flag parsing itself, which is a bad idea. ...
deanm@chromium.org [Fri, 12 Sep 2008 12:17:33 +0000 (12:17 +0000)]
The serialization system handles some flag parsing itself, which is a bad idea.  For now, update the internal strings, since they will be underbar versions in the new flag system.

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

16 years agoFix some arm related flags with the new flag system.
deanm@chromium.org [Fri, 12 Sep 2008 11:00:36 +0000 (11:00 +0000)]
Fix some arm related flags with the new flag system.

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

16 years agoMove a few bits of mksnapshot over to the new flag system.
deanm@chromium.org [Fri, 12 Sep 2008 10:31:37 +0000 (10:31 +0000)]
Move a few bits of mksnapshot over to the new flag system.

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

16 years agoThis is a new static flag system, designed to have all flags in a central place,...
deanm@chromium.org [Fri, 12 Sep 2008 10:19:33 +0000 (10:19 +0000)]
This is a new static flag system, designed to have all flags in a central place, and compiled into the binary without requiring static constructors for registration.  All flags are moved out of the specific modules and into flags.defs, with different sections for debug, release, etc.  The flag variables are always defined.  For example, a debug flag in release mode still exists, but is read only and set to the default value.

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

16 years agoFlexo is tired, but this should perk him up. Single-argument constructors
kmillikin@chromium.org [Fri, 12 Sep 2008 08:52:22 +0000 (08:52 +0000)]
Flexo is tired, but this should perk him up.  Single-argument constructors
should be marked explicit.

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

16 years agoChange the code generator state constructor to implicitly push the state on
kmillikin@chromium.org [Fri, 12 Sep 2008 08:24:57 +0000 (08:24 +0000)]
Change the code generator state constructor to implicitly push the state on
stack, rather than explicitly saving and restoring it.
Review URL: http://codereview.chromium.org/3002

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

16 years agoRemoved SCons warning flags duplication on Windows. It now uses
sgjesse@chromium.org [Fri, 12 Sep 2008 07:08:55 +0000 (07:08 +0000)]
Removed SCons warning flags duplication on Windows. It now uses
the same scheme as for gcc on Linux.
Review URL: http://codereview.chromium.org/2424

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

16 years agoSatisfy lint!
iposva@chromium.org [Fri, 12 Sep 2008 04:59:41 +0000 (04:59 +0000)]
Satisfy lint!

TBR=nobody

Review URL: http://codereview.chromium.org/3001

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

16 years ago- Update test status file with fixed tests for ARM and add failing test tracked by...
iposva@chromium.org [Fri, 12 Sep 2008 04:31:34 +0000 (04:31 +0000)]
- Update test status file with fixed tests for ARM and add failing test tracked by issue 67.
- Remove debugging aid stop("Generate_ArgumentsAdaptorTrampoline - non-function call")
- Cleanup comment

Review URL: http://codereview.chromium.org/2801

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

16 years agoAdapt to new calling convention on ARM:
iposva@chromium.org [Fri, 12 Sep 2008 03:29:06 +0000 (03:29 +0000)]
Adapt to new calling convention on ARM:
- Simplified frame entry and frame exit code.
- Added ArgumentsAdaptorTrampoline and check for matching argument counts in the InvokePrologue.
- Removed definition and uses of USE_OLD_CALLING_CONVENTIONS.
- Changed MacroAssembler::InvokeBuiltin to match ia32 version.
- Start introducing convenience instructions in the ARM assembler as needed. These instructions take all Register parameters to avoid extra typing of "Operand(reg)".

To keep the architectures in sync these changes have been made to the ia32 files:
- Changed MacroAssembler::EnterFrame(StackFrame::Type type) to MacroAssembler::EnterInternalFrame().

These parts are still missing:
- unimplemented: Builtins::Generate_FunctionApply - large limit
- unimplemented: Builtins::Generate_ArgumentsAdaptorTrampoline - non-function call
- The files have not been lint'd yet.

Review URL: http://codereview.chromium.org/1930

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

16 years agoAdd back the CCFLAGS to the CXXFLAGS. Leaving them out caused V8 to
ager@chromium.org [Thu, 11 Sep 2008 18:46:29 +0000 (18:46 +0000)]
Add back the CCFLAGS to the CXXFLAGS.  Leaving them out caused V8 to
be build without optimization flags.
Review URL: http://codereview.chromium.org/1947

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

16 years agoFixed arm disassembler build problems.
christian.plesner.hansen@gmail.com [Thu, 11 Sep 2008 16:41:19 +0000 (16:41 +0000)]
Fixed arm disassembler build problems.
Fixed lint issue in platform-macos.

Review URL: http://codereview.chromium.org/1941

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

16 years agoFix performace regression due to missed peephole optimization
kmillikin@chromium.org [Thu, 11 Sep 2008 15:16:08 +0000 (15:16 +0000)]
Fix performace regression due to missed peephole optimization
opportunity.
Review URL: http://codereview.chromium.org/2002

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

16 years agoFixed build problem on mac, lint issues and a test failure on win32.
christian.plesner.hansen@gmail.com [Thu, 11 Sep 2008 15:03:22 +0000 (15:03 +0000)]
Fixed build problem on mac, lint issues and a test failure on win32.

Review URL: http://codereview.chromium.org/2601

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

16 years agoApply the flags to the SCons environment used to link the library to have the
sgjesse@chromium.org [Thu, 11 Sep 2008 14:39:11 +0000 (14:39 +0000)]
Apply the flags to the SCons environment used to link the library to have the
LINKFLAGS take effect. This fixes building shared libraries on 64-bit Linux.

Removed the CCFLAGS from the CXXFLAGS for Linux as SCons combines these
automatically on Linux. This removed the duplication of flags when compiling on
Linux.

On Linux SCons defines CXXCOM as follows

  'CXXCOM': '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'

whereas on Windows it is

  'CXXCOM': '$CXX $CXXFLAGS $CCCOMFLAGS'

Review URL: http://codereview.chromium.org/2422

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