lrn@chromium.org [Tue, 5 Jul 2011 11:54:11 +0000 (11:54 +0000)]
Extract string->double and double->string conversions for use in the preparser.
Review URL: http://codereview.chromium.org/
7308004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8534
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 5 Jul 2011 11:36:52 +0000 (11:36 +0000)]
Fix ABI for API calls on ia32.
Instead of relying on eax value after the call load returned handle value directly from the slot that was preallocated for it.
R=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/
7307004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8533
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 5 Jul 2011 06:19:53 +0000 (06:19 +0000)]
Introduce code flushing of RegExp code.
Due to issues relating mostly to chrome extensions we have lately been
running into OOMs that are caused by our executable space running
out. This change introduces flushing of code from regexps if we have
not used the code for 5 mark sweeps.
The approach is different from the normal function code flusing. Here
we make a copy of the code inside the data array, and exchange the
original code with a smi determined by the sweep_generation (a new
heap variable increased everytime we do mark sweep/compact). If we
encounter a smi in EnsureCompiled we simply reinstate the code
object. If, in the marking phase of mark sweep, we find a regexp that
already have a smi in the code field, and this is more than 5
generations old we flush the code from the saved index.
Review URL: http://codereview.chromium.org/
7282026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8532
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 5 Jul 2011 05:27:10 +0000 (05:27 +0000)]
Don't try to build d8 from profiler tick processor scripts.
As described in the issue 1532, this may lead to building a 32-bit version over
existing x64-bit. It's better delegate to delegate this task to an user.
R=vitalyr@chromium.org
BUG=1532
Review URL: http://codereview.chromium.org/
7309012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8530
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 4 Jul 2011 14:13:08 +0000 (14:13 +0000)]
As part of allowing different contexts for inlined functions, eliminate most explicit reads of the context from the stack frame in ia32 crankshaft codegen.
Eliminates the enum flag RESTORE_CONTEXT and CONTEXT_ADJUSTED, and adds a context HValue and LOperand to many hydrogen and lithium instructions.
Context is still used from the stack from in CallKnownFunction (this seems safe), and in CallRuntimeFromDeferred in lithium-codegen-ia32.cc, which needs to be fixed.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7132002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8529
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 4 Jul 2011 13:29:56 +0000 (13:29 +0000)]
Fix bug 1529: check for NULL handle in v8::TryCatch::StackTrace.
Internal HandleScope::CloseAndEscape crashes on NULL handles.
R=kmillikin@chromium.org
BUG=v8:1529
TEST=mjsunit/regress/regress-1529
Review URL: http://codereview.chromium.org/
7309004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8527
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 4 Jul 2011 13:20:39 +0000 (13:20 +0000)]
Prepare push to trunk. Now working on 3.4.10.
Review URL: http://codereview.chromium.org/
7307003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8526
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 4 Jul 2011 11:58:20 +0000 (11:58 +0000)]
Fix Windows 64-bit compilation error.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7307002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8525
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 4 Jul 2011 11:34:29 +0000 (11:34 +0000)]
Speed up V8 random number generator, reverting part of 8490.
Return to previous random number generator, but mix more bits into
output to hide hidden state better. Keep the multithreading fix that
moves the PNG into isolate.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7250005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8524
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 4 Jul 2011 09:34:47 +0000 (09:34 +0000)]
Fix a bug in with and catch context allocation.
We were only looking one level up the scope chain to decide which
closure to use in the fresh context. Instead, we should look to the
first non-catch scope.
R=vegorov@chromium.org
BUG=1528
TEST=regress-1528
Review URL: http://codereview.chromium.org/
7309002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8523
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 4 Jul 2011 09:05:57 +0000 (09:05 +0000)]
MIPS: port Introduce scopes to keep track of catch blocks at compile time.
Port r8496 (
b7d5ecf0).
Original commit message:
Introduce scopes to keep track of catch blocks at compile time.
The catch variable is bound in the catch scope. For simplicity in this
initial implementation, it is always allocated even if unused and always
allocated to a catch context even if it doesn't escape. The presence of
catch is no longer treated as a with.
In this change, care must be taken to distinguish between the scope where a
var declaration is hoisted to and the scope where the initialization occurs.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7212020
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8522
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 4 Jul 2011 09:01:52 +0000 (09:01 +0000)]
MIPS: port Do not pass the global object as the receiver to strict-mode ...
Do not pass the global object as the receiver to strict-mode and
builtin replace and sort functions.
Port r8488 (
6f347b6)
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7278024
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8521
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 4 Jul 2011 08:57:43 +0000 (08:57 +0000)]
Correctly handle the constant pool in constant pool splitting test
The constant pool was not taken into account in the test test-compiler/SplitConstantsInFullCompiler which caused random failures.
This also reverts the test code added in r8469 and r8471.
R=ricow@chromium.org
BUG=none
TEST=test-compiler/SplitConstantsInFullCompiler
Review URL: http://codereview.chromium.org//
7308001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8520
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 1 Jul 2011 15:44:21 +0000 (15:44 +0000)]
Revert r8516.
Revision 8516 contained a temporary hack that doesn't work on Windows.
TBR: ricow
Review URL: http://codereview.chromium.org/
7298008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8519
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 1 Jul 2011 14:05:46 +0000 (14:05 +0000)]
Fix an issue with optimization of functions inside catch.
When optimizing a function defined inside a catch, we did not count
the catch context as part of the context chain.
R=vegorov@chromium.org
BUG=1521
TEST=regress-1521
Review URL: http://codereview.chromium.org/
7285032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8518
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 1 Jul 2011 13:46:52 +0000 (13:46 +0000)]
Add duplicate parameter detection to preparser.
Add tests for duplicate properties of object initialisers to preparser.
TEST=preparser
Review URL: http://codereview.chromium.org/
7168016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8517
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 1 Jul 2011 13:18:42 +0000 (13:18 +0000)]
Do a backing store sparseness check on fast element delete.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/
7298004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8516
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 1 Jul 2011 12:47:18 +0000 (12:47 +0000)]
Remove unmarked entries from per context map caches.
Made "map_cache" a weak field of global context and added a pass over
all caches late in the marking phase.
R=vegorov@chromium.org
BUG=v8:1516
TEST=cctest/test-api/Regress1516
Review URL: http://codereview.chromium.org/
7285031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8515
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 1 Jul 2011 11:47:55 +0000 (11:47 +0000)]
exposing a few boolean queries from objects.h
TEST=start with ./d8 --allow-natives-syntax and try %ObjectHasFastElements({})
Review URL: http://codereview.chromium.org/
7289010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8514
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 1 Jul 2011 11:41:45 +0000 (11:41 +0000)]
Make date parser handle all ES5 Date Time Strings correctly.
This means that ES5 Date Time Strings will default to UTC if timezone is absent.
Handle as many legacy strings as possible the same way as before
BUG=v8:1498
TEST=mjsunit/date
Review URL: http://codereview.chromium.org/
7291022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8513
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 1 Jul 2011 11:12:27 +0000 (11:12 +0000)]
Fix flakiness of optimization assertion on slow ARM builders
(if the test ran too slow, optimization kicked in earlier than expected by the test)
TEST=mjsunit/assert-opt-and-deopt.js no longer flaky
Review URL: http://codereview.chromium.org/
7298001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8511
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 1 Jul 2011 11:05:04 +0000 (11:05 +0000)]
Sync grokdump.py INSTANCE_TYPES with V8.
R=vitalyr@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7278017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8510
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 1 Jul 2011 11:04:36 +0000 (11:04 +0000)]
Add missing HandleScope
Review URL: http://codereview.chromium.org/
7210056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8509
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Fri, 1 Jul 2011 10:59:38 +0000 (10:59 +0000)]
An attempt to resolve the win32 build error introduced in r8506
Review URL: http://codereview.chromium.org/
7278018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8508
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 1 Jul 2011 09:35:16 +0000 (09:35 +0000)]
Remove "modules" and "tags" of the logging CPU profiler.
Modules now makes a little sense, as there is only one module.
Tags was a simplistic attempt of supporting nested profiles.
R=sgjesse@chromium.org
BUG=859
Review URL: http://codereview.chromium.org/
7276046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8507
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Fri, 1 Jul 2011 09:29:38 +0000 (09:29 +0000)]
Special case handling of one char split on an ASCII string.
Review URL: http://codereview.chromium.org/
7285030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8506
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 1 Jul 2011 09:02:25 +0000 (09:02 +0000)]
When compiling C++, CXXFLAGS *and* CCFLAGS are used, so there is no need to pass
the latter ones twice.
Review URL: http://codereview.chromium.org/
7292030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8505
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 1 Jul 2011 07:58:58 +0000 (07:58 +0000)]
Cleanup polymorphic IC code to make use of ElementsKind information in maps.
Review URL: http://codereview.chromium.org/
7283044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8504
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 1 Jul 2011 07:50:46 +0000 (07:50 +0000)]
Simplify UnaryOpStub a little bit.
Only a single constructor is really needed. Make UnaryOp_Patch's arguments
simpler, avoiding encoding/decoding things in a cryptic way.
Review URL: http://codereview.chromium.org/
7248063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8503
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 1 Jul 2011 05:50:14 +0000 (05:50 +0000)]
Fixes the build for the shell on illumos and Solaris. -D__C99FEATURES__ was added to mirror how the build is done on the normal platform. The changes in the platform code are a follow up to a prior review and has the Solaris implementation be more similar to the Linux version as opposed to the FreeBSD.
Contributed by Robert Mustacchi <rm@fingolfin.org>
TEST=Note the test suite uncovered a bug in libm where pow(3M) was not doing the right thing on edge cases. The only test failures are related to this bug.
Review URL: http://codereview.chromium.org/
7282034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8502
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 30 Jun 2011 18:14:48 +0000 (18:14 +0000)]
Relax register constraints for instructions that support memory operands on IA32.
Review URL: http://codereview.chromium.org/
7290006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8501
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 30 Jun 2011 15:57:56 +0000 (15:57 +0000)]
Change return type of FrameDescription::GetFrameSize to avoid unneeded type casts.
Review URL: http://codereview.chromium.org/
7282033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8500
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jun 2011 15:49:14 +0000 (15:49 +0000)]
Remove bogus assertion.
R=fschneider@chromium.org
Review URL: http://codereview.chromium.org/
7291001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8499
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 30 Jun 2011 15:05:24 +0000 (15:05 +0000)]
Fix broken ARM debug build.
TBR=
Review URL: http://codereview.chromium.org/
7284035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8498
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Thu, 30 Jun 2011 14:56:06 +0000 (14:56 +0000)]
Fix problem with arguments object ICs not checking for dictionary mode elements.
R=kmillikin@chromium.org
BUG=1514
TEST=mjsunit/regress/regress-1513.js
Review URL: http://codereview.chromium.org/
7282029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8497
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jun 2011 14:37:55 +0000 (14:37 +0000)]
Introduce scopes to keep track of catch blocks at compile time.
The catch variable is bound in the catch scope. For simplicity in this
initial implementation, it is always allocated even if unused and always
allocated to a catch context even if it doesn't escape. The presence of
catch is no longer treated as a with.
In this change, care must be taken to distinguish between the scope where a
var declaration is hoisted to and the scope where the initialization occurs.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7280012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8496
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 30 Jun 2011 14:19:52 +0000 (14:19 +0000)]
Refactor handling of test expressions in the graph builder.
Instead of generating two instructions and combining them
at lithium translation using the EmitAtUses predicate, we
generate the correct branch instruction right from the start.
Review URL: http://codereview.chromium.org/
7237024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8495
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 30 Jun 2011 14:19:33 +0000 (14:19 +0000)]
Heap profiler: annotate fixed arrays by their purpose.
This helps understanding what is a particular array for by
just looking at its name.
R=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/
7248058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8494
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 30 Jun 2011 14:02:18 +0000 (14:02 +0000)]
Unbreak compilation on MIPS after EmitCallIC removal.
Note: It has only been verified that compilation is OK, nothing more... ;-)
Review URL: http://codereview.chromium.org/
7273097
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8493
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 30 Jun 2011 13:36:52 +0000 (13:36 +0000)]
Exclude %_IsNativeOrStrictMode from natives fuzzer.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/
7284032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8492
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 30 Jun 2011 13:08:13 +0000 (13:08 +0000)]
Fix compilation on 64-bit Windows build.
Review URL: http://codereview.chromium.org/
7283043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8491
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 30 Jun 2011 13:07:43 +0000 (13:07 +0000)]
Improve pseudorandom number generation and move the PNG state to Isolate.
Review URL: http://codereview.chromium.org/
7248060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8490
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 30 Jun 2011 13:05:03 +0000 (13:05 +0000)]
Nuke EmitCallIC, it is a plain call now.
Note that the MIPS part will need some similar changes, too.
Review URL: http://codereview.chromium.org/
7283042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8489
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 30 Jun 2011 12:29:19 +0000 (12:29 +0000)]
Do not pass the global object as the receiver to strict-mode and
builtin replace and sort functions.
R=ricow@chromium.org
BUG=v8:1360
TEST=mjsunit/regress/regress-1360.js
Review URL: http://codereview.chromium.org/
7283006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8488
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 30 Jun 2011 12:19:47 +0000 (12:19 +0000)]
Fix presubmit failure in gdb-jit.cc.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/
7289013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8487
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jun 2011 12:07:33 +0000 (12:07 +0000)]
Remove failing test while working on a fix.
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/
7283040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8486
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 30 Jun 2011 11:53:54 +0000 (11:53 +0000)]
Fix SConstruct to pass correct defines to samples/preparser when building with library=shared.
Fix shell sample build with library=library.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/
7283039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8485
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 30 Jun 2011 11:53:15 +0000 (11:53 +0000)]
Fix ARM regression introduced with polymorphic array support.
BUG=none
TEST=Kraken on ARM
Review URL: http://codereview.chromium.org/
7218068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8484
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 30 Jun 2011 11:52:00 +0000 (11:52 +0000)]
Extend gdb-jit support (OSX/locals+parameters/prettyprint)
Generate Mach-O in-memory objects for OSX. Dump locals and parameters
for non-optimized frames.
Unfortunately, it seems like more-recent-GDB on OSX there is a little
temperamental (eg, the version from macports will be missing symbols
from gdb-integration_g when the version included in xcode will not--
and this is with --gdbjit off).
Includes some Python scripts to make dealing with V8 values in gdb more
pleasant.
Patch by Luke Zarko.
Review URL: http://codereview.chromium.org/
6995161
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8483
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 30 Jun 2011 11:26:15 +0000 (11:26 +0000)]
Cleaned up calling-related methods in the ARM assembler.
Generalized Call macro instruction to handle AST IDs, too, making things more
similar to the Intel assemblers. Removed unused methods. Minor signature
cleanup. Simplified assertions.
Review URL: http://codereview.chromium.org/
7284029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8482
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jun 2011 11:11:19 +0000 (11:11 +0000)]
Fix a bug in Object.defineProperty.
There was a bug in Object.defineProperty when used to add an indexed
property to an arguments object. When converting the elements backing
store to dictionary mode, the parameter map in front of the backing
store does not change.
R=ager@chromium.org,karlklose@chromium.org
Review URL: http://codereview.chromium.org/
7289011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8481
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 30 Jun 2011 09:25:29 +0000 (09:25 +0000)]
MIPS: stub out Support debugger inspection of locals in optimized frames
Added Deoptimizer::FillInputFrame as UNIMPLEMENTED method.
Ported r8464 (
34f38d1)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7284026
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8480
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 30 Jun 2011 08:40:31 +0000 (08:40 +0000)]
Add support for dictionary elements to polymorphic crankshaft code.
Review URL: http://codereview.chromium.org/
7285001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8479
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jun 2011 08:34:10 +0000 (08:34 +0000)]
MIPS: port Explicitly pass the closure when allocating a catch or with context.
Ported r8453 (
59dd697)
Original commit message:
Before: allocation of a catch or with context fetched the closure to store
in the context from the previous context in the context chain. Now: the
closure is passed explicitly.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7289008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8478
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 30 Jun 2011 08:32:59 +0000 (08:32 +0000)]
MIPS: port Remove the fcontext field from all contexts.
Ported 8452 (
8a2a360)
Original commit message:
Before: every context cached the nearest enclosing function context. This
assumed that for nested contexts (i.e., with and catch contexts) the
enclosing function had a materialized link in the context chain.
Now: when necessary, we loop up the context chain to find such a context.
This enables catch contexts without forcing the enclosing function to
allocate its own context.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7284025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8477
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 30 Jun 2011 07:24:49 +0000 (07:24 +0000)]
Fix platform-solaris after isolate changes.
Patch from http://code.google.com/p/v8/issues/detail?id=1509.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7273092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8476
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 30 Jun 2011 06:58:13 +0000 (06:58 +0000)]
Remove --strict developer flag from V8.
It makes V8 not have JavaScript semantics by throwing exception all
the time. Even our own natives JavaScript code cannot run using that.
R=ricow@chromium.org
BUG=v8:1511
Review URL: http://codereview.chromium.org/
7248056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8475
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 30 Jun 2011 06:10:12 +0000 (06:10 +0000)]
Update test expectations for sputnik to match new revision.
We should coordinate landing this with an update of the tests on the
buildbots.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/
7280006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8474
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 29 Jun 2011 15:34:00 +0000 (15:34 +0000)]
ll_prof: Terminate mmap file names on the first NUL char.
R=fschneider@chromium.org
Review URL: http://codereview.chromium.org/
7282011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8473
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 29 Jun 2011 14:56:08 +0000 (14:56 +0000)]
Suspend runtime profiler as soon as we exit JS.
Lots of web pages have really frequently firing timers that keep the
profiler thread spinning if we require a period of JS inactivity
before suspending the profiler. While it's possible to throttle it by
increasing the sleep delay and adjusting the duration of the required
inactive period, it seemed much simpler to just stop it immediately on
exiting JS.
Stopping the profiler this way effectively turned off two optimization
heuristics: 1) eager optimization (it's reset on waking up the
profiler and now the profiler wakes up much more frequently) and 2)
optimization throttling based on JS to non-JS state ratio (the ratio
is now 100%). I removed these two heuristics and found no performance
regressions so far.
R=ager@chromium.org
BUG=crbug.com/77625
TEST=none
Review URL: http://codereview.chromium.org/
7274024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8472
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 29 Jun 2011 14:28:41 +0000 (14:28 +0000)]
Fix build on x64
Review URL: http://codereview.chromium.org/
7284011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8471
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 29 Jun 2011 13:43:24 +0000 (13:43 +0000)]
Simplify EmitCallIC.
Move the identification of the corresponding StatsCounter where it belongs,
namely into the Code class. Use the null pattern to signal "no inlined Smi
code". Removed a few unused counters.
Review URL: http://codereview.chromium.org/
7273066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8470
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 29 Jun 2011 13:40:23 +0000 (13:40 +0000)]
Temporarily add more test output to help locate test failure
R=ricow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
7250002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8469
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 29 Jun 2011 13:32:27 +0000 (13:32 +0000)]
Using KeyedStoreIC_Generic_Strict must prevent polymorphic case.
TEST=Fewer deopts in existing tests.
Review URL: http://codereview.chromium.org/
7282007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8467
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 29 Jun 2011 13:17:02 +0000 (13:17 +0000)]
Fix compilation of all combinations of disassembler=on/off and objectprint=on/off
R=jkummerow@chromium.org
BUG=v8:1473
TEST=none
Review URL: http://codereview.chromium.org//
7269002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8465
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 29 Jun 2011 13:02:00 +0000 (13:02 +0000)]
Support debugger inspection of locals in optimized frames
Optimized frames are now handled by the debugger. When discovering optimized frames during stack inspection in the debugger they are "deoptimized" using the normal deoptimization code and the deoptimizer output information is used to provide frame information to the debugger.
Before this change the debugger reported each optimized frame as one frame no matter the number of inlined functuions that might have been called inside of it. Also all locals where reported as undefined. Locals can still be reposted as undefined when their value is not "known" by the optimized frame.
As the structures used to calculate the output frames when deoptimizing are not GC safe the information for the debugger is copied to another structure (DeoptimizedFrameInfo) which is registered with the global deoptimizer data and processed during GC.
R=fschneider@chromium.org
BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized*
Review URL: http://codereview.chromium.org//
7230045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8464
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 29 Jun 2011 11:21:23 +0000 (11:21 +0000)]
Prepare push to trunk. Now working on 3.4.9.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/
7282005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8462
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 29 Jun 2011 11:12:12 +0000 (11:12 +0000)]
Simplify the way we call UnaryOpStubs, saving one unused no-op after the call itself.
Review URL: http://codereview.chromium.org/
7280005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8461
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Wed, 29 Jun 2011 10:54:20 +0000 (10:54 +0000)]
Improve JSON.parse to use less memory when using escaped and non-ascii
characters.
Review URL: http://codereview.chromium.org/
7241023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8460
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 29 Jun 2011 10:51:06 +0000 (10:51 +0000)]
ARM: Improve register allocation and constraints (try 2).
Gives ~20% boost for Crypto benchmark on A9.
BUG=none
TEST=added to mjsunit/div-mod.js
Review URL: http://codereview.chromium.org//
7276034
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8459
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 29 Jun 2011 10:27:14 +0000 (10:27 +0000)]
Error checking for length parameter of external array constructors in shell
BUG=v8:1501
Review URL: http://codereview.chromium.org/
7268002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8458
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 29 Jun 2011 08:45:22 +0000 (08:45 +0000)]
reverting revision r8454
Review URL: http://codereview.chromium.org/
7218042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8457
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 29 Jun 2011 08:35:10 +0000 (08:35 +0000)]
Improvement to SmiLexicalCompare. Landing codereview.chromium.org/
7261008 for Stephen Adams
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8456
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 29 Jun 2011 08:32:12 +0000 (08:32 +0000)]
Fix lint failure.
TBR=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7284004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8455
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 29 Jun 2011 08:22:36 +0000 (08:22 +0000)]
added the --test option for d8 into tools/test.py
TEST= tools/test.py --shell d8 -v
Review URL: http://codereview.chromium.org/
7272028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8454
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 29 Jun 2011 07:41:42 +0000 (07:41 +0000)]
Explicitly pass the closure when allocating a catch or with context.
Before: allocation of a catch or with context fetched the closure to store
in the context from the previous context in the context chain. Now: the
closure is passed explicitly.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7275022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8453
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 28 Jun 2011 15:22:08 +0000 (15:22 +0000)]
Remove the fcontext field from all contexts.
Before: every context cached the nearest enclosing function context. This
assumed that for nested contexts (i.e., with and catch contexts) the
enclosing function had a materialized link in the context chain.
Now: when necessary, we loop up the context chain to find such a context.
This enables catch contexts without forcing the enclosing function to
allocate its own context.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7230047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8452
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 28 Jun 2011 14:21:55 +0000 (14:21 +0000)]
Slightly improved register assignment for %_IsObject on IA32 and ARM.
The new approach uses one temp register instead of two on IA32. The ARM
instructions are modified so the input can be UseAtStart again.
Review URL: http://codereview.chromium.org/
7274025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8451
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 28 Jun 2011 12:51:21 +0000 (12:51 +0000)]
Better placement of argument pushing for a few hydrogen call instructions.
Where it's simple to do so (keyed calls, calls to unknown global variables,
calls to local variables and non-property/non-variable expressions), end the
live range of argument subexpressions immediately after the last use of the
expression rather than at the call.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7274020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8445
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Tue, 28 Jun 2011 12:31:42 +0000 (12:31 +0000)]
Fix "illegal access" when calling parseInt with a radix that is not a smi.
BUG=v8:1246
TEST=regress-1246.js
Review URL: http://codereview.chromium.org/
7206019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8444
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 28 Jun 2011 09:09:07 +0000 (09:09 +0000)]
Fix bug in register assignment of IsObjectAndBranch.
Make sure that input and temp registers don't overlap.
Review URL: http://codereview.chromium.org/
7273026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8443
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 28 Jun 2011 08:54:09 +0000 (08:54 +0000)]
Cleanup to HEnvironment::CopyForInlining
* src/hydrogen.cc (HEnvironment::CopyForInlining): As the code for both
the ::HYDROGEN and ::LITHIUM compilation phases is the same, just use
one code path and remove the arg.
* src/hydrogen.h (HEnvironment): Remove now-unused CompilationPhase
enum type and arg to CopyForInlining.
* src/arm/lithium-arm.cc (LChunkBuilder::DoEnterInlined):
* src/ia32/lithium-ia32.cc (LChunkBuilder::DoEnterInlined):
* src/x64/lithium-x64.cc (LChunkBuilder::DoEnterInlined): Adapt
callers.
* AUTHORS: Add Igalia.
BUG=
TEST=I ran tools/test.py.
Review URL: http://codereview.chromium.org/
7272002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8442
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 28 Jun 2011 08:49:01 +0000 (08:49 +0000)]
Fix a bug in %_GetCachedArrayIndex.
This inline runtime function had the wrong super class.
It did not cause any problems since it is only used in
our natives and never in a test context.
Review URL: http://codereview.chromium.org/
7253004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8441
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 28 Jun 2011 07:54:01 +0000 (07:54 +0000)]
MIPS: port Fix receiver check in arguments ICs.
Ported r8429 (
60a2787)
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7276027
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8434
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 28 Jun 2011 07:31:42 +0000 (07:31 +0000)]
MIPS: Long branch implementation and trampoline improvement.
Improve the branch and branch-trampoline mechanism to automatically
use long-jumps when function size grows large. Reduce size of emitted
trampoline pools.
Now passes mozilla regress-80981.js.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7239020
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8433
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 28 Jun 2011 07:07:09 +0000 (07:07 +0000)]
Ensure 16-byte stack alignment on Solaris.
GCC generates instructions such as movdqa that requires 16-byte alignment.
R=ricow@chromium.org
BUG=v8:1505
TEST=
Review URL: http://codereview.chromium.org/
7277031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8432
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 27 Jun 2011 13:16:07 +0000 (13:16 +0000)]
Prepare push to trunk. Now working on version 3.4.8.
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/
7235025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8430
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 27 Jun 2011 13:02:51 +0000 (13:02 +0000)]
Fix receiver check in arguments ICs.
The receiver needs to be checked in the same way as all other KeyedLoadICs to take non-JSObject and objects that require access checks or has interceptors into account.
R=sgjesse@chromium.org
BUG=87478
TEST=mjsunit/regress/regress-crbug-87478.js
Review URL: http://codereview.chromium.org/
7259015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8429
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 27 Jun 2011 12:12:27 +0000 (12:12 +0000)]
Change the handling of stack check on backward branches
The hydrogen stack check instruction is now added to each loop and the stack check handling on the back edge has been removed.
This change causes regression on small tight loops as the stack check is now at the top of the loop instead of at the bottom, and that requires one additional unconditional jump per loop iteration. However the reason for this change is to avoid worse regressions for upcoming changes to correctly support debugger break in optimized code.
R=fschneider@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
7216009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8428
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 27 Jun 2011 10:45:54 +0000 (10:45 +0000)]
MIPS: port Better codegen for '<expression> === void <literal>'.
Ported r8420 (
fd2ddbb)
Original commit message:
Detect the pattern in both, the full compiler and crankshaft and generate direct pointer
comparisons. Along the way I cleaned up 'typeof <expression> == <string literal>' comparisons
as well by lifting platform independent code and checking the symmetric case.
BUG=v8:1440
TEST=cctest/test-api.cc
Review URL: http://codereview.chromium.org//
7262026
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8427
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 27 Jun 2011 09:02:34 +0000 (09:02 +0000)]
Cleanup of return types and names in factory.
Review URL: http://codereview.chromium.org/
7240025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8426
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 27 Jun 2011 08:56:25 +0000 (08:56 +0000)]
MIPS: update missing write barrier for arguments store ICs, per comments.
Per review comments in http://codereview.chromium.org/
7238020 after
issue was closed, we had used an un-necessary Add, which is removed here.
Thanks for the suggestion.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7259010
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8425
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 24 Jun 2011 20:04:32 +0000 (20:04 +0000)]
removed some unnecessary stuff from d8's initialization
and got rid of the utility context unless interactive shell is used
Review URL: http://codereview.chromium.org/
7219003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8424
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Fri, 24 Jun 2011 16:58:28 +0000 (16:58 +0000)]
Change timeType and dateType in i18n date format API into timeStyle and dateStyle to match the proposal.
I've kept old keys too, until ChromeOS user switches to time/dateStyle.
Fixed regex for matching styles in date and number format.
TEST=i18n.kaziprst.org/datetimeformat.html should show proper results for both timeType and timeStyle.
Review URL: http://codereview.chromium.org/
7244008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8423
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Fri, 24 Jun 2011 16:54:47 +0000 (16:54 +0000)]
Updated test expectations of future reserved keyword tests.
Review URL: http://codereview.chromium.org/
7237027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8422
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Fri, 24 Jun 2011 14:59:51 +0000 (14:59 +0000)]
Proper handling of future reserved words in strict and normal mode.
BUG=86442
TEST=mjsunit/keywords-and-reserved_words.js
Review URL: http://codereview.chromium.org/
7207007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8421
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Fri, 24 Jun 2011 14:30:10 +0000 (14:30 +0000)]
Better codegen for '<expression> === void <literal>'.
Detect the pattern in both, the full compiler and crankshaft and generate direct pointer
comparisons. Along the way I cleaned up 'typeof <expression> == <string literal>' comparisons
as well by lifting platform independent code and checking the symmetric case.
BUG=v8:1440
TEST=cctest/test-api.cc
Review URL: http://codereview.chromium.org/
7216008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8420
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Fri, 24 Jun 2011 13:44:27 +0000 (13:44 +0000)]
Check for empty substring.
Review URL: http://codereview.chromium.org/
7237023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8419
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 24 Jun 2011 13:23:18 +0000 (13:23 +0000)]
MIPS: Minor bug fixes to macro-asm and simulator.
3 small fixes:
- Fix erroneous use of reg t6 in macro-assembler.
- Minor optimization to overflow-check macros.
- Fix un-init var use (typo) in simulator FPCall handling.
None of these affected test cases.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7236025
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8418
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 24 Jun 2011 12:04:14 +0000 (12:04 +0000)]
Fix three GC unsafe places found by gcmole's dead_vars analysis.
Review URL: http://codereview.chromium.org/
7247013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8411
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00