platform/upstream/v8.git
14 years agoSkip debugger frames when looking for calling context.
yurys@chromium.org [Mon, 16 Nov 2009 14:41:55 +0000 (14:41 +0000)]
Skip debugger frames when looking for calling context.

BUG=509

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

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

14 years agoFix bug 503: undefined <= undefined should return false on ARM.
erik.corry@gmail.com [Mon, 16 Nov 2009 14:12:27 +0000 (14:12 +0000)]
Fix bug 503: undefined <= undefined should return false on ARM.
Review URL: http://codereview.chromium.org/399001

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

14 years agoFix bug 499 by splitting up long-running test to minimise the amount
erik.corry@gmail.com [Mon, 16 Nov 2009 13:06:27 +0000 (13:06 +0000)]
Fix bug 499 by splitting up long-running test to minimise the amount
of code that can't be tested on slow targets.
Review URL: http://codereview.chromium.org/385133

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

14 years ago* Remove old snapshot implementation
erik.corry@gmail.com [Mon, 16 Nov 2009 12:08:40 +0000 (12:08 +0000)]
* Remove old snapshot implementation
Review URL: http://codereview.chromium.org/394007

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

14 years agoRemove trailing whitespace.
yurys@chromium.org [Fri, 13 Nov 2009 15:05:50 +0000 (15:05 +0000)]
Remove trailing whitespace.

TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/384121

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

14 years agoTest that pause can be set in script and won't lead to crash when execution is resumed.
yurys@chromium.org [Fri, 13 Nov 2009 14:04:08 +0000 (14:04 +0000)]
Test that pause can be set in script and won't lead to crash when execution is resumed.

The test currently fails on v8 trunk if the new compiler is used. The issue seems to be fixed on bleeding_edge so there is no changes to src, just test.

Cromium bug: http://crbug.com/26686
Review URL: http://codereview.chromium.org/384120

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

14 years agoImprove the allocation and initialization of locals on IA32 in the top-level compiler.
fschneider@chromium.org [Fri, 13 Nov 2009 13:59:07 +0000 (13:59 +0000)]
Improve the allocation and initialization of locals on IA32 in the top-level compiler.

This optimization is already done on x64 and ARM.

Until now we used a push immediate for each local variable on IA32:

  push $undefined
  push $undefined
  ...

to initialize each local variable. This change does:

  mov eax, $undefined
  push eax
  push eax
  ...

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

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

14 years agoAdd a regression test that exposes a stack corruption problem.
fschneider@chromium.org [Fri, 13 Nov 2009 13:58:48 +0000 (13:58 +0000)]
Add a regression test that exposes a stack corruption problem.

See http://code.google.com/p/chromium/issues/detail?id=27227

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

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

14 years agoDisable "arguments" implementation. It was too optimistic in its assumptions.
lrn@chromium.org [Fri, 13 Nov 2009 13:12:57 +0000 (13:12 +0000)]
Disable "arguments" implementation. It was too optimistic in its assumptions.

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

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

14 years agoAllow a platform to indicate that some CPU features are always
erik.corry@gmail.com [Fri, 13 Nov 2009 12:32:57 +0000 (12:32 +0000)]
Allow a platform to indicate that some CPU features are always
available.  We use this to ensure that snapshots on MacOSX can
use SSE2 instructions.  Also clean up and assertify the
handling of things we can't do when we are generating a
snapshot.  Fix a bug in the new serialization tests where
they activated Snapshot::enable() too late after code had been
generated that assumed no snapshots.
Review URL: http://codereview.chromium.org/391051

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

14 years agoTop-level compiler: Re-allow non-lazily compiled function literals.
fschneider@chromium.org [Fri, 13 Nov 2009 10:02:32 +0000 (10:02 +0000)]
Top-level compiler: Re-allow non-lazily compiled function literals.

This change re-allows non-lazy compiled function literals for top-level compilation.

There was a problem on ARM exposed through this change which was fixed as part of r3289
in fast-codegen-arm.cc (Threading and Threading2 tests failed)

It occurred before r3289 when we allocate a local context at the beginning of a function. The
code for the stack check was split up in an unintended way (load of stack check limit into r2,
and use of r2 in the actual stack check code).

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

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

14 years agoFixes bug in the top-level compiler with the write barrier for assignments to context...
fschneider@chromium.org [Fri, 13 Nov 2009 09:51:49 +0000 (09:51 +0000)]
Fixes bug in the top-level compiler with the write barrier for assignments to context slots:

The test for a SMI before the write barrier tested the wrong register:
r0 = target context address
r1 = value to be written

This change fixes the SMI test and tests r1 instead of r0.

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

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

14 years agoCleanup and fix generated comments in the top-level compiler.
fschneider@chromium.org [Fri, 13 Nov 2009 09:42:18 +0000 (09:42 +0000)]
Cleanup and fix generated comments in the top-level compiler.

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

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

14 years agoRemove trailing whitespace from objects.h
yurys@chromium.org [Thu, 12 Nov 2009 16:52:48 +0000 (16:52 +0000)]
Remove trailing whitespace from objects.h

TBR=vitalyr
Review URL: http://codereview.chromium.org/387037

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

14 years agoMake accessors for hidden properties object not touch interceptors.
yurys@chromium.org [Thu, 12 Nov 2009 16:34:52 +0000 (16:34 +0000)]
Make accessors for hidden properties object not touch interceptors.

Interceptors cannot provide a meaningful result for hidden_symbol anyway and some of them crash on empty property name.

Related Chromium issue: http://code.google.com/p/chromium/issues/detail?id=27385

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

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

14 years agoFix some style issues in the ARM code.
erik.corry@gmail.com [Thu, 12 Nov 2009 13:55:21 +0000 (13:55 +0000)]
Fix some style issues in the ARM code.
Also move a function into the macro assembler.
Fix some *& placement errors that had accumulated.
Review URL: http://codereview.chromium.org/385069

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

14 years agoAdd vfp support on ARM. Patch from John Jozwiak.
erik.corry@gmail.com [Thu, 12 Nov 2009 13:04:02 +0000 (13:04 +0000)]
Add vfp support on ARM.  Patch from John Jozwiak.
Review URL: http://codereview.chromium.org/348019

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

14 years agoUpdated sputnik test expectations to match changes in tests.
christian.plesner.hansen@gmail.com [Thu, 12 Nov 2009 13:01:03 +0000 (13:01 +0000)]
Updated sputnik test expectations to match changes in tests.

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

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

14 years agoIgnore "sputniktests" subdirectory from presubmit checks.
lrn@chromium.org [Thu, 12 Nov 2009 12:11:40 +0000 (12:11 +0000)]
Ignore "sputniktests" subdirectory from presubmit checks.

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

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

14 years agoFast-codegen: Added support for arguments in functions.
lrn@chromium.org [Thu, 12 Nov 2009 11:38:01 +0000 (11:38 +0000)]
Fast-codegen: Added support for arguments in functions.
Functions using "arguments" have their arguments object created on entry.
Also added support for variables rewritten into argument object property access.

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

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

14 years agoRemove passing test from ARM test expectations.
ager@chromium.org [Thu, 12 Nov 2009 11:31:46 +0000 (11:31 +0000)]
Remove passing test from ARM test expectations.

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

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

14 years agoChange expectations for LargeObjectSpace test on ARM. It should pass,
ager@chromium.org [Thu, 12 Nov 2009 10:23:05 +0000 (10:23 +0000)]
Change expectations for LargeObjectSpace test on ARM.  It should pass,
and if it doesn't we need to figure out why.

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

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

14 years agoFixed bug in x64 port of KeyedStoreIC::GenerateExternalArray where it
kbr@chromium.org [Wed, 11 Nov 2009 23:06:11 +0000 (23:06 +0000)]
Fixed bug in x64 port of KeyedStoreIC::GenerateExternalArray where it
was always falling through to the runtime. Re-examined both load and
store ICs and verified they are now in sync with the 32-bit port.

Ran tests and benchmarks.

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

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

14 years agoFixed a few cases where allocators did not respect always_allocate,
christian.plesner.hansen@gmail.com [Wed, 11 Nov 2009 15:25:51 +0000 (15:25 +0000)]
Fixed a few cases where allocators did not respect always_allocate,
potentially leading to bogus FatalProcessOutOfMemory situations.  Also
fixed a few cases where callers relied on getting a NewSpace object
back (to avoid write barrier overhead) which they can't when
always_allocate is in effect.

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

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

14 years agoFix thinko in fix for issue 484.
erik.corry@gmail.com [Wed, 11 Nov 2009 14:32:14 +0000 (14:32 +0000)]
Fix thinko in fix for issue 484.
Review URL: http://codereview.chromium.org/391016

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

14 years agoLog the stubs found in the snapshot so the profiler can give
erik.corry@gmail.com [Wed, 11 Nov 2009 12:35:50 +0000 (12:35 +0000)]
Log the stubs found in the snapshot so the profiler can give
a sensible output.
Review URL: http://codereview.chromium.org/385039

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

14 years agoRemove special-case for arguments.toString to match ES5
christian.plesner.hansen@gmail.com [Wed, 11 Nov 2009 11:28:37 +0000 (11:28 +0000)]
Remove special-case for arguments.toString to match ES5

Patch by Jan de Mooij <jandemooij@gmail.com>
Review: http://codereview.chromium.org/273073

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

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

14 years agoSplit long running test
sgjesse@chromium.org [Wed, 11 Nov 2009 10:28:20 +0000 (10:28 +0000)]
Split long running test

Split a long running test into two parts. The second part still takes most of the time and is skipped on ARM in debug mode.

BUG=http://code.google.com/p/v8/issues/detail?id=500

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

14 years agoFix warnings on Win64.
lrn@chromium.org [Wed, 11 Nov 2009 09:50:06 +0000 (09:50 +0000)]
Fix warnings on Win64.
Set warning level to /W3 and change implicit conversions from size_t
to int. Most "fixes" are simply manifesting the implicit casts or using
a special strlen replacement that returns int.

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

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

14 years agoRestore info needed to register profile ticks in functions from
erik.corry@gmail.com [Wed, 11 Nov 2009 09:19:39 +0000 (09:19 +0000)]
Restore info needed to register profile ticks in functions from
the snapshot.  Still needed: info to register profile ticks in
stubs.
Review URL: http://codereview.chromium.org/385035

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

14 years agoFix inline constructor code bailout.
ager@chromium.org [Wed, 11 Nov 2009 09:00:09 +0000 (09:00 +0000)]
Fix inline constructor code bailout.

Remove variable that is currently unused.

BUG=http://code.google.com/p/v8/issues/detail?id=502
Review URL: http://codereview.chromium.org/392001

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

14 years agoRemove trailing whitespace in test-debug.cc to make flexo happy.
yurys@chromium.org [Tue, 10 Nov 2009 17:39:54 +0000 (17:39 +0000)]
Remove trailing whitespace in test-debug.cc to make flexo happy.

TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/388005

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

14 years agoAll hidden properties of an object are stored in a value of a regular property with...
yurys@chromium.org [Tue, 10 Nov 2009 16:13:21 +0000 (16:13 +0000)]
All hidden properties of an object are stored in a value of a regular property with empty name. This property may confuse user if returned among regular properties. It should not be exposed directly by ObjectMirror. Should we want an access to these properties from debugger we need to implement an explicit method for that.

Current patch filters the hidden_symbol from property names returned to ObjectMirror.

See http://crbug.com/26491

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

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

14 years agoTest mjsunit/string-indexof times out on ARM simulator
sgjesse@chromium.org [Tue, 10 Nov 2009 15:50:23 +0000 (15:50 +0000)]
Test mjsunit/string-indexof times out on ARM simulator

Removal of string slices made this test time out on the ARM simulator. Temporaly mark this as pass or timeout.

BUG=http://code.google.com/p/v8/issues/detail?id=500
TBR=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/390002

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

14 years agoRevert r3032 that uses push instead of 'sub esp, size'. This change
ager@chromium.org [Tue, 10 Nov 2009 14:58:16 +0000 (14:58 +0000)]
Revert r3032 that uses push instead of 'sub esp, size'.  This change
leads to stack corruption in 32-bit version of V8.

See http://code.google.com/p/chromium/issues/detail?id=27227 for a
reproducible case.

Since this is only an issue on 32-bit V8 I think this has got
something to do with the UnsafeSmi handling that we do on ia32.  I'm
reverting for now so we can push a fix, but we should track down the
issue and create a regression test for this.

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

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

14 years agoModify test using string slices
sgjesse@chromium.org [Tue, 10 Nov 2009 14:41:53 +0000 (14:41 +0000)]
Modify test using string slices

With slices string string type removed generating a large amount of sub-strings takes more time. Change a test to avoid timeout in debug mode.
Review URL: http://codereview.chromium.org/385006

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

14 years agoRemove sliced string string type
sgjesse@chromium.org [Tue, 10 Nov 2009 13:23:05 +0000 (13:23 +0000)]
Remove sliced string string type

As a first step to reduce the complexity of the string hierachy the sliced string type is removed. Whenever a sub-string is created it is allocated as a fresh flat string.
Review URL: http://codereview.chromium.org/385004

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

14 years agoMarked cyrillic as expected to fail.
christian.plesner.hansen@gmail.com [Tue, 10 Nov 2009 12:19:36 +0000 (12:19 +0000)]
Marked cyrillic as expected to fail.

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

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

14 years agoReapply 3246 and 3247 after fixing valgrind warning.
lrn@chromium.org [Tue, 10 Nov 2009 10:23:23 +0000 (10:23 +0000)]
Reapply 3246 and 3247 after fixing valgrind warning.

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

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

14 years agoReport both size and count from the heap profile processor
sgjesse@chromium.org [Tue, 10 Nov 2009 10:18:41 +0000 (10:18 +0000)]
Report both size and count from the heap profile processor

Added two options for controlling this --size and --count. Default is --size to match the original behaviour.
Review URL: http://codereview.chromium.org/385001

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

14 years agoFixed bug in while-loops that caused an assertion to fail.
fschneider@chromium.org [Tue, 10 Nov 2009 09:57:13 +0000 (09:57 +0000)]
Fixed bug in while-loops that caused an assertion to fail.

We forgot resetting true-/false-label to NULL after evaluating the
condition expression in dowhile- and while-loops.
This change fixes this.

This causes an assertion to fail in VisitIfStatement whenever there is an
if-statement after a while-loop before. e.g. like in:

  var i=0, j=0;
  while(j<5) { j++; }
  if (i ==0 ) { j++; }

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

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

14 years agoRevert 3245 and 3246 because they cause valgrind failures.
erik.corry@gmail.com [Mon, 9 Nov 2009 17:05:51 +0000 (17:05 +0000)]
Revert 3245 and 3246 because they cause valgrind failures.
TBR=lrn
Review URL: http://codereview.chromium.org/372059

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

14 years agoTemporarily de-activate while-loops in the top-level compiler because
fschneider@chromium.org [Mon, 9 Nov 2009 15:31:15 +0000 (15:31 +0000)]
Temporarily de-activate while-loops in the top-level compiler because
it makes some debug tests fail.

TBR=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/371069

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

14 years agoFix small memory leak in new serialization code.
erik.corry@gmail.com [Mon, 9 Nov 2009 13:30:50 +0000 (13:30 +0000)]
Fix small memory leak in new serialization code.
Review URL: http://codereview.chromium.org/371068

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

14 years agoRevert change r3240-3241 because it causes ARM tests to fail.
fschneider@chromium.org [Mon, 9 Nov 2009 13:30:35 +0000 (13:30 +0000)]
Revert change r3240-3241 because it causes ARM tests to fail.

(non-lazily compiled function literals)

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

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

14 years agoFast-compiler: Added trivial implementations of while and do/while.
lrn@chromium.org [Mon, 9 Nov 2009 13:22:38 +0000 (13:22 +0000)]
Fast-compiler: Added trivial implementations of while and do/while.

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

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

14 years agohttp://codereview.chromium.org/371067 thanks to Jan de Mooij
erik.corry@gmail.com [Mon, 9 Nov 2009 13:21:14 +0000 (13:21 +0000)]
codereview.chromium.org/371067 thanks to Jan de Mooij

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

14 years agoInline common case of one capture when using replace with a regexp and
ager@chromium.org [Mon, 9 Nov 2009 13:17:50 +0000 (13:17 +0000)]
Inline common case of one capture when using replace with a regexp and
a function.

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

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

14 years agoFix lint issue.
lrn@chromium.org [Mon, 9 Nov 2009 12:18:25 +0000 (12:18 +0000)]
Fix lint issue.

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

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

14 years agoRemove unnecessary buffer doubling and content copying.
lrn@chromium.org [Mon, 9 Nov 2009 11:52:18 +0000 (11:52 +0000)]
Remove unnecessary buffer doubling and content copying.

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

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

14 years agoFix SVN merge problem in the top-level compiler.
fschneider@chromium.org [Mon, 9 Nov 2009 10:30:33 +0000 (10:30 +0000)]
Fix SVN merge problem in the top-level compiler.

(Remove bailout on non-global declarations again)

TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/372054

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

14 years agoFixed breakage of test running when sputniktests not checked out.
christian.plesner.hansen@gmail.com [Mon, 9 Nov 2009 10:23:50 +0000 (10:23 +0000)]
Fixed breakage of test running when sputniktests not checked out.

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

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

14 years ago* Fix regexp benchmark regression where we were doing work to
erik.corry@gmail.com [Mon, 9 Nov 2009 10:01:23 +0000 (10:01 +0000)]
* Fix regexp benchmark regression where we were doing work to
make standard regexps like \s and . case independent.
* Make use of the fact that the subject string is ASCII only
when making character classes case independent.
* Avoid spending time making large ideogram or punctuation
ranges case independent when there is no case mapping anyway.
Review URL: http://codereview.chromium.org/378024

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

14 years agoEnable writes and reads of context slots in fast compiler.
whesse@chromium.org [Mon, 9 Nov 2009 09:56:57 +0000 (09:56 +0000)]
Enable writes and reads of context slots in fast compiler.
Review URL: http://codereview.chromium.org/360054

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

14 years agoAdd function literals that always require non-lazy compilation to the top-level compiler.
fschneider@chromium.org [Mon, 9 Nov 2009 09:43:24 +0000 (09:43 +0000)]
Add function literals that always require non-lazy compilation to the top-level compiler.

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

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

14 years agoAdded test runner for sputnik tests.
christian.plesner.hansen@gmail.com [Mon, 9 Nov 2009 09:31:57 +0000 (09:31 +0000)]
Added test runner for sputnik tests.

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

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

14 years agoFix missing () on function call causing warning on some versions
erik.corry@gmail.com [Fri, 6 Nov 2009 14:06:35 +0000 (14:06 +0000)]
Fix missing () on function call causing warning on some versions
of gcc.
Review URL: http://codereview.chromium.org/371020

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

14 years agoKeep natives source code in external strings instead of putting
erik.corry@gmail.com [Fri, 6 Nov 2009 13:48:33 +0000 (13:48 +0000)]
Keep natives source code in external strings instead of putting
it in regular flat strings that are part of the snapshot.
After this change we don't need libraries-empty.cc any more.  In
this change libraries-empty.cc is just a the same as libraries.cc
and the scons build builds it but does not use it.  We can move
in stages to a situation where it is not generated at all for all
the build systems that we have.
Review URL: http://codereview.chromium.org/360050

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

14 years agoFixed problem where popping a handle scope after calling an accessor
christian.plesner.hansen@gmail.com [Fri, 6 Nov 2009 11:35:47 +0000 (11:35 +0000)]
Fixed problem where popping a handle scope after calling an accessor
would clobber the register holding the result.

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

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

14 years agoFix bug 486, Cyrillic character ranges in case independent regexps.
erik.corry@gmail.com [Fri, 6 Nov 2009 11:15:20 +0000 (11:15 +0000)]
Fix bug 486, Cyrillic character ranges in case independent regexps.
http://code.google.com/p/v8/issues/detail?id=486
Review URL: http://codereview.chromium.org/361033

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

14 years agoEnable mksnapshot on ARM when cross-compiling using gyp
sgjesse@chromium.org [Fri, 6 Nov 2009 07:50:31 +0000 (07:50 +0000)]
Enable mksnapshot on ARM when cross-compiling using gyp

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

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

14 years agoAdd support for all declarations in the top-level compiler:
fschneider@chromium.org [Thu, 5 Nov 2009 17:33:50 +0000 (17:33 +0000)]
Add support for all declarations in the top-level compiler:

Until now we only handled global declarations. This change
adds declarations of local variables, consts and functions.

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

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

14 years agoRemove an unused enumeration value.
kmillikin@chromium.org [Thu, 5 Nov 2009 17:25:50 +0000 (17:25 +0000)]
Remove an unused enumeration value.

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

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

14 years agoFix a bad commit due to an svn merge error.
kmillikin@chromium.org [Thu, 5 Nov 2009 16:21:27 +0000 (16:21 +0000)]
Fix a bad commit due to an svn merge error.

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

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

14 years agoChange the special handling of typeof comparisons to strings for
kmillikin@chromium.org [Thu, 5 Nov 2009 16:08:48 +0000 (16:08 +0000)]
Change the special handling of typeof comparisons to strings for
regular expressions to be consistent with typeof in other contexts.
Typeof regular expressions should now be 'function' in all contexts.

In the JS natives, IS_FUNCTION, IS_OBJECT, and IS_REGEXP return the
same answers as before.

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

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

14 years agoMade iteration of global handles more efficient on scavenges.
christian.plesner.hansen@gmail.com [Thu, 5 Nov 2009 15:12:36 +0000 (15:12 +0000)]
Made iteration of global handles more efficient on scavenges.

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

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

14 years agoFix issue 493: Infinite loop when debug break is set when entering function.apply.
sgjesse@chromium.org [Thu, 5 Nov 2009 13:59:40 +0000 (13:59 +0000)]
Fix issue 493: Infinite loop when debug break is set when entering function.apply.

In the generated code for function.apply there was a loop checking the stack limit for interruption. This loop would call into the runtime system to handle interuption and keep running until there was no interruption. However if the interuption was debug break the runtime system would never clear the interruption as debug break is prevented in builtins are prevented and the assumption here was that returning with the debug break flag set would move execution forward.

Renamed initial_jslimit and initial_climit to real_jslimit and real_climit. Renamed a few external references related to the stack limit as well.

Exposed the real stack limit to generated code to make the stack check when entering function.apply use the real stack limit and not the stack limit which is changed to signal interruption.

Added the real stack limit to the roots array.

BUG=http://code.google.com/p/v8/issues/detail?id=493
TEST=cctest/test-debug/DebugBreakFunctionApply
Review URL: http://codereview.chromium.org/345048

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

14 years agoRework the way we handle the fact that the ARM simulator uses a
ager@chromium.org [Thu, 5 Nov 2009 13:27:21 +0000 (13:27 +0000)]
Rework the way we handle the fact that the ARM simulator uses a
separate JS stack.

In exception handling, we need to be able to compare addresses into
the JavaScript portion of the stack with the address of a C++ handler
on the stack.  Since the stacks are separate on the simulator, we need
a JavaScript stack address corresponding to a C++ try catch handler in
order to perform valid address comparisons.

On the simulator, we now link the C++ try catch handlers indirectly
through the JS stack and use the JS stack indirection address for
comparisons.

      JS                    C++

                           handler
 [C++ address]   <------    next_
                \
                 \
                  \---->   handler
 [C++ address]   <------    next_

On actual hardware the C++ try catch handlers continue to be directly
linked.

BUG=http://code.google.com/p/v8/issues/detail?id=271
Review URL: http://codereview.chromium.org/360004

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

14 years agoMake "typeof this" return object in fast compiler.
whesse@chromium.org [Thu, 5 Nov 2009 12:45:53 +0000 (12:45 +0000)]
Make "typeof this" return object in fast compiler.
Review URL: http://codereview.chromium.org/366028

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

14 years agoFix case where we treat an unaliased call to eval as an aliased call
ager@chromium.org [Thu, 5 Nov 2009 11:19:37 +0000 (11:19 +0000)]
Fix case where we treat an unaliased call to eval as an aliased call
to eval.

BUG=http://code.google.com/p/v8/issues/detail?id=496
Review URL: http://codereview.chromium.org/366027

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

14 years agoIn the toplevel code generator, support local context allocation
kmillikin@chromium.org [Thu, 5 Nov 2009 10:38:26 +0000 (10:38 +0000)]
In the toplevel code generator, support local context allocation
provided that none of the parameters need to be copied into the
context.

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

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

14 years agoRemoved (now) unused Token-lookup code.
lrn@chromium.org [Thu, 5 Nov 2009 10:24:20 +0000 (10:24 +0000)]
Removed (now) unused Token-lookup code.

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

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

14 years agoImplement typeof in fast compiler.
whesse@chromium.org [Thu, 5 Nov 2009 10:15:25 +0000 (10:15 +0000)]
Implement typeof in fast compiler.
Review URL: http://codereview.chromium.org/354027

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

14 years agoChanged keyword token recognition to be done inline in the identifier scanner.
lrn@chromium.org [Thu, 5 Nov 2009 10:11:38 +0000 (10:11 +0000)]
Changed keyword token recognition to be done inline in the identifier scanner.

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

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

14 years agoAdd support for debugger statement to top-level compiler.
fschneider@chromium.org [Wed, 4 Nov 2009 19:04:29 +0000 (19:04 +0000)]
Add support for debugger statement to top-level compiler.

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

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

14 years agoFix a bug where if a non-lazily-compiled function is a candidate for
kmillikin@chromium.org [Wed, 4 Nov 2009 18:39:44 +0000 (18:39 +0000)]
Fix a bug where if a non-lazily-compiled function is a candidate for
toplevel compilation and the toplevel compiler cannot handle the
function, we would erroneously signal a stack overflow instead of
falling back on the optimizing compiler.

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

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

14 years agoObey the flag --lazy in the toplevel code generator.
kmillikin@chromium.org [Wed, 4 Nov 2009 17:59:24 +0000 (17:59 +0000)]
Obey the flag --lazy in the toplevel code generator.

There were two separate implementations of the function
'BuildBoilerplate' that is used to compile function declarations and
function literals.  The implementations did not do exactly the same
thing.  In particular, one ignored the flag --lazy.

Combine the two implementations.

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

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

14 years agoSort tests to increase predictability of mozilla test runs
erik.corry@gmail.com [Wed, 4 Nov 2009 16:55:24 +0000 (16:55 +0000)]
Sort tests to increase predictability of mozilla test runs
in the face of suspected python bugs.  Also remove some
unused code.
Review URL: http://codereview.chromium.org/365001

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

14 years agoFix ARM debug build
sgjesse@chromium.org [Wed, 4 Nov 2009 15:24:11 +0000 (15:24 +0000)]
Fix ARM debug build

TBR=fschneider@chromium.org

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

14 years agoFix issue 491: constantpool dump violates ARM debugger assertion for return point
sgjesse@chromium.org [Wed, 4 Nov 2009 14:45:50 +0000 (14:45 +0000)]
Fix issue 491: constantpool dump violates ARM debugger assertion for return point

The generation of the return sequence is now protected from having the constant pool emitted inside of it in both compilers.

BUG=http://code.google.com/p/v8/issues/detail?id=491
TEST=test/mjsunit/regress/regress-491.js
Review URL: http://codereview.chromium.org/362003

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

14 years agoFix compilation error in debug build for IA-32 and ARM.
fschneider@chromium.org [Wed, 4 Nov 2009 14:33:37 +0000 (14:33 +0000)]
Fix compilation error in debug build for IA-32 and ARM.

TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/361005

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

14 years agoEmitting the common return sequence in the top-level compiler in one function for...
fschneider@chromium.org [Wed, 4 Nov 2009 14:11:39 +0000 (14:11 +0000)]
Emitting the common return sequence in the top-level compiler in one function for each platform.

I factored out the code for emitting the return sequence since we had this code duplicated in the top-level compiler.

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

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

14 years agoRemove the typeof state threaded through the code generator. It was
kmillikin@chromium.org [Wed, 4 Nov 2009 13:56:41 +0000 (13:56 +0000)]
Remove the typeof state threaded through the code generator.  It was
used to signal that an expression was the immediate subexpression of
typeof, or (?) in the arm of a conditional expression itself in the
typeof state.

It was inconsistently consulted.  It was not used for property loads,
but only for slot loads.  This means that we matched the Webkit JSC
(not Spidermonkey) behavior for:

typeof(true ? x : y)  // throws ReferenceError

and we matched the SpiderMonkey behavior (not JSC) for:

with ({}) { typeof(true ? x : y) }  // ==> "undefined"

Now we are expected to match the JSC behavior in all cases.

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

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

14 years agoFix xssue 492: ARM debug crash: mozilla/ecma/FunctionObjects/15.3.1.1-3
sgjesse@chromium.org [Wed, 4 Nov 2009 10:04:22 +0000 (10:04 +0000)]
Fix xssue 492: ARM debug crash: mozilla/ecma/FunctionObjects/15.3.1.1-3

When the number of parameters times 4 (kPointerSize) to a function cannot be encoded in 12 bits the return sequence gets one more instruction. Changed the assertion to check for this case.

BUG=http://code.google.com/p/v8/issues/detail?id=492
TEST=test/mjsunit/regress/regress-492.js
Review URL: http://codereview.chromium.org/354028

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

14 years agoHate. Hate. Hate.
christian.plesner.hansen@gmail.com [Wed, 4 Nov 2009 09:19:30 +0000 (09:19 +0000)]
Hate.  Hate.  Hate.

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

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

14 years agoReverting 3174. Aka reapplying 3150, 3151 and 3159. Aka api accessor
christian.plesner.hansen@gmail.com [Wed, 4 Nov 2009 08:51:48 +0000 (08:51 +0000)]
Reverting 3174.  Aka reapplying 3150, 3151 and 3159.  Aka api accessor
ics.

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

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

14 years ago* Do a GC in mksnapshot to get rid of some extraneous junk.
erik.corry@gmail.com [Tue, 3 Nov 2009 21:00:43 +0000 (21:00 +0000)]
* Do a GC in mksnapshot to get rid of some extraneous junk.
* Make snapshot more compact by coding the tag and the space
in one byte.  Contract some common sequences to one byte.
* Use back references only within one page.  Index from the
start of the space otherwise.
* Serialize Smis as raw data rather than int-encoding them.
This takes a little more space but is faster.
Review URL: http://codereview.chromium.org/341079

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

14 years agoInsert call to CodeForFunctionPosition in the ARM code generator.
fschneider@chromium.org [Tue, 3 Nov 2009 16:08:35 +0000 (16:08 +0000)]
Insert call to CodeForFunctionPosition in the ARM code generator.

(== SetFunctionPosition in the top-level compiler)

IA32 and X64 already do this at the beginning of CodeGenerator::gencode

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

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

14 years agoBegin using the top-level code generator for code that is inside
kmillikin@chromium.org [Tue, 3 Nov 2009 14:48:59 +0000 (14:48 +0000)]
Begin using the top-level code generator for code that is inside
directly-applied function literals that are themselves compiled with
the top-level code generator.

The choice is guarded by a test that the function is anonymous (thus
not expected to be recursive) and not in a loop.

A compilation hint is set in the shared function info and used to make
the choice.

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

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

14 years agoMarked mjsunit/apply as expected to fail on mac debug.
christian.plesner.hansen@gmail.com [Tue, 3 Nov 2009 12:53:30 +0000 (12:53 +0000)]
Marked mjsunit/apply as expected to fail on mac debug.

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

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

14 years agoFix a latent bug in the top-level compilation of function calls.
kmillikin@chromium.org [Tue, 3 Nov 2009 12:47:19 +0000 (12:47 +0000)]
Fix a latent bug in the top-level compilation of function calls.

Calls to a non-global variable would go through the "call to a global"
path, rather than the "call to an arbitrary (other) expression" path.

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

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

14 years agoMade rethrow test not depend on stack overflow behavior.
christian.plesner.hansen@gmail.com [Tue, 3 Nov 2009 09:52:06 +0000 (09:52 +0000)]
Made rethrow test not depend on stack overflow behavior.

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

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

14 years agoAdded TryCatch::ReThrow method.
christian.plesner.hansen@gmail.com [Tue, 3 Nov 2009 08:53:34 +0000 (08:53 +0000)]
Added TryCatch::ReThrow method.

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

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

14 years agoCommiting changelist issue 348039 outside the codereview tool. Add comparisons to...
whesse@chromium.org [Mon, 2 Nov 2009 15:01:06 +0000 (15:01 +0000)]
Commiting changelist issue 348039 outside the codereview tool.  Add comparisons to fast compiler

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

14 years agoAdd support for for loops to the toplevel code generator.
kmillikin@chromium.org [Mon, 2 Nov 2009 14:12:48 +0000 (14:12 +0000)]
Add support for for loops to the toplevel code generator.

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

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

14 years agoAdd support for initialization block assignments in the toplevel code
kmillikin@chromium.org [Mon, 2 Nov 2009 13:30:24 +0000 (13:30 +0000)]
Add support for initialization block assignments in the toplevel code
generator, mimicing the behavior of the optimizing compiler.

Initialization blocks can only contain (thus begin and end) with a
property assignment in toplevel code.

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

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

14 years agoDon't use string slices when processing RexExp replace (re-apply r3153)
sgjesse@chromium.org [Mon, 2 Nov 2009 12:21:43 +0000 (12:21 +0000)]
Don't use string slices when processing RexExp replace (re-apply r3153)

Re-apply r3153 with a fix for issue 490. Except for the change in line 1756 and the added test this change is identical to http://codereview.chromium.org/342015.

BUG=490
TEST=test/mjsunit/regress/regress-490.js
Review URL: http://codereview.chromium.org/341064

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

14 years agoSupport for function calls on an arbitrary expression that returns
fschneider@chromium.org [Mon, 2 Nov 2009 12:04:35 +0000 (12:04 +0000)]
Support for function calls on an arbitrary expression that returns
a function in the top-level compiler.

e.g.

function f() { return (function() { return true; }) }
f()()

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

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

14 years agoRefactor the somewhat complicated code generation for assignments into
kmillikin@chromium.org [Mon, 2 Nov 2009 11:01:47 +0000 (11:01 +0000)]
Refactor the somewhat complicated code generation for assignments into
a platform-independent structure and a few platform-specific helpers
to do the heavy lifting.

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

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

14 years agoSupport for post-fix count operations (x++, x--) where x is a global
fschneider@chromium.org [Mon, 2 Nov 2009 10:22:22 +0000 (10:22 +0000)]
Support for post-fix count operations (x++, x--) where x is a global
variable for the top-level compiler.

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

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