platform/upstream/v8.git
13 years agoFix presubmit
ricow@chromium.org [Wed, 13 Jul 2011 13:29:10 +0000 (13:29 +0000)]
Fix presubmit
Review URL: http://codereview.chromium.org/7354021

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

13 years agoFix bug in prototype transitions cache clearing introduced by r8165.
vegorov@chromium.org [Wed, 13 Jul 2011 13:16:00 +0000 (13:16 +0000)]
Fix bug in prototype transitions cache clearing introduced by r8165.

Invalid loop nesting causes full cleanup of the prototype transitions cache on every GC.

R=ager@chromium.org

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

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

13 years agoSupport scope information and evaluation in optimized frames
sgjesse@chromium.org [Wed, 13 Jul 2011 12:49:27 +0000 (12:49 +0000)]
Support scope information and evaluation in optimized frames

R=svenpanne@chromium.org

BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-evaluate-locals-optimized-double.js

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

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

13 years agoPrepare push to trunk. We are now working on version 3.4.13.
whesse@chromium.org [Wed, 13 Jul 2011 12:26:39 +0000 (12:26 +0000)]
Prepare push to trunk.  We are now working on version 3.4.13.
Review URL: http://codereview.chromium.org/7356011

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

13 years agoWebKit Win fix after r8629: use ...A Win API functions explicitly.
mikhail.naganov@gmail.com [Wed, 13 Jul 2011 11:58:46 +0000 (11:58 +0000)]
WebKit Win fix after r8629: use ...A Win API functions explicitly.

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

13 years agoImplement Object.getOwnPropertyDescriptor for proxies.
rossberg@chromium.org [Wed, 13 Jul 2011 11:57:15 +0000 (11:57 +0000)]
Implement Object.getOwnPropertyDescriptor for proxies.
Fix bug in compilation of calls with proxy receivers.

R=kmillikin@chromium.org,ager@chromium.org
BUG=
TEST=

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

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

13 years agoRemove support for logging into a memory buffer.
mikhail.naganov@gmail.com [Wed, 13 Jul 2011 11:31:22 +0000 (11:31 +0000)]
Remove support for logging into a memory buffer.

The only usage of it was in logging tests, I've switched them for
using a file.

I've left out support for "--logfile=*" for now, as Chromium uses it.
Will be removed after the next V8 roll.

R=sgjesse@chromium.org
BUG=859
TEST=mjsunit/log-*

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

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

13 years agoRevert r8619 because of Webkit failures.
whesse@chromium.org [Wed, 13 Jul 2011 11:13:40 +0000 (11:13 +0000)]
Revert r8619 because of Webkit failures.
Review URL: http://codereview.chromium.org/7351014

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

13 years agoDisentangle printing of stub names and memory allocation.
svenpanne@chromium.org [Wed, 13 Jul 2011 11:08:25 +0000 (11:08 +0000)]
Disentangle printing of stub names and memory allocation.

Using a C++-style method PrintName (a.k.a. << ;-), things get a lot easier when
two unrelated concerns are separated. Stubs don't need a name cache anymore,
simpler code while generating the stub name, memory allocation is centralized,
etc.
Review URL: http://codereview.chromium.org/7342042

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

13 years agoImplement Object.keys for proxies.
rossberg@chromium.org [Wed, 13 Jul 2011 11:01:17 +0000 (11:01 +0000)]
Implement Object.keys for proxies.

R=kmillikin@chromium.org,ager@chromium.org
BUG=
TEST=

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

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

13 years agoClean up conditionals in tests after r8622.
mikhail.naganov@gmail.com [Wed, 13 Jul 2011 10:08:52 +0000 (10:08 +0000)]
Clean up conditionals in tests after r8622.

R=sgjesse@chromium.org
BUG=
TEST=

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

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

13 years agoMake fast tls the default
sgjesse@chromium.org [Wed, 13 Jul 2011 10:00:33 +0000 (10:00 +0000)]
Make fast tls the default

Now V8_NO_FAST_TLS needs to be defined to switch off fast tls access on platform which supports it.

R=ager@chromium.org

BUG=none
TEST=none

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

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

13 years agoAvoid patching code after the call to binary operation stub in optimized code
sgjesse@chromium.org [Wed, 13 Jul 2011 09:31:17 +0000 (09:31 +0000)]
Avoid patching code after the call to binary operation stub in optimized code

This patch just adds a nop after the call to the binary operation stub in optimized code to avoid the patching for the inlined smi case used in the full code generator to kick in if the next instruction generated by the lithium code generator should accidentially enable that. For calls generated by CallCodeGeneric this was already handled on Intel platforms, but missing on ARM.

On IA-32 I did also try to check for whether the code containing the call was optimized (patch below), but that caused regressions on some benchmarks.

diff --git src/ia32/ic-ia32.cc src/ia32/ic-ia32.cc
index 5f143b1..f70e208 100644
--- src/ia32/ic-ia32.cc
+++ src/ia32/ic-ia32.cc
@@ -1603,12 +1603,18 @@ void CompareIC::UpdateCaches(Handle<Object> x, Handle<Object> y) {

   // Activate inlined smi code.
   if (previous_state == UNINITIALIZED) {
-    PatchInlinedSmiCode(address());
+    PatchInlinedSmiCode(address(), isolate());
   }
 }

-void PatchInlinedSmiCode(Address address) {
+void PatchInlinedSmiCode(Address address, Isolate* isolate) {
+  // Never patch in optimized code.
+  Code* code = isolate->pc_to_code_cache()->GetCacheEntry(address)->code;
+  if (code->kind() == Code::OPTIMIZED_FUNCTION) {
+    return;
+  }
+
   // The address of the instruction following the call.
   Address test_instruction_address =
       address + Assembler::kCallTargetAddressOffset;
diff --git src/ic.cc src/ic.cc
index f70f75a..62e79da 100644
--- src/ic.cc
+++ src/ic.cc
@@ -2384,7 +2384,7 @@ RUNTIME_FUNCTION(MaybeObject*, BinaryOp_Patch) {

     // Activate inlined smi code.
     if (previous_type == BinaryOpIC::UNINITIALIZED) {
-      PatchInlinedSmiCode(ic.address());
+      PatchInlinedSmiCode(ic.address(), isolate);
     }
   }

diff --git src/ic.h src/ic.h
index 11c2e3a..9ef4b20 100644
--- src/ic.h
+++ src/ic.h
@@ -721,7 +721,7 @@ class CompareIC: public IC {
 };

 // Helper for BinaryOpIC and CompareIC.
-void PatchInlinedSmiCode(Address address);
+void PatchInlinedSmiCode(Address address, Isolate* isolate);

 } }  // namespace v8::internal

R=danno@chromium.org

BUG=none
TEST=none

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

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

13 years agoRemove the ability to compile without logging and profiling
sgjesse@chromium.org [Wed, 13 Jul 2011 09:09:04 +0000 (09:09 +0000)]
Remove the ability to compile without logging and profiling

The preprocessor defines ENABLE_LOGGING_AND_PROFILING and ENABLE_VMSTATE_TRACKING has been removed as these where required to be turned on for Crankshaft to work. To re-enable reducing the binary size by leaving out heap and CPU profiler a new set of defines needs to be created.

R=ager@chromium.org

BUG=v8:1271
TEST=all

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

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

13 years agoAdded dictionary that can use objects as keys.
yangguo@chromium.org [Tue, 12 Jul 2011 15:13:57 +0000 (15:13 +0000)]
Added dictionary that can use objects as keys.

R=vegorov@chromium.org
TEST=cctest/test-dictionary

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

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

13 years agoFixed a long-standing TODO: Removed a few *-incl.h #includes from isolate.h.
svenpanne@chromium.org [Tue, 12 Jul 2011 08:03:19 +0000 (08:03 +0000)]
Fixed a long-standing TODO: Removed a few *-incl.h #includes from isolate.h.

ZoneAllocationPolicy::New is not inlined anymore because this pulls in far too
much stuff and doesn't really make any measurable performance difference. And
no, the #includes are still not in alphabetical order... ;-)
Review URL: http://codereview.chromium.org/7346006

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

13 years agoRemove prematurely added dependencies from preparser.
lrn@chromium.org [Tue, 12 Jul 2011 07:50:25 +0000 (07:50 +0000)]
Remove prematurely added dependencies from preparser.

Also remove some dead code.

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

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

13 years agosecond attempt at correcting fopen (hangs when trying to read from a dir)
yangguo@chromium.org [Mon, 11 Jul 2011 15:30:24 +0000 (15:30 +0000)]
second attempt at correcting fopen (hangs when trying to read from a dir)

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

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

13 years agoAdd source position recording for variable loads
sgjesse@chromium.org [Mon, 11 Jul 2011 15:20:17 +0000 (15:20 +0000)]
Add source position recording for variable loads

This provides more precise source to generated code mapping as variable loads can be handled using IC calls.

R=kmillikin@chromium.org

BUG=v8:1527
TEST=test/message/regress/regress-1527

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

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

13 years agorollback
yangguo@chromium.org [Mon, 11 Jul 2011 14:08:27 +0000 (14:08 +0000)]
rollback

BUG=
TEST=

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

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

13 years agoFix a potential crash in const declaration.
kmillikin@chromium.org [Mon, 11 Jul 2011 14:07:12 +0000 (14:07 +0000)]
Fix a potential crash in const declaration.

Declaration of const lookup slots would trigger an assertion if there was a
setter somewhere in the prototype chain, and that setter was shadowed by a
non-readonly data property also in the prototype chain.

R=ager@chromium.org
BUG=
TEST=

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

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

13 years agoRemove heap protection support.
ager@chromium.org [Mon, 11 Jul 2011 14:03:21 +0000 (14:03 +0000)]
Remove heap protection support.

It does not currently work and when it did work we never got it fast
enough to be useful.

R=kmillikin@chromium.org

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

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

13 years agobug fix
yangguo@chromium.org [Mon, 11 Jul 2011 13:48:10 +0000 (13:48 +0000)]
bug fix
BUG=http://code.google.com/p/v8/issues/detail?id=1533

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

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

13 years agoLower the number of threads for some threading tests when testing on ARM to avoid...
sgjesse@chromium.org [Mon, 11 Jul 2011 12:17:10 +0000 (12:17 +0000)]
Lower the number of threads for some threading tests when testing on ARM to avoid timeouts

R=ricow@chromium.org

BUG=none
TEST=cctest/test-lockers/LockerUnlocker,cctest/test-lockers/LockTwiceAndUnlock,cctest/test-lockers/SeparateIsolatesLocksNonexclusive

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

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

13 years agoFix bug in Map::TraverseTransitionTree.
vegorov@chromium.org [Mon, 11 Jul 2011 12:06:35 +0000 (12:06 +0000)]
Fix bug in Map::TraverseTransitionTree.

If map has an empty DescriptorArray we have to set map_or_index_field to NULL otherwise we will
reset iteration state for a previously visited map in the transition tree which has a non-empty
DescriptorArray. This might result in visiting the same map several times.

R=whesse@chromium.org
BUG=v8:1526

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

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

13 years agobug fix since --prof did not work
yangguo@chromium.org [Mon, 11 Jul 2011 12:04:13 +0000 (12:04 +0000)]
bug fix since --prof did not work

BUG= --prof did not work
TEST=./d8 --prof <insert any test>

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

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

13 years agoRemove passing tests from test262 status file
ricow@chromium.org [Mon, 11 Jul 2011 12:00:28 +0000 (12:00 +0000)]
Remove passing tests from test262 status file
Review URL: http://codereview.chromium.org/7326038

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

13 years agoPrepare push to trunk. We are now working on version 3.4.12.
sgjesse@chromium.org [Mon, 11 Jul 2011 11:10:45 +0000 (11:10 +0000)]
Prepare push to trunk. We are now working on version 3.4.12.

R=ricow@chromium.org

BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7331037

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

13 years agoFix heap corruption and memory leakage in inspection of optimized frames.
sgjesse@chromium.org [Mon, 11 Jul 2011 09:35:18 +0000 (09:35 +0000)]
Fix heap corruption and memory leakage in inspection of optimized frames.

R=ricow@chromium.org

BUG=none
TEST=test/mjsunit/debug-evaluate-arguments.js

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

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

13 years agoDrastically reduce the transitive dependencies of jsregexp.h, making it (almost)
svenpanne@chromium.org [Mon, 11 Jul 2011 09:12:17 +0000 (09:12 +0000)]
Drastically reduce the transitive dependencies of jsregexp.h, making it (almost)
architecture-independent.

jsregexp.h is itself included transitively quite a lot, and by getting rid of 19
of its dependencies (which even included things like src/cpu.h, the various
assemblers, etc.), the recompilation behaviour is a bit less funny than it was.
Review URL: http://codereview.chromium.org/7331014

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

13 years agoported --isolate option to d8 and refactored to group together option parsing
yangguo@chromium.org [Mon, 11 Jul 2011 07:38:09 +0000 (07:38 +0000)]
ported --isolate option to d8 and refactored to group together option parsing

TEST=tools/test.py -j15 --shell d8 --isolates

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

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

13 years agoAllow JSObject::PreventExtensions to work for arguments objects.
kmillikin@chromium.org [Mon, 11 Jul 2011 06:48:19 +0000 (06:48 +0000)]
Allow JSObject::PreventExtensions to work for arguments objects.

R=karlklose@chromium.org

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

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

13 years agoMIPS: port Fix problem with arguments object ICs not checking for dictionary mode...
sgjesse@chromium.org [Mon, 11 Jul 2011 06:46:58 +0000 (06:46 +0000)]
MIPS: port Fix problem with arguments object ICs not checking for dictionary mode elements.

Ported r8497 (916120a)

Patch by Daniel Kalmar <kalmard@homejinni.com>

BUG=
TEST=

Review URL: http://codereview.chromium.org//7329013
Patch from Paul Lind <plind44@gmail.com>.

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

13 years agoMIPS: Cleaned up calling-related methods in the assembler.
sgjesse@chromium.org [Mon, 11 Jul 2011 06:45:27 +0000 (06:45 +0000)]
MIPS: Cleaned up calling-related methods in the assembler.

Patterned after r8482, Cleaned up calling-related methods in the ARM assembler.

On MIPS I completely refactored the Jump and Call methods.
All the Jump and Call macro helpers have been replaced with overloaded functions
(matching the ARM version) and using default parameter values where possible.
The previously mostly-unused CallSize function is utilized as well (same as on ARM).
The unused Jump(Operand, ...) and Call(Operand, ...) versions have been completely removed.
I also removed the Jump(BranchDelaySlot, ...) and Call(BranchDelaySlot,...) methods as
they were unused and declaring them would either result in a lot of unused code or the
previously experienced macro-hell. The only exception to this is for Ret() where the
branch delay slot is often used.

This fixes the failing debug tests for example cctest test-debug/DebugStepFor.

Ported r8482 (41cb9ed)

Patch by Daniel Kalmar <kalmard@homejinni.com>

BUG=
TEST=

Review URL: http://codereview.chromium.org//7328013
Patch from Paul Lind <plind44@gmail.com>.

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

13 years agoUpdated status file for test262 to latest revision.
ricow@chromium.org [Sat, 9 Jul 2011 07:29:32 +0000 (07:29 +0000)]
Updated status file for test262 to latest revision.

Landing for mstarzinger, orginal cl at:
http://codereview.chromium.org/7329016/

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

13 years agoAlign host and target architectures when building v8_shell.
mikhail.naganov@gmail.com [Fri, 8 Jul 2011 13:37:19 +0000 (13:37 +0000)]
Align host and target architectures when building v8_shell.

This is a fix after r8356. Otherwise, shell can't be built
on a 64-bit host.

R=ager@chromium.org

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

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

13 years agoFix polymorphic array test
danno@chromium.org [Fri, 8 Jul 2011 10:59:20 +0000 (10:59 +0000)]
Fix polymorphic array test

R=jkummerow@chromium.org
BUG=none
TEST=none

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

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

13 years agoUnify handling of element IC stubs.
danno@chromium.org [Fri, 8 Jul 2011 10:46:10 +0000 (10:46 +0000)]
Unify handling of element IC stubs.

In the process, add shared stubs for DictionaryValue lookups that are handled in the same way as fast elements and external array elements.

Includes code for MIPS, which compiles and run polymorph-arrays.js successfully.

R=jkummerow@chromium.org
BUG=none
TEST=test/mjsunit/polymorph-arrays.js

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

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

13 years agoRemoved useless implementations of GetName and Print for code stubs, the common
svenpanne@chromium.org [Fri, 8 Jul 2011 09:40:14 +0000 (09:40 +0000)]
Removed useless implementations of GetName and Print for code stubs, the common
super-class handles the most common case already.
Review URL: http://codereview.chromium.org/7332001

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

13 years agoGenerate shorter instruction forms for constant in ia32 gap resolver.
sgjesse@chromium.org [Fri, 8 Jul 2011 09:08:12 +0000 (09:08 +0000)]
Generate shorter instruction forms for constant in ia32 gap resolver.

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

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

13 years agoAdd inspection of whether frame is a construct frame to optimized frames
sgjesse@chromium.org [Fri, 8 Jul 2011 08:55:26 +0000 (08:55 +0000)]
Add inspection of whether frame is a construct frame to optimized frames

Also avoid that calling Debug::IsBreakAtReturn causes a full doptimization when there are no break points set. The full deoptimization is caused by Debug::IsBreakAtReturn calling Debug::EnsureDebugInfo which will assume that a break point is now set.

R=svenpanne@chromium.org

BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-
evaluate-locals-optimized-doubles.js

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

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

13 years agoFix compilation error.
kmillikin@chromium.org [Fri, 8 Jul 2011 08:03:39 +0000 (08:03 +0000)]
Fix compilation error.

Compiler cannot recognize the typename in template declaration.  Caught by
MSVC.

R=ricow@chromium.org

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

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

13 years agoFix a bug in for/in iteration of arguments objects.
kmillikin@chromium.org [Fri, 8 Jul 2011 07:31:48 +0000 (07:31 +0000)]
Fix a bug in for/in iteration of arguments objects.

We did not properly combine the property names from the parameter map
and the arguments backing store.  They could overwrite each other and
be unsorted.

Also fix an unrelated bug: deleting from a dictionary-mode arguments
backing store could corrupt the parameter map.

R=rossberg@chromium.org
BUG=1531
TEST=mjsunit/regress/regress-1531.js

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

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

13 years agoMIPS: port Fix ARM regression introduced with polymorphic array support.
sgjesse@chromium.org [Fri, 8 Jul 2011 06:59:54 +0000 (06:59 +0000)]
MIPS: port Fix ARM regression introduced with polymorphic array support.

Ported r8484 (9f824d7)

BUG=
TEST=

Review URL: http://codereview.chromium.org//7237046
Patch from Paul Lind <plind44@gmail.com>.

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

13 years agoMIPS: port Fix a typo in KeyedStoreIC, restore Kraken performance.
sgjesse@chromium.org [Fri, 8 Jul 2011 06:48:27 +0000 (06:48 +0000)]
MIPS: port Fix a typo in KeyedStoreIC, restore Kraken performance.

Ported r8539 (46103ea)

BUG=
TEST=

Review URL: http://codereview.chromium.org//7327016
Patch from Paul Lind <plind44@gmail.com>.

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

13 years agoMIPS: port Introduce code flushing of RegExp code.
sgjesse@chromium.org [Fri, 8 Jul 2011 06:47:09 +0000 (06:47 +0000)]
MIPS: port Introduce code flushing of RegExp code.

Ported r8532 (c9db503)

Original commit message:
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.

BUG=
TEST=

Review URL: http://codereview.chromium.org//7324018
Patch from Paul Lind <plind44@gmail.com>.

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

13 years agoTry to fix Windows compilation error.
sgjesse@chromium.org [Thu, 7 Jul 2011 19:27:48 +0000 (19:27 +0000)]
Try to fix Windows compilation error.

R=whesse@chromium.org

BUG=none
TEST=none

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

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

13 years agoAdd inspection of arguments for optimized frames
sgjesse@chromium.org [Thu, 7 Jul 2011 14:29:16 +0000 (14:29 +0000)]
Add inspection of arguments for optimized frames

R=svenpanne@chromium.org

BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-
evaluate-locals-optimized-doubles.js

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

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

13 years agoReduce the number of global constructor calls by changing a constant to a
svenpanne@chromium.org [Thu, 7 Jul 2011 13:57:58 +0000 (13:57 +0000)]
Reduce the number of global constructor calls by changing a constant to a
(constant) inline function.

This brings down the size of v8's .ctors section to 1/4, hopefully fixing the
recent issues with Chromes' CL 91522.
Review URL: http://codereview.chromium.org/7321005

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

13 years agoImplement Object.defineProperty for proxies.
rossberg@chromium.org [Thu, 7 Jul 2011 12:41:20 +0000 (12:41 +0000)]
Implement Object.defineProperty for proxies.

R=kmillikin@chromium.org
BUG=
TEST=

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

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

13 years agoDon't check symbol literals for being symbols.
vitalyr@chromium.org [Thu, 7 Jul 2011 12:01:49 +0000 (12:01 +0000)]
Don't check symbol literals for being symbols.

R=fschneider@chromium.org

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

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

13 years agoWhen resolving phies use ANY instead of NONE as a policy for phi operands.
vegorov@chromium.org [Thu, 7 Jul 2011 10:22:39 +0000 (10:22 +0000)]
When resolving phies use ANY instead of NONE as a policy for phi operands.

R=fschneider@chromium.org

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

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

13 years agoDon't emit a write barrier when storing boolean-typed values.
fschneider@chromium.org [Thu, 7 Jul 2011 10:14:55 +0000 (10:14 +0000)]
Don't emit a write barrier when storing boolean-typed values.
Review URL: http://codereview.chromium.org/7312022

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

13 years agoEnsure that regexps always have code object, even if GC happened while running multip...
ricow@chromium.org [Thu, 7 Jul 2011 10:04:56 +0000 (10:04 +0000)]
Ensure that regexps always have code object, even if GC happened while running multiple times in runtime.
Review URL: http://codereview.chromium.org/7316018

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

13 years agoGroup property assignments in top-level blocks.
vitalyr@chromium.org [Wed, 6 Jul 2011 17:21:32 +0000 (17:21 +0000)]
Group property assignments in top-level blocks.

This patch enables insertion of To{Slow,Fast}Properties around a group
of assigments to the same object even when they are put in a block
(e.g. try-catch, if, etc.). Catching exceptions and disabling parts of
code based on some config vars is rather common in top-level code.

R=vegorov@chromium.org

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

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

13 years agoAdd inspection of function for optimized frames
sgjesse@chromium.org [Wed, 6 Jul 2011 13:02:17 +0000 (13:02 +0000)]
Add inspection of function for optimized frames

R=svenpanne@chromium.org

BUG=none
TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-evaluate-locals-optimized-doubles.js

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

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

13 years agoCorrectly propagate toolchain setting in SConstruct.
vegorov@chromium.org [Wed, 6 Jul 2011 12:36:05 +0000 (12:36 +0000)]
Correctly propagate toolchain setting in SConstruct.

Patch by Bert Belder.

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

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

13 years agoDefine OS::MaxVirtualMemory on MinGW.
vegorov@chromium.org [Wed, 6 Jul 2011 12:29:21 +0000 (12:29 +0000)]
Define OS::MaxVirtualMemory on MinGW.

Patch by Bert Belder.

BUG=v8:1508

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

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

13 years agoMinGW32: define STRUNCATE and change strncpy_s implementation to follow specification.
vegorov@chromium.org [Wed, 6 Jul 2011 12:25:25 +0000 (12:25 +0000)]
MinGW32: define STRUNCATE and change strncpy_s implementation to follow specification.

This fixes the debug build for MinGW32

Patch by Bert Belder.

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

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

13 years agoPrepare push to trunk. Now working on version 3.4.11.
jkummerow@chromium.org [Wed, 6 Jul 2011 10:58:52 +0000 (10:58 +0000)]
Prepare push to trunk.  Now working on version 3.4.11.

R=svenpanne@chromium.org

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

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

13 years agoFix debug break on binary boolean operators
sgjesse@chromium.org [Wed, 6 Jul 2011 10:16:57 +0000 (10:16 +0000)]
Fix debug break on binary boolean operators

The syntax checker finding breakable statements did not take into account that the right hand side of a boolean binary opration might never get evaluated.

R=svenpanne@chromium.org

BUG=v8:1523
TEST=test/mjsunit/regress/regress-1523.js

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

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

13 years agoUse the information from the last recorded safepoint for the padding after the deferr...
sgjesse@chromium.org [Wed, 6 Jul 2011 09:28:07 +0000 (09:28 +0000)]
Use the information from the last recorded safepoint for the padding after the deferrred code.

R=kmillikin@chromium.org

BUG=none
TEST=none

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

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

13 years agoRevert preparser duplicate detection.
lrn@chromium.org [Wed, 6 Jul 2011 09:15:10 +0000 (09:15 +0000)]
Revert preparser duplicate detection.

Doesn't work on Windows yet.
Crashes some layout-tests.

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

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

13 years agoMake preparser detect duplicate parameters and object literal properties.
lrn@chromium.org [Wed, 6 Jul 2011 08:32:48 +0000 (08:32 +0000)]
Make preparser detect duplicate parameters and object literal properties.

This is a fix and reapply of r8516 with some comments addressed and more
tests added.
The difference from r8516 is that canonicalization of number literals is
no performed using the same methods as in v8, to avoid false positives/negatives
when detecting duplicates.

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

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

13 years agoIn preperation of using d8 for running tests: Don't run d8-os when running with ...
ricow@chromium.org [Wed, 6 Jul 2011 08:20:30 +0000 (08:20 +0000)]
In preperation of using d8 for running tests: Don't run d8-os when running with --isolates.

When used with d8 this can potentially interfer with the writing,
reading and deletion of files is the isolates flags makes the same
test run concurrently.
Review URL: http://codereview.chromium.org/7308006

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

13 years agoFix a typo in KeyedStoreIC, restore Kraken performance.
sgjesse@chromium.org [Wed, 6 Jul 2011 07:05:49 +0000 (07:05 +0000)]
Fix a typo in KeyedStoreIC, restore Kraken performance.

TEST=none
BUG=none

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

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

13 years agoFix arm build.
vitalyr@chromium.org [Tue, 5 Jul 2011 16:12:42 +0000 (16:12 +0000)]
Fix arm build.

TBR=sgjesse@chromium.org

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

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

13 years agoFix a few issues breaking cctest/test-lockers/Regress1433:
vitalyr@chromium.org [Tue, 5 Jul 2011 15:49:39 +0000 (15:49 +0000)]
Fix a few issues breaking cctest/test-lockers/Regress1433:

o The thread local state in an isolate has to be initialized before
  it's used.
o v8::Locker was incorrectly tracking whether it's the topmost one.
o Waking the profiler thread on shutdown should not leave the
  semaphore counter in an inconsitent state.

R=fschneider@chromium.org
BUG=v8:1522
TEST=cctest/test-lockers/Regress1433

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

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

13 years agoAdd new files to gyp.
lrn@chromium.org [Tue, 5 Jul 2011 13:33:51 +0000 (13:33 +0000)]
Add new files to gyp.

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

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

13 years agoAdd support for lazy deoptimization from deferred stack checks
sgjesse@chromium.org [Tue, 5 Jul 2011 13:21:29 +0000 (13:21 +0000)]
Add support for lazy deoptimization from deferred stack checks

The debugger can be entered from the deferred stack check in optimized code. This can cause both lazy deoptimization and debugger deoptimization (setting the first break point and inspecting the stack for optimized code respectively). This required deoptimization support from the deferred stack check.

The lazy deoptimiztion call is inserted when the deferred code is done including restoring the registers. The bailout to the full code is the begining of the loop body as that is where the stack check is sitting in the optimized code. The bailout is not to the stack check in the full code as that is sitting at the end of the loop.

R=kmillikin@chromium.org

BUG=none
TEST=none

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

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

13 years agoExtract string->double and double->string conversions for use in the preparser.
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

13 years agoFix ABI for API calls on ia32.
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

13 years agoIntroduce code flushing of RegExp code.
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

13 years agoDon't try to build d8 from profiler tick processor scripts.
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

13 years agoAs part of allowing different contexts for inlined functions, eliminate most explicit...
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

13 years agoFix bug 1529: check for NULL handle in v8::TryCatch::StackTrace.
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

13 years agoPrepare push to trunk. Now working on 3.4.10.
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

13 years agoFix Windows 64-bit compilation error.
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

13 years agoSpeed up V8 random number generator, reverting part of 8490.
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

13 years agoFix a bug in with and catch context allocation.
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

13 years agoMIPS: port Introduce scopes to keep track of catch blocks at compile time.
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

13 years agoMIPS: port Do not pass the global object as the receiver to strict-mode ...
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

13 years agoCorrectly handle the constant pool in constant pool splitting test
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

13 years agoRevert r8516.
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

13 years agoFix an issue with optimization of functions inside catch.
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

13 years agoAdd duplicate parameter detection to preparser.
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

13 years agoDo a backing store sparseness check on fast element delete.
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

13 years agoRemove unmarked entries from per context map caches.
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

13 years agoexposing a few boolean queries from objects.h
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

13 years agoMake date parser handle all ES5 Date Time Strings correctly.
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

13 years agoFix flakiness of optimization assertion on slow ARM builders
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

13 years agoSync grokdump.py INSTANCE_TYPES with V8.
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

13 years agoAdd missing HandleScope
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

13 years agoAn attempt to resolve the win32 build error introduced in r8506
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

13 years agoRemove "modules" and "tags" of the logging CPU profiler.
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

13 years agoSpecial case handling of one char split on an ASCII string.
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

13 years agoWhen compiling C++, CXXFLAGS *and* CCFLAGS are used, so there is no need to pass
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

13 years agoCleanup polymorphic IC code to make use of ElementsKind information in maps.
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

13 years agoSimplify UnaryOpStub a little bit.
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

13 years agoFixes the build for the shell on illumos and Solaris. -D__C99FEATURES__ was added...
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