platform/upstream/v8.git
15 years agoMost of the crashing ARM tests failed in debug mode.
sgjesse@chromium.org [Wed, 29 Oct 2008 15:50:50 +0000 (15:50 +0000)]
Most of the crashing ARM tests failed in debug mode.

TBR=kasperl
Review URL: http://codereview.chromium.org/8698

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

15 years agoSkip the tests which currently crash on the ARM simulator.
sgjesse@chromium.org [Wed, 29 Oct 2008 14:23:18 +0000 (14:23 +0000)]
Skip the tests which currently crash on the ARM simulator.
Review URL: http://codereview.chromium.org/8696

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

15 years agoGet the ARM simulator to throw an exception on unaligned accesses.
erik.corry@gmail.com [Wed, 29 Oct 2008 14:12:13 +0000 (14:12 +0000)]
Get the ARM simulator to throw an exception on unaligned accesses.
Review URL: http://codereview.chromium.org/8830

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

15 years agoAdded crash detection to tests on Linux.
sgjesse@chromium.org [Wed, 29 Oct 2008 12:51:14 +0000 (12:51 +0000)]
Added crash detection to tests on Linux.

Added the timeout condition to the CommandOutput class.
Review URL: http://codereview.chromium.org/8695

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

15 years agoAllow three runtime call attempts before throwing an out of
kasperl@chromium.org [Wed, 29 Oct 2008 12:16:34 +0000 (12:16 +0000)]
Allow three runtime call attempts before throwing an out of
memory exception. Still needs work in Runtime_PerformGC to
make sure we'll allow future allocations.
Review URL: http://codereview.chromium.org/8873

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

15 years agoRemove unused maps during marking garbage collections.
whessev8 [Wed, 29 Oct 2008 10:37:14 +0000 (10:37 +0000)]
Remove unused maps during marking garbage collections.

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

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

15 years agoMade testing run on Linux again. Fixed spelling error.
sgjesse@chromium.org [Wed, 29 Oct 2008 10:19:21 +0000 (10:19 +0000)]
Made testing run on Linux again. Fixed spelling error.

TBR=plesner

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

15 years agoFix issue with Array.concat not preserving holes in the
kasperl@chromium.org [Wed, 29 Oct 2008 10:02:09 +0000 (10:02 +0000)]
Fix issue with Array.concat not preserving holes in the
top-level arrays.
Review URL: http://codereview.chromium.org/8694

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

15 years agoBecause allocation in large object space can now require checking the
kmillikin@chromium.org [Wed, 29 Oct 2008 10:00:38 +0000 (10:00 +0000)]
Because allocation in large object space can now require checking the
size of the entire old generation, the heap must be (more) properly
set up to test the large object space.
Review URL: http://codereview.chromium.org/8872

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

15 years agoBy default disable the general protection fault message box when
sgjesse@chromium.org [Wed, 29 Oct 2008 09:52:31 +0000 (09:52 +0000)]
By default disable the general protection fault message box when
running tests on Windows. This requires

Added the option --win-error-box to enable general protection fault
message box which can be convenient when debugging failing tests on
Windows.

Added crash detection when running tests on Windows. The output
is not fully polished but crashed indications are printed for the
different progess indicators.

Changed the OS::Abort on Windows from generating a "crash" (int3)
to calling abort(). This is to avoid tests which are known to fail
with out of memory errors to be detected as crashed tests.
Review URL: http://codereview.chromium.org/8676

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

15 years agoCheck the growth of the old generation before expanding the paged
kmillikin@chromium.org [Wed, 29 Oct 2008 09:27:59 +0000 (09:27 +0000)]
Check the growth of the old generation before expanding the paged
spaces (during normal allocation) and when allocating large objects.
If the promotion limit is reached, fail allocation to trigger a
garbage collection.
Review URL: http://codereview.chromium.org/8657

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

15 years agoFix compile failure with very strict gcc warning rules on Linux.
iposva@chromium.org [Tue, 28 Oct 2008 22:47:51 +0000 (22:47 +0000)]
Fix compile failure with very strict gcc warning rules on Linux.

TBR=kasperl

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

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

15 years agoTrack whether a node or variable are likely to be a Smi value. Propagate that
iposva@chromium.org [Tue, 28 Oct 2008 22:33:00 +0000 (22:33 +0000)]
Track whether a node or variable are likely to be a Smi value. Propagate that
knowledge in the AST and inline the Smi check into the generated code if it
is deemed high value (e.g. in loops).

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

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

15 years agoFix the lint error.
feng@chromium.org [Tue, 28 Oct 2008 17:32:01 +0000 (17:32 +0000)]
Fix the lint error.

TBR=iposva

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

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

15 years agoCheck that an index is in the range of 0 to array length in ArrayConcatVisitor.
feng@chromium.org [Tue, 28 Oct 2008 17:23:10 +0000 (17:23 +0000)]
Check that an index is in the range of 0 to array length in ArrayConcatVisitor.
Elements out of range are discarded.

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

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

15 years agofix build error in debug mode, TBR=iposva
feng@chromium.org [Tue, 28 Oct 2008 16:27:09 +0000 (16:27 +0000)]
fix build error in debug mode, TBR=iposva

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

15 years agoFix lint issues.
kasperl@chromium.org [Tue, 28 Oct 2008 14:54:52 +0000 (14:54 +0000)]
Fix lint issues.

TBR=feng@chromium.org
Review URL: http://codereview.chromium.org/8659

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

15 years agoImplement Array::concat function in C++.
feng@chromium.org [Tue, 28 Oct 2008 14:47:50 +0000 (14:47 +0000)]
Implement Array::concat function in C++.

The performance of Array::concat is critical of jQuery benchmark from
http://www.dromaeo.com. Our current implementation in JavaScript is very
generic and is several times slower than JSC and SpiderMonkey.

Re-implement Array::concat in C++ to take advantage of underlying implementation
details. This cuts dom-travesal-jquery execution time by half.

We may want to move Array specific implementation into a separate source file,
say jsarray.cc.

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

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

15 years agoChange the order of two assignments, to make sure that the script type
ager@chromium.org [Tue, 28 Oct 2008 13:46:04 +0000 (13:46 +0000)]
Change the order of two assignments, to make sure that the script type
field is always initialized to a Smi before we get any GCs.

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

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

15 years agoIn my final round of refactoring, I accidentally broke my string
ager@chromium.org [Tue, 28 Oct 2008 10:25:35 +0000 (10:25 +0000)]
In my final round of refactoring, I accidentally broke my string
lenght optimization.  Here is the fix: check that the instance type
not the receiver is JS_VALUE_TYPE.

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

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

15 years agoFixing profiling when using snapshot.
olehougaard [Tue, 28 Oct 2008 09:53:52 +0000 (09:53 +0000)]
Fixing profiling when using snapshot.
Review URL: http://codereview.chromium.org/8655

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

15 years agoGet ready for pushing version 0.4.1 to trunk.
kasperl@chromium.org [Tue, 28 Oct 2008 08:42:47 +0000 (08:42 +0000)]
Get ready for pushing version 0.4.1 to trunk.
Review URL: http://codereview.chromium.org/8829

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

15 years agoWork around issue 131 by checking for empty handles
kasperl@chromium.org [Tue, 28 Oct 2008 08:29:23 +0000 (08:29 +0000)]
Work around issue 131 by checking for empty handles
in a few places.
Review URL: http://codereview.chromium.org/8828

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

15 years agoRevert revision 593. This was a cleanup change but it caused layout
ager@chromium.org [Tue, 28 Oct 2008 07:30:10 +0000 (07:30 +0000)]
Revert revision 593.  This was a cleanup change but it caused layout
test regressions.

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

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

15 years agoFast check undefined in EQUALS.
feng@chromium.org [Tue, 28 Oct 2008 03:39:17 +0000 (03:39 +0000)]
Fast check undefined in EQUALS.

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

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

15 years agoAllow string-compare-alignment to pass on ARM simulator.
kasperl@chromium.org [Mon, 27 Oct 2008 16:43:56 +0000 (16:43 +0000)]
Allow string-compare-alignment to pass on ARM simulator.

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

15 years agoIt seems we haven't nailed the unaligned string compare problem yet.
erik.corry@gmail.com [Mon, 27 Oct 2008 15:53:29 +0000 (15:53 +0000)]
It seems we haven't nailed the unaligned string compare problem yet.
Review URL: http://codereview.chromium.org/8622

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

15 years agoTest for a bug that was fixed in r554 where we used unaligned accesses on ARM
erik.corry@gmail.com [Mon, 27 Oct 2008 14:42:23 +0000 (14:42 +0000)]
Test for a bug that was fixed in r554 where we used unaligned accesses on ARM
with surprising results.
Review URL: http://codereview.chromium.org/8619

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

15 years agoAllow inline caching for getting the length of string wrapper objects.
ager@chromium.org [Mon, 27 Oct 2008 14:36:08 +0000 (14:36 +0000)]
Allow inline caching for getting the length of string wrapper objects.
Review URL: http://codereview.chromium.org/8620

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

15 years agoFix issue 120 by patching the on-stack receiver in the
kasperl@chromium.org [Mon, 27 Oct 2008 14:12:02 +0000 (14:12 +0000)]
Fix issue 120 by patching the on-stack receiver in the
IC stubs for calls just before invoking the target
function instead of doing it before resolving the
function.
Review URL: http://codereview.chromium.org/8192

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

15 years agoFix mistake in ARM version of string length stub.
erik.corry@gmail.com [Mon, 27 Oct 2008 14:01:04 +0000 (14:01 +0000)]
Fix mistake in ARM version of string length stub.
Review URL: http://codereview.chromium.org/8193

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

15 years agoRevert changes 601 and 602. TBR
whesse@chromium.org [Mon, 27 Oct 2008 12:45:24 +0000 (12:45 +0000)]
Revert changes 601 and 602.  TBR

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

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

15 years agoAdd missing ARM files from last change!
erik.corry@gmail.com [Mon, 27 Oct 2008 12:44:11 +0000 (12:44 +0000)]
Add missing ARM files from last change!

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

15 years agoSerendipitously arrange the tags so that String.length() becomes a branch-free
erik.corry@gmail.com [Mon, 27 Oct 2008 12:39:34 +0000 (12:39 +0000)]
Serendipitously arrange the tags so that String.length() becomes a branch-free
operation.  I have another version of this change that does not remove the
special inline caches for difference sized strings.  The other version is ever
so slightly faster, but the nice thing about this version is that it removes
253 lines of code.
Review URL: http://codereview.chromium.org/8187

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

15 years agoRewrites a ternary choice operator to fix a compiler
whesse@chromium.org [Mon, 27 Oct 2008 12:24:22 +0000 (12:24 +0000)]
Rewrites a ternary choice operator to fix a compiler
linkage bug.

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

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

15 years agoCollects unused maps that are only kept alive by map transitions.
whesse@chromium.org [Mon, 27 Oct 2008 11:55:31 +0000 (11:55 +0000)]
Collects unused maps that are only kept alive by map transitions.

If a map has descendents in the map transition tree that are alive,
it is kept.  Only maps such that they and all their descendants
have no live objects are collected.  This happens in mark-sweep and
mark-compact garbage collections.
Review URL: http://codereview.chromium.org/8099

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

15 years agoFix issue 128.
kasperl@chromium.org [Mon, 27 Oct 2008 09:48:47 +0000 (09:48 +0000)]
Fix issue 128.
Review URL: http://codereview.chromium.org/8617

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

15 years agoAdded a Visual Studio project for the d8 developer shell. Currently without readline...
sgjesse@chromium.org [Mon, 27 Oct 2008 07:52:59 +0000 (07:52 +0000)]
Added a Visual Studio project for the d8 developer shell. Currently without readline support.
Review URL: http://codereview.chromium.org/7984

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

15 years agoYou can't use BinarySearch on an unsorted array and other
erik.corry@gmail.com [Sun, 26 Oct 2008 20:50:05 +0000 (20:50 +0000)]
You can't use BinarySearch on an unsorted array and other
sillinesses found while trying to get rid of medium-sized strings.

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

15 years agoremove unused strcasecmp on windows, it conflicts with the one from webkit, check...
feng@chromium.org [Fri, 24 Oct 2008 23:20:25 +0000 (23:20 +0000)]
remove unused strcasecmp on windows, it conflicts with the one from webkit, check in on behave of dglazkov@chromium.org

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

15 years agoRevorked version of http://codereview.chromium.org/8101. The only change is
sgjesse@chromium.org [Fri, 24 Oct 2008 20:50:26 +0000 (20:50 +0000)]
Revorked version of codereview.chromium.org/8101. The only change is
that the exception stored in the TryCatch is not cleared as that was the
cause of the regression.

So the actual difference to http://codereview.chromium.org/8101 is:
Index: src/top.h
===================================================================
--- src/top.h   (revision 576)
+++ src/top.h   (working copy)
@@ -154,10 +154,6 @@
     if (has_pending_exception()) {
       thread_local_.external_caught_exception_ =
           thread_local_.pending_external_caught_exception_;
-    } else {
-      if (thread_local_.try_catch_handler_ != NULL) {
-        thread_local_.try_catch_handler_->Reset();
-      }
     }
     thread_local_.pending_external_caught_exception_ = false;
   }
@@ -312,14 +308,14 @@
 };

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

15 years agoGet ready for fixing issue 120: Pin point the places
kasperl@chromium.org [Fri, 24 Oct 2008 12:58:17 +0000 (12:58 +0000)]
Get ready for fixing issue 120: Pin point the places
where the receiver needs to be patched with the proxy
and get ready of unnecessary function patching on ARM.

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

15 years agoImprove code for looking up in context slots in runtime.cc and
kasperl@chromium.org [Fri, 24 Oct 2008 10:59:40 +0000 (10:59 +0000)]
Improve code for looking up in context slots in runtime.cc and
use safe casting operations to slot access on contexts when
possible.

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

15 years agoFix lint issue.
kasperl@chromium.org [Fri, 24 Oct 2008 10:15:07 +0000 (10:15 +0000)]
Fix lint issue.

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

15 years agoChange a few runtime functions that took and returned a dummy argument
kmillikin@chromium.org [Fri, 24 Oct 2008 10:13:22 +0000 (10:13 +0000)]
Change a few runtime functions that took and returned a dummy argument
to instead take no arguments and return the undefined value.

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

15 years agoChanged the workarround for a GCC compiler bug to be only active for the GCC
sgjesse@chromium.org [Fri, 24 Oct 2008 09:35:27 +0000 (09:35 +0000)]
Changed the workarround for a GCC compiler bug to be only active for the GCC
version range for which the bug is known to exist.

Added include to compile with GCC 4.3.1.

BUG=122

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

15 years ago- Added caching of regexp data in the compilation cache.
christian.plesner.hansen@gmail.com [Fri, 24 Oct 2008 08:40:02 +0000 (08:40 +0000)]
- Added caching of regexp data in the compilation cache.
- Changed the structure of regexp objects from having two internal
  fields to having a single field containing a fixed array, since it's
  easier to store the whole fixed array in the cache.
- Move printing of the command to after printing std{err,out} in the
  compact progress indicators in the test framework.

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

15 years agoFix build.
sgjesse@chromium.org [Fri, 24 Oct 2008 07:19:00 +0000 (07:19 +0000)]
Fix build.
Review URL: http://codereview.chromium.org/8144

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

15 years agoReverted r576 as it caused a regression.
sgjesse@chromium.org [Fri, 24 Oct 2008 06:40:43 +0000 (06:40 +0000)]
Reverted r576 as it caused a regression.

TBR=kasperl
Review URL: http://codereview.chromium.org/7970

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

15 years agoCleanup of http://codereview.chromium.org/8101.
sgjesse@chromium.org [Fri, 24 Oct 2008 06:22:47 +0000 (06:22 +0000)]
Cleanup of http://codereview.chromium.org/8101.

Changed the catcher_ field to a boolean value and renamed it. Modified the
propagation of the external caught exception to also clear the current
TryCatch if there is no exception as it might hold an exception which has
been bypassed by code in a finally block.

Minor formatting changes to a test.
Review URL: http://codereview.chromium.org/8102

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

15 years agoAddressing Ivan's comments of using INVALID_TYPE in Factory::CreateApiFunction.
feng@chromium.org [Thu, 23 Oct 2008 22:27:16 +0000 (22:27 +0000)]
Addressing Ivan's comments of using INVALID_TYPE in Factory::CreateApiFunction.

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

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

15 years agoFixed usage of NewArgumentsObject for accessor.
bak@chromium.org [Thu, 23 Oct 2008 15:06:31 +0000 (15:06 +0000)]
Fixed usage of NewArgumentsObject for accessor.

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

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

15 years ago- Fixed performance regression caused by ComputeContextSlotReceiver.
bak@chromium.org [Thu, 23 Oct 2008 14:55:45 +0000 (14:55 +0000)]
- Fixed performance regression caused by ComputeContextSlotReceiver.
- Eliminated a few write barriers.

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

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

15 years agoGet ready for pushing 0.4.0 to trunk. We're now working
kasperl@chromium.org [Thu, 23 Oct 2008 13:33:11 +0000 (13:33 +0000)]
Get ready for pushing 0.4.0 to trunk. We're now working
towards version 0.4.1.
Review URL: http://codereview.chromium.org/8100

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

15 years agoPosponed the setting of "external_caught_exception" to when leaving JavaScript
sgjesse@chromium.org [Thu, 23 Oct 2008 12:54:13 +0000 (12:54 +0000)]
Posponed the setting of "external_caught_exception" to when leaving JavaScript
execution. This is achieved by storing a pointer to the C++ TryCatch when the
exception is thrown and checking that this is the handler active when leaving
JavaScript.
Review URL: http://codereview.chromium.org/8101

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

15 years agoFix lint issue.
kasperl@chromium.org [Thu, 23 Oct 2008 11:09:48 +0000 (11:09 +0000)]
Fix lint issue.

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

15 years agoAdded v8::Object::GetProperties method that returns an array of all
christian.plesner.hansen@gmail.com [Thu, 23 Oct 2008 10:31:49 +0000 (10:31 +0000)]
Added v8::Object::GetProperties method that returns an array of all
the enumerable properties of an object.

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

15 years ago- Added conditional write barrier to object accessors.
bak@chromium.org [Thu, 23 Oct 2008 08:46:32 +0000 (08:46 +0000)]
- Added conditional write barrier to object accessors.
- Sped up allocation of Arguments object.

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

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

15 years agoFix issue 124 by computing the receiver correctly when
kasperl@chromium.org [Thu, 23 Oct 2008 08:42:22 +0000 (08:42 +0000)]
Fix issue 124 by computing the receiver correctly when
the property is found in a context slot.
Review URL: http://codereview.chromium.org/8097

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

15 years agoChanged the message reporting for try { ... } finally { ... } statements to
sgjesse@chromium.org [Thu, 23 Oct 2008 08:40:19 +0000 (08:40 +0000)]
Changed the message reporting for try { ... } finally { ... } statements to
report the exception when they happen in the try block and not as previously
when re-thrown after execution of the finally block. There is no longer any
message generated by re-throw.

Added test cases for various combinations of try/catch/finally with throw in
different places.

Added a regression directory to the messages tests which is processed by the
test runner.

Added regression tests for the specific bugs fixed.

Runs all the test suites.

BUG=73
BUG=75
Review URL: http://codereview.chromium.org/8050

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

15 years ago- Added const in a few places.
christian.plesner.hansen@gmail.com [Thu, 23 Oct 2008 08:25:23 +0000 (08:25 +0000)]
- Added const in a few places.
- Changed WeakReferenceCallback to take a Persistent<Value> instead of
  a Persistent<Object>.
- Removed Message::GetUnderline and Message::GetScriptData.
- Added Value::IsDate, Date::Cast and Date::Value.

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

15 years agoFix some style issues.
erik.corry@gmail.com [Thu, 23 Oct 2008 07:28:21 +0000 (07:28 +0000)]
Fix some style issues.
Review URL: http://codereview.chromium.org/8055

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

15 years agoCopy strings 1 word at a time when flattening etc.
erik.corry@gmail.com [Thu, 23 Oct 2008 07:20:28 +0000 (07:20 +0000)]
Copy strings 1 word at a time when flattening etc.
Review URL: http://codereview.chromium.org/7885

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

15 years agoIntroduce a lookup cache class in the runtime system and use it for
ager@chromium.org [Thu, 23 Oct 2008 07:04:56 +0000 (07:04 +0000)]
Introduce a lookup cache class in the runtime system and use it for
keyed loads that enter the runtime.

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

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

15 years agoApply Daniel's patch for array index strings.
kasperl@chromium.org [Thu, 23 Oct 2008 06:20:57 +0000 (06:20 +0000)]
Apply Daniel's patch for array index strings.
Review URL: http://codereview.chromium.org/7869

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

15 years agoUpdate Mozilla test status to reflect that regress-363258
kasperl@chromium.org [Thu, 23 Oct 2008 06:11:39 +0000 (06:11 +0000)]
Update Mozilla test status to reflect that regress-363258
is flaky on Linux and Mac (as well as Windows) and remove
line that refers to non-existing mozilla/... test.
Review URL: http://codereview.chromium.org/7910

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

15 years agoAdded failing test case for bug 124.
kasperl@chromium.org [Thu, 23 Oct 2008 05:49:05 +0000 (05:49 +0000)]
Added failing test case for bug 124.

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

15 years agoAdd a workaround for a compiler gug in GCC 4.2.3. See issue 122 for details.
sgjesse@chromium.org [Wed, 22 Oct 2008 15:04:40 +0000 (15:04 +0000)]
Add a workaround for a compiler gug in GCC 4.2.3. See issue 122 for details.

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

15 years agoRename member variables and functions and clarify comments to try to
kmillikin@chromium.org [Wed, 22 Oct 2008 12:45:33 +0000 (12:45 +0000)]
Rename member variables and functions and clarify comments to try to
make the operation of LabelShadows more understandable.
Review URL: http://codereview.chromium.org/7868

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

15 years agoReplaced the implementation of %StringEquals, which was a poorly
christian.plesner.hansen@gmail.com [Wed, 22 Oct 2008 12:33:20 +0000 (12:33 +0000)]
Replaced the implementation of %StringEquals, which was a poorly
optimized duplicate of String::Equals, with a simple call to
String::Equals.

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

15 years ago- Changed regexp logging to include the string being matched and to
christian.plesner.hansen@gmail.com [Wed, 22 Oct 2008 12:00:19 +0000 (12:00 +0000)]
- Changed regexp logging to include the string being matched and to
  escape commas.
- Fixed issue with block-comparing unaligned strings on arm.
- Added short documentation to one of the Persistent constructors.

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

15 years agoImprove error reporting in benchmarks.
kasperl@chromium.org [Wed, 22 Oct 2008 11:55:08 +0000 (11:55 +0000)]
Improve error reporting in benchmarks.
Review URL: http://codereview.chromium.org/8053

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

15 years agoFix warning from Windows about loss of data in cast-less assignment.
erik.corry@gmail.com [Wed, 22 Oct 2008 11:13:48 +0000 (11:13 +0000)]
Fix warning from Windows about loss of data in cast-less assignment.
Review URL: http://codereview.chromium.org/7865

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

15 years ago- Applied FixedArray::WriteBarrierMode to NewArgumentsFast.
bak@chromium.org [Wed, 22 Oct 2008 09:47:20 +0000 (09:47 +0000)]
- Applied FixedArray::WriteBarrierMode to NewArgumentsFast.

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

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

15 years agoIncorporate patches by Paolo Giarrusso to allow profiling
kasperl@chromium.org [Wed, 22 Oct 2008 09:46:09 +0000 (09:46 +0000)]
Incorporate patches by Paolo Giarrusso to allow profiling
C++ functions in shared libraries, building in directories
containing spaces, and using named constants better.
Review URL: http://codereview.chromium.org/7864

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

15 years agoUse direct copy and templates to speed up flattening of strings.
erik.corry@gmail.com [Wed, 22 Oct 2008 09:09:07 +0000 (09:09 +0000)]
Use direct copy and templates to speed up flattening of strings.
Review URL: http://codereview.chromium.org/8011

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

15 years ago- Optimized CopyFixedArray and CopyJSObject.
bak@chromium.org [Wed, 22 Oct 2008 08:21:18 +0000 (08:21 +0000)]
- Optimized CopyFixedArray and CopyJSObject.
- Refactored block copying.

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

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

15 years agoRefactor the smi case inlining for binary operations, so
kasperl@chromium.org [Wed, 22 Oct 2008 07:47:02 +0000 (07:47 +0000)]
Refactor the smi case inlining for binary operations, so
it's easier to inline the code on demand. Right now, we still
only inline the smi case code for bitwise operations.
Review URL: http://codereview.chromium.org/7669

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

15 years agoAdded handling of empty handles to String::AsciiValue and String::Value.
sgjesse@chromium.org [Wed, 22 Oct 2008 06:30:29 +0000 (06:30 +0000)]
Added handling of empty handles to String::AsciiValue and String::Value.
Review URL: http://codereview.chromium.org/7832

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

15 years ago- ip register cannot be used when accessing large constants in the instruction
iposva@chromium.org [Tue, 21 Oct 2008 22:40:14 +0000 (22:40 +0000)]
- ip register cannot be used when accessing large constants in the instruction
  stream. Enhance the debug code to save and restore the unused holder_reg
  at these points.
- Fix lint issues.

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

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

15 years agoNo more failures than before. It is ready to be reviewed.
feng@chromium.org [Tue, 21 Oct 2008 20:11:50 +0000 (20:11 +0000)]
No more failures than before. It is ready to be reviewed.

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

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

15 years agoFix style issues.
feng@chromium.org [Tue, 21 Oct 2008 20:08:49 +0000 (20:08 +0000)]
Fix style issues.

TBR=iposva

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

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

15 years agoFixed the build error in debug mode.
feng@chromium.org [Tue, 21 Oct 2008 19:52:07 +0000 (19:52 +0000)]
Fixed the build error in debug mode.

TBR = iposva

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

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

15 years agoInitialize the variable to a valid value.
feng@chromium.org [Tue, 21 Oct 2008 19:14:22 +0000 (19:14 +0000)]
Initialize the variable to a valid value.

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

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

15 years agoSplit window support from V8.
feng@chromium.org [Tue, 21 Oct 2008 19:07:58 +0000 (19:07 +0000)]
Split window support from V8.

Here is a description of the background and design of split window in Chrome and V8:
https://docs.google.com/a/google.com/Doc?id=chhjkpg_47fwddxbfr

This change list splits the window object into two parts: 1) an inner window object used as the global object of contexts; 2) an outer window object exposed to JavaScript and accessible by the name 'window'. Firefox did it awhile ago, here are some discussions: https://wiki.mozilla.org/Gecko:SplitWindow. One additional benefit of splitting window in Chrome is that accessing global variables don't need security checks anymore, it can improve applications that use many global variables.

V8 support of split window:
  There are a small number of changes on V8 api to support split window:
Security context is removed from V8, so does related API functions;
A global object can be detached from its context and reused by a new context;
Access checks on an object template can be turned on/off by default;
An object can turn on its access checks later;

  V8 has a new object type, ApiGlobalObject, which is the outer window object type. The existing JSGlobalObject becomes the inner window object type. Security checks are moved from JSGlobalObject to ApiGlobalObject. ApiGlobalObject is the one exposed to JavaScript, it is accessible through Context::Global(). ApiGlobalObject's prototype is set to JSGlobalObject so that property lookups are forwarded to JSGlobalObject. ApiGlobalObject forwards all other property access requests to JSGlobalObject, such as SetProperty, DeleteProperty, etc.

  Security token is moved to a global context, and ApiGlobalObject has a reference to its global context. JSGlobalObject has a reference to its global context as well. When accessing properties on a global object in JavaScript, the domain security check is performed by comparing the security token of the lexical context (Top::global_context()) to the token of global object's context. The check is only needed when the receiver is a window object, such as 'window.document'. Accessing global variables, such as 'var foo = 3; foo' does not need checks because the receiver is the inner window object.

  When an outer window is detached from its global context (when a frame navigates away from a page), it is completely detached from the inner window. A new context is created for the new page, and the outer global object is reused. At this point, the access check on the DOMWindow wrapper of the old context is turned on. The code in old context is still able to access DOMWindow properties, but it has to go through domain security checks.

It is debatable on how to implement the outer window object. Currently each property access function has to check if the receiver is ApiGlobalObject type. This approach might be error-prone that one may forget to check the receiver when adding new functions. It is unlikely a performance issue because accessing global variables are more common than 'window.foo' style coding.

I am still working on the ARM port, and I'd like to hear comments and suggestions on the best way to support it in V8.

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

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

15 years agoMake one-ascii-character-string a symbol in its cache.
feng@chromium.org [Tue, 21 Oct 2008 16:28:44 +0000 (16:28 +0000)]
Make one-ascii-character-string a symbol in its cache.

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

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

15 years agoMinor fixes
sgjesse@chromium.org [Tue, 21 Oct 2008 15:24:58 +0000 (15:24 +0000)]
Minor fixes

  - support changes to js2c in Visual Studio build
  - handle empty handles in Utf8Value
  - add /nologo to sample link in SCons build

TBR=plesner
Review URL: http://codereview.chromium.org/7816

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

15 years ago- Update js2c.py to take a type parameter.
iposva@chromium.org [Tue, 21 Oct 2008 14:32:23 +0000 (14:32 +0000)]
- Update js2c.py to take a type parameter.
- Use the type parameter in the Xcode run script phases when building the
  libraries.cc and libraries-empty.cc files.

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

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

15 years agoMinor cleanups.
kasperl@chromium.org [Tue, 21 Oct 2008 14:11:22 +0000 (14:11 +0000)]
Minor cleanups.
Review URL: http://codereview.chromium.org/8008

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

15 years agoAdded development shell (d8) including readline support, counters and
christian.plesner.hansen@gmail.com [Tue, 21 Oct 2008 09:12:27 +0000 (09:12 +0000)]
Added development shell (d8) including readline support, counters and
completion.

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

15 years ago- Cleaned up Heap::CopyObject. Inlined fast case.
bak@chromium.org [Tue, 21 Oct 2008 08:48:11 +0000 (08:48 +0000)]
- Cleaned up Heap::CopyObject. Inlined fast case.

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

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

15 years agoFix bug 1439135 (slicedstring on constring not flat)
erik.corry@gmail.com [Tue, 21 Oct 2008 08:08:17 +0000 (08:08 +0000)]
Fix bug 1439135 (slicedstring on constring not flat)
Review URL: http://codereview.chromium.org/7809

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

15 years agoAdded failing test case for bug 1439135.
kasperl@chromium.org [Tue, 21 Oct 2008 07:39:53 +0000 (07:39 +0000)]
Added failing test case for bug 1439135.
Review URL: http://codereview.chromium.org/7808

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

15 years agoAdded string equality by reading int-sized blocks of characters for
christian.plesner.hansen@gmail.com [Mon, 20 Oct 2008 11:38:32 +0000 (11:38 +0000)]
Added string equality by reading int-sized blocks of characters for
flat strings with the same representation.

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

15 years agoSet the mime type of run.html.
christian.plesner.hansen [Mon, 20 Oct 2008 08:46:22 +0000 (08:46 +0000)]
Set the mime type of run.html.

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

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

15 years ago-Fixed non debug build with an ifdef.
bak@chromium.org [Mon, 20 Oct 2008 07:37:51 +0000 (07:37 +0000)]
-Fixed non debug build with an ifdef.

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

15 years ago- Changed gc-greedy to ignore boostrapping.
bak@chromium.org [Mon, 20 Oct 2008 07:31:33 +0000 (07:31 +0000)]
- Changed gc-greedy to ignore boostrapping.
  This change reduces the running time of tests without snapshotting.

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

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

15 years ago- Optimized copying of FixedArray.
bak@chromium.org [Mon, 20 Oct 2008 06:35:28 +0000 (06:35 +0000)]
- Optimized copying of FixedArray.

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

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

15 years ago- Eliminated superfluous type tests in IsMatch.
bak@chromium.org [Fri, 17 Oct 2008 12:36:23 +0000 (12:36 +0000)]
- Eliminated superfluous type tests in IsMatch.

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

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

15 years ago - Missing files
bak@chromium.org [Fri, 17 Oct 2008 11:36:42 +0000 (11:36 +0000)]
 - Missing files

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