Commit Graph

6665 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
622d35dc0e Implement Harmony sets and maps.
This implementation extends the internal ObjectHashTable to be able to
hold arbitrary objects (e.g. Smis, Strings, ...) as keys by applying
specialized hashing functions to primitive types. Equality of keys is
defined using the internal SameValue function.

R=rossberg@chromium.org
BUG=v8:1622
TEST=mjsunit/harmony/collections

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 14:14:56 +00:00
ricow@chromium.org
0442e08095 Print out line number and extension name when compilation of an extension fails. This fixes issue 305.
Review URL: http://codereview.chromium.org/8332029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 13:43:19 +00:00
erikcorry
6950fab332 Remove superfluous assert.
Review URL: http://codereview.chromium.org/8332028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 13:34:52 +00:00
erik.corry@gmail.com
f6fef24118 Move some heap verification code in under the --verify-heap flag to speed
up debug mode tests.
Review URL: http://codereview.chromium.org/8381040

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 13:27:46 +00:00
ulan@chromium.org
abeb5a4d93 Handlify simple functions of [keyed] load stub compiler.
Handlified functions: CompileLoadNonexistent, CompileLoadField,
CompileLoadConstant, CompileLoadArrayLength, CompileLoadStringLength,
CompileLoadFunctionPrototype.

R=kmillikin@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 12:26:07 +00:00
erik.corry@gmail.com
b8af27868f Speed up debug mode GC.
Review URL: http://codereview.chromium.org/8380038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 12:13:06 +00:00
erik.corry@gmail.com
2f745a15b5 Get back the performance lost in context creation in 9744.
Review URL: http://codereview.chromium.org/8332026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 11:02:29 +00:00
vegorov@chromium.org
d855e5104c Fix presubmit error introduced by r9767.
TBR=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 09:30:52 +00:00
kmillikin@chromium.org
e05c04e5fa Handlify CallStubCompiler::CompileCallField.
This function relies on a number of helpers for checking prototypes and
probing dictionaries.  It is not possible to wrap these helpers to retry
after allocation failure in a safe way---the assembler has no way to undo
what it has already assembled.

These functions have all been duplicated with handle and raw versions.  The
raw versions will eventually be removed completely.

R=ulan@chromium.org,vegorov@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 09:24:49 +00:00
vegorov@chromium.org
a8a242ad5a CompileArrayPushCall should not use context register as a scratch.
R=kmillikin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 09:07:09 +00:00
vegorov@chromium.org
93f99ec06b Provide fast-path for CHECK macro.
Makes debug build 20% faster.

R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 09:06:07 +00:00
erik.corry@gmail.com
436fb5318c Fix 9763 for real.
Review URL: http://codereview.chromium.org/8382032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 08:59:03 +00:00
erik.corry@gmail.com
f008c9e62b Fix 9763 after build bot failures.
Review URL: http://codereview.chromium.org/8382031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 08:42:38 +00:00
keuchel@chromium.org
e8bccc2cb0 Block scoped const variables.
This implements block scoped 'const' declared variables in harmony mode. They
have a temporal dead zone semantics similar to 'let' bindings, i.e. accessing
uninitialized 'const' bindings in throws a ReferenceError.

As for 'let' bindings, the semantics of 'const' bindings in global scope is not
correctly implemented yet. Furthermore assignments to 'const's are silently
ignored. Another CL will introduce treatment of those assignments as early
errors.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 08:33:08 +00:00
erik.corry@gmail.com
86337d3de7 Get the speed back in new context creation after it was tanked
in 9744.
Review URL: http://codereview.chromium.org/8380035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 08:24:06 +00:00
erik.corry@gmail.com
69c44d6460 Add missing comment from last commit.
Review URL: http://codereview.chromium.org/8383003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 08:23:56 +00:00
rossberg@chromium.org
46dde044de Adapt to latest spec changes for Proxy.create[Function].
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 16:25:30 +00:00
rossberg@chromium.org
70dc2fe968 Implement for-in loop for proxies.
Fix related corner case for Object.keys.
Remove obsolete GET_KEYS builtin.

R=ricow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 15:56:18 +00:00
yangguo@chromium.org
f92da58e13 Handle COW-arrays correctly when converting smi->double fast elements.
TEST=mjsunit/elements-transition.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 15:06:20 +00:00
fschneider@chromium.org
53e7502fa0 Fix bug in environment simulation after inlined call-as-function.
This change is based on my previous change enabling inlining calls-as-function
fixing the bugs related to deoptimization.

The function value on top of the environment was dropped too late in the old code.
As a result we could get a wrong value on top after deoptimization.

This change includes r9619. It was reverted because of test failures that are fixed
with this patch.
Review URL: http://codereview.chromium.org/8360001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 13:53:08 +00:00
ulan@chromium.org
f630ff0c67 Use handle lists in Map::FindTransitionedMap.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 13:45:19 +00:00
ulan@chromium.org
9ad3058756 Use handle lists instead of raw pointer lists in polymorphic code cache.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 13:11:14 +00:00
erik.corry@gmail.com
3eb3f8cb65 Fix crash in partial snapshot test when running with no boot snapshot.
Review URL: http://codereview.chromium.org/8381003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 12:39:29 +00:00
lrn@chromium.org
db95436018 Fix typo in type-name and reorder initialization order.
Remember, when coming back to an old CL, do check that it still works.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 12:19:55 +00:00
lrn@chromium.org
7ab6e55f78 Moved random generator state to global context.
Change Random to take global context, not isolate.

BUG=v8:864

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 12:12:21 +00:00
lrn@chromium.org
6898ff2780 Remove one static initializer from disasm.
Review URL: http://codereview.chromium.org/8381002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 12:07:35 +00:00
yangguo@chromium.org
215c26e3d3 Further improvements upon r9747.
Review URL: http://codereview.chromium.org/8372028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 11:16:38 +00:00
kmillikin@chromium.org
ef31d0480a Handlify the remaining stub compiler functions for call ICs.
Handlify StubCompiler functions for CallIC and KeyedCallIC cases
Megamorphic, Arguments, DebugBreak, and DebugPrepareStepIn.

R=ulan@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 10:55:00 +00:00
kmillikin@chromium.org
ec007b46d1 Handlify call cases for pre-monomorphic, normal, and miss.
These cases turn out to be easy.  There is a lingering raw pointer
implementation of TryCompileCallMiss because it's need by some of the
unconverted call stubs.

R=ulan@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 09:33:11 +00:00
mstarzinger@chromium.org
f193d87ec4 Fix initialization of allocation timeout value.
The allocation timeout value should not be initialized to 0, that
triggers a collection at the first allocation which breaks assumptions
for some test cases.

R=ricow@chromium.org
TEST=cctest/test-heap/Iteration

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 08:59:34 +00:00
yangguo@chromium.org
5f7f79b012 Refactor and clean up array allocation across platforms.
Review URL: http://codereview.chromium.org/8359034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 07:55:50 +00:00
keuchel@chromium.org
c6464d500b Replace boolean indications of strict mode by an enum value.
Review URL: http://codereview.chromium.org/8344082

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-24 07:47:22 +00:00
yangguo@chromium.org
75c7565d4b MIPS: Porting r9605 to arm (elements kind conversion in generated code).
Port r9690 (857eacf)

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 18:40:36 +00:00
erik.corry@gmail.com
9065e95d45 Fix missing write barrier in deserialization. Issue 1783.
Review URL: http://codereview.chromium.org/8352045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 15:20:53 +00:00
danno@chromium.org
f464ad61fb MIPS: port Support array literals with FAST_DOUBLE_ELEMENTS ElementsKind.
Port r9698 (cf0cc54f)

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 15:15:47 +00:00
mikhail.naganov@gmail.com
fa0d4ecf43 The detailed heap snapshot generator was slightly adjusted for tracking sliced strings.
BUG=v8:1779
TEST=cctest/test-heap-profiler/HeapSnapshotSlicedString

Review URL: http://codereview.chromium.org/8362028
Patch from Ilya Tikhonovsky <loislo@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 13:05:37 +00:00
ulan@chromium.org
ae6e6a689c Handlify KeyedIC::ComputeStub.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 11:42:54 +00:00
vegorov@chromium.org
9b0626b52a MIPS: port RegExpMacroAssembler::CheckStackGuardState should update input string pointer...
... when it is moved or changed by GC.

Port r9697 (d53382a)

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 10:59:25 +00:00
vegorov@chromium.org
b9f6ae21b8 Fix compilation on ARM and x64 broken by r9738
R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 10:53:02 +00:00
vegorov@chromium.org
6c7a5d12c8 Avoid write-barriers when initializing newly created Code object.
R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 10:37:56 +00:00
vegorov@chromium.org
5bb6d386b4 Disable incremental marking when GC extension is exposed.
R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 10:33:50 +00:00
vegorov@chromium.org
3474190711 Fix CountLeadingZeros on non-ARMv5 hardware.
R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 10:33:12 +00:00
vegorov@chromium.org
af876ee474 Avoid incremental marking write-barrier when constructing descriptor arrays.
R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 10:32:38 +00:00
keuchel@chromium.org
666c4be29f Reapply r9673 "Scope tree serialization and ScopeIterator cleanup."
This also includes the two fixes from r9674 and r9675. Here's the diff
to the previous CL.

 --- a/src/runtime.cc
 +++ b/src/runtime.cc
 @@ -11133,17 +11133,26 @@ class ScopeIterator {
        context_(Context::cast(frame->context())),
        nested_scope_chain_(4) {

 +    // Catch the case when the debugger stops in an internal function.
 +    Handle<SharedFunctionInfo> shared_info(function_->shared());
 +    if (shared_info->script() == isolate->heap()->undefined_value()) {
 +      if (shared_info->scope_info()->HasContext()) Next();
 +      return;
 +    }
 +
      // Check whether we are in global code or function code. If there is a stack
      // slot for .result then this function has been created for evaluating
      // global code and it is not a real function.
      // Checking for the existence of .result seems fragile, but the scope info
      // saved with the code object does not otherwise have that information.
 -    int index = function_->shared()->scope_info()->
 +    int index = shared_info->scope_info()->
          StackSlotIndex(isolate_->heap()->result_symbol());

      // Reparse the code and analyze the scopes.
      ZoneScope zone_scope(isolate, DELETE_ON_EXIT);
 -    Handle<SharedFunctionInfo> shared_info(function_->shared());
      Handle<Script> script(Script::cast(shared_info->script()));
      Scope* scope;
      if (index >= 0) {

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 10:26:59 +00:00
kmillikin@chromium.org
937006f761 Handlify StubCompiler::CompileCallInitialize.
CallIC::GenerateInitialize and KeyedCallIC::GenerateInitialize are
verified safe for GC.

R=ulan@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 10:19:16 +00:00
fschneider@chromium.org
171846dbd1 Avoid static initializers in assember-arm.h.
Patch by joth@chromium.org.

BUG=v8:1784
Review URL: http://codereview.chromium.org/8367001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 09:55:25 +00:00
kmillikin@chromium.org
6c305c244e MIPS: port Handlify the stub cache lookup and patching for CallIC and KeyedCallIC.
Port r9729 (4aa1f5a6)

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 08:59:32 +00:00
kmillikin@chromium.org
1959409f6d Fix presubmit failure.
TBR=ulan@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 17:28:14 +00:00
kmillikin@chromium.org
e3792a6830 Handlify the stub cache lookup and patching for CallIC and KeyedCallIC.
R=ulan@chromium.org,vegorov@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 17:08:53 +00:00
ulan@chromium.org
a5da9320d2 Reset failure flag before retrying stub compilation.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 16:39:26 +00:00
ulan@chromium.org
997ad6387a Handlify upper layers of KeyedStoreIC.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 13:54:16 +00:00
erik.corry@gmail.com
d66ea04b6c Fix the build on Mac.
Review URL: http://codereview.chromium.org/8354037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 13:47:14 +00:00
svenpanne@chromium.org
627a3ecbd9 Improved printing of Simulate, LoadNamedFieldPolymorphic, LoadNamedGeneric, and StoreNamedField Hydrogen instructions a bit.
Review URL: http://codereview.chromium.org/8352044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 12:55:31 +00:00
yangguo@chromium.org
bd5e694a9c Refactor elements kind conversion.
Review URL: http://codereview.chromium.org/8355035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 12:36:45 +00:00
lrn@chromium.org
a47caee095 Make builtin functions be skipped in stack traces.
Does include exposed builtin functions ("native functions").

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 12:31:33 +00:00
erik.corry@gmail.com
8f9721bbbf Shave 39% from snapshot size.
Review URL: http://codereview.chromium.org/8344079

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 12:27:10 +00:00
vegorov@chromium.org
5d72dde98a Switch UnreachableObjectsFilter to use Marking instead of InstrusiveMarking.
GcSafeFindCodeForInnerPointer does not work with intrusive marking now and it is used when roots are iterated.

R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 11:40:16 +00:00
whesse@chromium.org
388813581e Speed up comparison with a constant.
Improve optimized code for comparison of an int32 against a constant, or comparison of two double constants.  Contributed by m.m.capewell.

Original codereview is http://codereview.chromium.org/7489045/.
This cl is just created in order to commit the change.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 10:26:45 +00:00
danno@chromium.org
c868f0c4a4 Fix x64 and ARM builds.
TBR=jkummerow@chromium.org
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 10:07:54 +00:00
danno@chromium.org
5a5c3e4eae Make sure PrintElementsKind is compiled in release mode.
TBR=jkummerow@chromium.org
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 09:56:18 +00:00
danno@chromium.org
f7563019c7 Add flag to trace element kind transitions
Currently only traces transitions from generated ia32 code.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 09:38:24 +00:00
ulan@chromium.org
f985b15aae Handlify upper layers of KeyedLoadIC.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 09:35:47 +00:00
jkummerow@chromium.org
655b2332d7 ElementsKind transitioning support for keyed loads in Crankshaft
Review URL: http://codereview.chromium.org/8352012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 08:49:01 +00:00
jkummerow@chromium.org
deff312f25 Handle keyed stores after elements transition monomorphically if possible
Review URL: http://codereview.chromium.org/8354003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 08:41:38 +00:00
svenpanne@chromium.org
3edfb4bbbc Make IsGenericDescriptor spec-conformant.
When the descriptor argument is undefined, the spec is very explicit about the
fact that we should return false (not true, like we did previously). I couldn't
come up with a test case for this, but the old code leaves a bad feeling about
corner cases, so better play safe.
Review URL: http://codereview.chromium.org/8356004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-20 07:55:30 +00:00
mstarzinger@chromium.org
67c9a03922 Fix handling Function.apply for non-array arguments.
R=rossberg@chromium.org
TEST=mjsunit/apply,test262

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 13:56:18 +00:00
mstarzinger@chromium.org
6742176949 Fix Array.filter to use internal array for result.
In built-in code we use arrays for internal computations. This makes it
possible to affect the built-in code by putting getters or setters on
the array prototype chain. Using internal arrays prevents those issues.

Related to: http://code.google.com/p/v8/source/detail?r=7040

R=svenpanne@chromium.org
TEST=test262/15.4.4.20-9-b-6

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 13:44:29 +00:00
svenpanne@chromium.org
aaf3454248 [[DefineOwnProperty]] should always return true/false (or throw an exception), never undefined.
Note that this is not an observable behavior, but following the principle of
least surprise, we should follow the spec. Additional (extremely tiny) bonus:
Some ICs see fewer values => better code.
Review URL: http://codereview.chromium.org/8352004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 13:29:37 +00:00
yangguo@chromium.org
372c16161c Optimize fast element conversion in arm using batch store/loads.
Review URL: http://codereview.chromium.org/8353002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 12:15:15 +00:00
keuchel@chromium.org
17cc6d313f Revert 9673, 9674 and 9675 because of failing webkit tests.
This reverts commits
r9673: "Scope tree serialization and ScopeIterator cleanup."
r9674: "Use OS::SNPrintF instead of snprintf."
r9675: "Use int instead of size_t, StrLength instead of strlen."

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 12:15:02 +00:00
jkummerow@chromium.org
3a9d6c04ba Introduce HTransitionElementsKind instruction.
TEST=mjsunit/elements-kind

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 12:10:18 +00:00
kmillikin@chromium.org
838fc27766 Handlify the runtime lookup of CallIC and KeyedCallIC.
R=ulan@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 12:04:16 +00:00
mstarzinger@chromium.org
acc0263755 MIPS: port Fix evaluation order of GT and LTE operators.
Port r9641 (2876c37)

Note that this port does not include crankshaft portions of this
commit. They have been included in today's update to
http://codereview.chromium.org/7934002/

Also, this fixes a changed function prototype for:
void Deoptimizer::RevertStackCheckCodeAt()

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 11:44:38 +00:00
fschneider@chromium.org
2791cd5a2c Allow inlining of named function expressions containing ThisFunction reference.
Named function expression have an implicit local variable that
refers to the current function (ThisFunction). Before we only could inline
anonymous function expressions like:

A.prototype.foo = function() {}

as opposed to

A.prototype.foo = function foo() {}

This change enables inlining function of expressions like this.
Review URL: http://codereview.chromium.org/8346032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 11:41:22 +00:00
danno@chromium.org
e5f23399b4 Support array literals with FAST_DOUBLE_ELEMENTS ElementsKind.
BUG=none
TEST=test/mjsunit/array-literal.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 11:36:55 +00:00
vegorov@chromium.org
e27d8fcbdc RegExpMacroAssembler::CheckStackGuardState should update input string pointer when it is moved or changed by GC.
If input string was cons-string it might undergo short-circuiting during GC. This does not change input start if underlying seq-string (first element of cons-string) does not move but this makes input-string pointer on the native regexp's frame invalid.

R=lrn@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 11:01:02 +00:00
yangguo@chromium.org
96dc1fde46 Bugfix for r9690.
BUG=arm debug test of mjsunit/elements-transition segfaults

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 10:44:20 +00:00
ricow@chromium.org
1c21a9dc6a Don't allow large object space to grow over the max oldspace limit (fixes issue 1717)
Review URL: http://codereview.chromium.org/8345040

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 10:15:09 +00:00
svenpanne@chromium.org
d0fe04447e Fixed evaluation order issue in defineProperties.
This is not covered by test262 yet, but it really makes sense and matches Firefox's behaviour.

TEST=mjsunit/define-properties.js
Review URL: http://codereview.chromium.org/8349031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 09:52:08 +00:00
mstarzinger@chromium.org
b3eba9e764 Fix handling of non-object receivers for array builtins.
R=svenpanne@chromium.org
BUG=chromium:100702
TEST=mjsunit/regress/regress-100702

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 09:24:37 +00:00
ulan@chromium.org
80e3843dc3 Handlify upper layers of StoreIC based on 8337008.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 09:17:01 +00:00
mstarzinger@chromium.org
8b181d4de6 Fix updating of property attributes for elements.
This fixes updating of property attributes for data elements when
attributes are already present on a dictionary element but get removed
by a subsequent redefinition of that element.

R=rossberg@chromium.org
BUG=v8:1772
TEST=test262/15.2.3.6-4-82-18

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 09:06:15 +00:00
yangguo@chromium.org
8472de004b Porting r9605 to arm (elements kind conversion in generated code).
Review URL: http://codereview.chromium.org/8329022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 09:04:35 +00:00
erik.corry@gmail.com
aa91760570 Fix from Paul Lind that helps post-isolates V8 work with older
Android releases.  See http://code.google.com/p/v8/issues/detail?id=1780
Review URL: http://codereview.chromium.org/8347032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 07:49:47 +00:00
svenpanne@chromium.org
140ae348d2 Recognize special comparisons via pattern matching on the hydrogen graph, 2nd attempt.
This time, we initially leave the HTypeof instruction in the Hydrogen graph,
even for the special cases. We later try to remove this instruction (and any
HConstant) in the canonicalization pass, if possible. Always removing the
HTypeof during the initial graph construction is wrong if e.g. it is used in an
HSimulate.

The removals can be generalized a bit, but this will happen in a separate CL.

TEST=mjsunit/optimized-typeof.js
Review URL: http://codereview.chromium.org/8334021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-19 07:35:30 +00:00
fschneider@chromium.org
e8a26d1eb1 Add write barrier helper for code patching and refactor stack check patching.
The new helper avoids expensive FindCodeForInnerPointer invocation when we have
the host code object available. It is used when patching stack checks.

Also some comments on the ARM platform are corrected.
Review URL: http://codereview.chromium.org/8330021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 15:07:42 +00:00
vegorov@chromium.org
75dc771098 Increase ARM/MIPS simulators stack safety margin to 512 bytes
R=erik.corry@gmail.com
BUG=v8:1773

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 14:41:45 +00:00
mstarzinger@chromium.org
c4d25c8f37 Fix updating of property attributes for elements.
This fixes updating of property attributes for getters and setters on
dictionary elements while redefining. This just updates the property
details on the existing element.

R=rossberg@chromium.org
BUG=v8:1772
TEST=test262

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 13:49:19 +00:00
sgjesse@chromium.org
a58c963c67 Reapply "Support for precise stepping in functions compiled before debugging was started (step 2)"
This is reapplying r9501 with this single change which seemed to be causing most (all) of the failures for r9501.

--- a/src/debug.cc
+++ b/src/debug.cc
@@ -2230,6 +2230,7 @@ Debugger::Debugger(Isolate* isolate)
       compiling_natives_(false),
       is_loading_debugger_(false),
       never_unload_debugger_(false),
+      force_debugger_active_(true),
       message_handler_(NULL),
       debugger_unload_pending_(false),
       host_dispatch_handler_(NULL),

R=kmillikin@chromium.org

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 13:40:33 +00:00
lrn@chromium.org
cefbb1e7f8 Make bound functions have poisoned .caller and .arguments.
Also makes func.caller return null if the caller is a bound function,
matching JSC.
Fix bug preventing poisoned setters from triggering.

TEST=mjsunit/function-bind, mjsunit/strict-mode

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 12:26:53 +00:00
ulan@chromium.org
feeb0b0211 Handlify upper layers of LoadIC.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 12:19:18 +00:00
jkummerow@chromium.org
24bc70b2fb Silence GCC-4.5.3 warning about unused result in d8.cc
TEST=GCC 4.5.3 successfully compiles d8.cc even with -Werror enabled.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 12:10:13 +00:00
fschneider@chromium.org
456e5e00c3 Fix assert by reordering the initialization of the arguments boilerplate.
If a GC happened during initialization (when allocating the elements array)
of the non_strict_arguments_boilerplate, heap verification would fail with the following assert:

ASSERT_EQ((map()->has_fast_elements() || map()->has_fast_smi_only_elements()),
            (elements()->map() == GetHeap()->fixed_array_map() ||
             elements()->map() == GetHeap()->fixed_cow_array_map()));

This was not harmful since the boilerplate was setup 
correctly immediatly afterwards.


Simplified the setup code by removing a call to GetElementsTransitionMap. It always return the same map as 
the input object in this case and is therefore unnecessary.


Added more assertions to verify well-formed non-strict
arguments backing store.

BUG=v8:1520
TEST=no more flaky tests with failing this assert.
 
Review URL: http://codereview.chromium.org/8336021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 11:32:57 +00:00
lrn@chromium.org
b15cfedf38 Fix bug in instanceof of bound functions on ARM.
Implement same on Mips.

BUG=v8:1774
TEST=mjsunit/function-bind

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 11:30:29 +00:00
kmillikin@chromium.org
56c763f023 Make the GC aware of JSReceiver pointers in LookupResults.
The LookupResult utility class is used in handlified code, but it can
contain a raw pointer to the lookup's holder object.  Create a per-thread
stack of live LookupResults and iterate all the live ones on GC.

R=vegorov@chromium.org,erik.corry@gmail.com
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 11:18:55 +00:00
keuchel@chromium.org
4e5643a648 Scope tree serialization and ScopeIterator cleanup.
The intention is to store enough scope information for the debugger to
handle stack allocation of block scoped variables introduced by
http://codereview.chromium.org/7860045/ .

This CL is based on
http://codereview.chromium.org/7904008/ .

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-18 08:46:46 +00:00
keuchel@chromium.org
7d89f0f3c8 Replace calls_eval() by calls_non_strict_eval() where possible.
Review URL: http://codereview.chromium.org/8321002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 15:19:34 +00:00
yangguo@chromium.org
d7f3985e33 Rolling back r9662.
Review URL: http://codereview.chromium.org/8321001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 13:39:56 +00:00
erik.corry@gmail.com
b90ec2f384 Change to disable stupid gcc warning.
Review URL: http://codereview.chromium.org/8318003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 13:27:57 +00:00
yangguo@chromium.org
d2434953e2 Changes around ascii-check for strings wrt external strings.
Review URL: http://codereview.chromium.org/8312015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 12:49:34 +00:00
erikcorry
dac0b853e1 Improve speed of Utf8Write by always flattening the string first and
detecting the ASCII case.  Also rewrite Utf8Length to work on an
unflattened string.  Bug: http://code.google.com/p/v8/issues/detail?id=1665
Review URL: http://codereview.chromium.org/8304021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 12:48:31 +00:00
lrn@chromium.org
2bbf3bbee7 Make native syntax an early error in the preparser.
Previously the preparser always accepted natives syntax and let the
real parser throw the syntax error. In ES5, it should be an early error,
so the preparser must catch the error.
The perparser library does not expose parsing for natives syntax, it's
only used internally.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 12:45:52 +00:00
lrn@chromium.org
5152d2e0da Reimplement Function.prototype.bind.
Make instanceof work correctly.

BUG=v8:893

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 12:44:16 +00:00
keuchel@chromium.org
6f4e70a1dc Let bound iteration variables in for-loops
TEST=mjsunit/harmony/block-for.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 12:19:06 +00:00
keuchel@chromium.org
f93c69308f Disallow function declarations in statement positions in harmony mode.
Review URL: http://codereview.chromium.org/8306025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 11:59:08 +00:00
yangguo@chromium.org
bbe896a35c Fixing compile error on win64.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 11:41:34 +00:00
yangguo@chromium.org
92fdeff125 Porting r9605 to x64 (elements kind conversion in generated code).
Review URL: http://codereview.chromium.org/8271007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 10:44:47 +00:00
keuchel@chromium.org
0706a98b2a Introduce with scope and rework variable resolution.
Review URL: http://codereview.chromium.org/7904008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 09:29:37 +00:00
lrn@chromium.org
50ef25e0f3 Remove redundant allow-natives flag from CompilationInfo.
Just use script being native and FLAG_allow_natives_syntax directly.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 09:02:26 +00:00
jkummerow@chromium.org
eb8f4c642d Speedup HInstruction::Verify() for pathological cases
BUG=v8:1767
TEST=mjsunit/numops-fuzz doesn't timeout in debug mode

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 07:52:20 +00:00
mstarzinger@chromium.org
ac712f13c3 Fix evaluation order of GT and LTE operators.
According to the ES5 spec all ">" and "<=" expressions should be be
evaluated left-to-right. This obsoletes old hacks for reversing the
order to be ES3 compliant.

R=lrn@chromium.org
BUG=v8:1752

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-17 07:43:40 +00:00
svenpanne@chromium.org
a8bb36f87b Revert r9612, it hits an assertion under special circumstances.
Problematic code is e.g.:

   function typeofViaVariable() {
     var foo = typeof({})
     return foo === "undefined";
   }
Review URL: http://codereview.chromium.org/8283036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 15:02:19 +00:00
svenpanne@chromium.org
8856b62331 Fixed printing of HTypeofIsAndBranch instruction for non-ASCII type literals.
Review URL: http://codereview.chromium.org/8291004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 13:16:23 +00:00
fschneider@chromium.org
948a323819 Revert r9619.
It causes an assertion with deoptimizing from inlined code.
Review URL: http://codereview.chromium.org/8277034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 12:26:29 +00:00
fschneider@chromium.org
c68fc4126f Revert last revert.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/8286023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 12:03:53 +00:00
fschneider@chromium.org
85ab75df50 Revert r9619.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/8286022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 11:56:07 +00:00
erik.corry@gmail.com
c808a6449e Avoid extra GCs when deserializing during incremental marking.
Review URL: http://codereview.chromium.org/8276030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 10:52:30 +00:00
ricow@chromium.org
2a4245e0c0 Fix available new space memory statistics reporting.
We currently report how much memory is available without changing page, i.e., the actual amount of available memory is not correctly stated for new space when doing --trace-gc.
Review URL: http://codereview.chromium.org/8275026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 09:25:10 +00:00
erik.corry@gmail.com
1959359ab2 Speed up cloning objects by avoiding a write barrier check.
Review URL: http://codereview.chromium.org/8274032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 09:20:19 +00:00
fschneider@chromium.org
34534588fb Fix a number of bugs with inlining calls as function.
1. Record AST id for CallFunctionStub.

2. Correctly extract cached target from CallFunctionStub inline cache.

3. Fix a bug when inling call as a function in effect or value context:
   Handle abnormal exits correcty.

4. Fix a bug when inlining call as a function in test context: drop function
   correctly from true and false block.

5. Avoid inlining mutually recursive functions by checking the stack of function
   states before inlining. This was not a bug, but is just a more general
   check to avoid recursive inlining.
Review URL: http://codereview.chromium.org/8258012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 08:43:27 +00:00
fschneider@chromium.org
212e4ae7d4 Eliminate write barrier for global stores at compile time if value stored is a smi.
Omit smi check inside write barriers if the value is known to be a heap object.

Refine inferred types of some instructions.
Review URL: http://codereview.chromium.org/8256016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 07:45:18 +00:00
danno@chromium.org
b86db3d73e MIPS: fix build breakage due to r9607, faster slow asserts.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-14 07:08:20 +00:00
yangguo@chromium.org
b095a94b85 Adding missing hole check to FixedDoubleArray::Initialize
Review URL: http://codereview.chromium.org/8281001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 16:36:20 +00:00
vegorov@chromium.org
b182baf350 Return empty HeapStatistics for uninitialized isolate.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 16:11:18 +00:00
rossberg@chromium.org
4753976194 Fix handling of this in direct calls to function proxies.
Fix & tweak some proxy-related error messages.

R=kmillikin@chromium.org
BUG=v8:1543
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 15:55:57 +00:00
svenpanne@chromium.org
baa29ebafa Recognize special comparisons via pattern matching on the hydrogen graph.
Previously, comparisons against null/undefined and comparisons of the result of
typeof against a constant string were done syntactically. Now we do this via
pattern matching on the hydrogen graph, which opens up more opportunities for
better code generation, e.g. the following comparisons are now recognized to be
special:

   var bar = typeof foo;
   var baz = "undefined";
   if (bar == baz) ...

   var blah = undefined;
   if (hurz == blah) ...

If we did this handling of special cases even later at lithium generation time,
even more cases could be recognized, but this would involve bigger changes and
this CL handles most common cases.
Review URL: http://codereview.chromium.org/8242002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 15:07:28 +00:00
fschneider@chromium.org
ba981deab0 Always limit inlining depth to avoid taking too much time for --stress-opt runs.
We run with --nolimit-inlining when --stress-opt is on.
Review URL: http://codereview.chromium.org/8267007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 13:41:47 +00:00
mstarzinger@chromium.org
a68a57d51b Put store buffer verification behind a flag.
R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 12:44:52 +00:00
erik.corry@gmail.com
6f6d744115 Faster slow asserts.
Review URL: http://codereview.chromium.org/8267004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 11:54:19 +00:00
erik.corry@gmail.com
1cca5468aa Remove some asserts to speed up debug mode.
Review URL: http://codereview.chromium.org/8256012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 11:50:00 +00:00
yangguo@chromium.org
fae807b3bb Elements kind conversion in generated code (ia32).
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 10:53:31 +00:00
rossberg@chromium.org
87f3ff1ea0 Preparing push to trunk for 3.7.0
Review URL: http://codereview.chromium.org/8262010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 09:40:55 +00:00
danno@chromium.org
16a89e8246 MIPS: port all relevant commits since the new-gc was landed.
This ports the following list of commits to mips. It is provided in this form
so that the mips port of the new-gc can be easily tested on your end.

This must be downloaded or landed after http://codereview.chromium.org/8106002
This is based on r9585. With these two mips commits, all tests are passing.

9319    Fix a harmless assert and a genuine bug in the GC-safety of stub generation ...
9329    ARM: Pregenerate some stubs that we call from other stubs.
9335    Initialize pre-allocated fields of JSObject with undefined.
9344    Put back the asserts in RememberedSetHelper, but correct this time
9370    Reorganize object type enum, such that proxies are no longer in the middle...
9392    Basic support for tracking smi-only arrays on ia32.
9402    Notify collector about lazily deoptimized code objects.
9411    Porting r9392 to arm (smi-only arrays).
9418    Small refactor to KeyedStoreIC::GenerateGeneric to make it slightly faster.
9447    Tighten up assertions checking GC-safety of stub calls.
9449    Record function call targets, use them for inlining.
9459    Make sure we don't flush the pregenerated stubs, since they need to b
9461    Fix the build on ARM
9466    Move the is_pregenerated flag so it does not overlap other flags....
9468    Fix the no-VFP3 build on ARM.
9475    Pass correct anchor_slot for EMBEDDED_OBJECT pointers from
9490    Adjust assertions in UpdateSlot to match UpdatePointer in PointersUpdatingVisitor.
9511    Clean list of external references from internal objects like the hole value.

9514    Simplify compares in KeyedStoreIC::GenerateGeneric.
9531    Porting r9456 to arm (Optimize KeyedStoreGeneric for Smi arrays).
9541    Fix load of potentially eval-shadowed let bindings.
9542    Fast allocation of block contexts.
9553    Activate smi-only optimizations for large array literals.

9575    Move declaration of SerializedScopeInfo from variables.h to objects.h
9577    Track elements_kind transitions in KeyedStoreICs.
9583    Fixing a bug in arm as pointed out in issue 1759.
9584    Refactor and fix polymorphic KeyedStoreIC creation.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 08:00:10 +00:00
danno@chromium.org
4f7d11f963 MIPS: port Merge experimental/gc branch to the bleeding_edge.
Simplified based on Michael's change Refactor how embedded pointers are visited. (9597)

Ported r9328 (bdc13b7)

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-13 07:35:38 +00:00
yangguo@chromium.org
34c6ab82ea Fixing bug caused by missing smi-tag.
Review URL: http://codereview.chromium.org/8240007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-12 16:00:59 +00:00
mstarzinger@chromium.org
1da890af54 Refactor how embedded pointers are visited.
This refactoring (almost) gets rid of the requirement to get the target
object address for an object pointer embedded in code objects. This is
not possible on MIPS as pointers are encoded using two instructions. All
usages of RelocInfo::target_object_address() are (almost) obsoleted by
this change. The serializer still uses it, so MIPS will not yet work
with snapshots turned on.

R=danno@chromium.org,vegorov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-12 15:43:41 +00:00
mstarzinger@chromium.org
d32c330ecf Fix special handling of DefineOwnProperty on arrays.
According to the ES5 spec the implementation of DefineOwnProperty() has
to special case handling of arrays. This is a preliminary implementation
correctly handling definition of array index properties, defining length
properties is not completely covered yet.

R=rossberg@chromium.org
TEST=test262

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-12 14:47:13 +00:00
yangguo@chromium.org
298e0a9862 Tentatively enabling string slices.
Review URL: http://codereview.chromium.org/8229009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-12 12:30:30 +00:00
rossberg@chromium.org
1abf3ed0a4 Introduce collective --harmony flag.
Shorten --harmony-block-scoping to --harmony-scoping.

R=keuchel@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-12 12:23:06 +00:00
vegorov@chromium.org
819323f29f Runtime_NotifyDeoptimized should search for function activation in all thread stacks.
R=fschneider@chromium.org
BUG=v8:1763

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-12 10:35:42 +00:00
mstarzinger@chromium.org
554a12fbbc Fix free list node ending up on evacuation candidate.
This is a temporary fix which avoids compaction when incremental marking
is restarted during an old-space-step. That could turn the page that
holds the chosen free list node into an evacuation candidate. It could
also cause several other inconsistencies if it happens during scavenge.

R=vegorov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-11 16:50:58 +00:00
jkummerow@chromium.org
312c534a6c Refactor and fix polymorphic KeyedStoreIC creation
Review URL: http://codereview.chromium.org/8233011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-11 16:02:45 +00:00
yangguo@chromium.org
cef39a6657 Fixing a bug in arm as pointed out in issue 1759.
BUG=v8:1759

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-11 15:56:06 +00:00
erik.corry@gmail.com
3ce33aacc6 New flag --stress-compaction
Review URL: http://codereview.chromium.org/8234002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-11 15:52:15 +00:00
vegorov@chromium.org
4deaad3ccc Adjust assertions in the incremental marking.
Now we are completely transfering marks when shifting arrays in-place.

This might lead to white free space objects in the marking deque.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-11 11:38:00 +00:00
erik.corry@gmail.com
ba8a7f374e Add --noclever-optimizations to disable some things that have
caused trouble in the past.
Review URL: http://codereview.chromium.org/8229005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-11 11:35:04 +00:00
jkummerow@chromium.org
184fdcf28b Track elements_kind transitions in KeyedStoreICs.
Review URL: http://codereview.chromium.org/8166017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-11 09:33:00 +00:00
erik.corry@gmail.com
f900fc9d80 Remove some unused and unneeded flags.
Review URL: http://codereview.chromium.org/8228004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-11 09:28:06 +00:00
fschneider@chromium.org
876fa09feb Move declaration of SerializedScopeInfo from variables.h to objects.h
This eliminates compile-errors when assigning Handle<SerializedScopeInfo> to
Handle<Object> in a place where the declaration was not available because
variables.h was not included.

As a result I had to also move the enum Variable::Mode to v8globals.h and
rename it to VariableMode.
Review URL: http://codereview.chromium.org/8221004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-11 08:41:19 +00:00
yangguo@chromium.org
17a68e1cfb Fixing assertion.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 16:18:20 +00:00
yangguo@chromium.org
3249530ef0 Fixing issue 1757 (string slices of external strings).
BUG=v8:1757
TEST=regress-1757.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 16:09:03 +00:00
vegorov@chromium.org
fd46247039 Add hinting to improve ASLR for macos (all allocations) and linux (newly added allocation types).
TEST=N/A
BUG=1749

Review URL: http://codereview.chromium.org/8115014
Patch from Cris Neckar <cdn@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 14:17:42 +00:00
yangguo@chromium.org
6792016261 Disabling string slices.
Review URL: http://codereview.chromium.org/8217006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 12:17:50 +00:00
svenpanne@chromium.org
1420217af6 Prepare push to trunk. We are now working on 3.6.7.
Review URL: http://codereview.chromium.org/8224001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 11:38:09 +00:00
kmillikin@chromium.org
fa18fdb206 Add a regression test for an already fixed issue.
Add a regression test for Chromium issue 99167.

R=vegorov@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 10:46:27 +00:00
vegorov@chromium.org
48ba97a410 Disable short-circuiting of cons-strings when compaction is pending.
Otherwise fast path of scavenger gets a bit too complicated and heavy.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 10:35:08 +00:00
fschneider@chromium.org
3b470c5662 Fix presubmit error.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/8223001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 10:32:16 +00:00
yangguo@chromium.org
f12376c41e Fixing bogus assertion.
Review URL: http://codereview.chromium.org/8222001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 10:14:39 +00:00
fschneider@chromium.org
313f9505b4 Make accessors for oddball objects return Oddball* instead of Object*.
Fix a use of the hole value and the undefined value before initialization when
initializing V8. Before we just read a NULL value from them.
Review URL: http://codereview.chromium.org/8130002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 09:21:48 +00:00
svenpanne@chromium.org
03c5e99e8a Make GCC 4.5.x happy.
Review URL: http://codereview.chromium.org/8216005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 08:57:13 +00:00
yangguo@chromium.org
740f1e1c95 Enable string slices.
Review URL: http://codereview.chromium.org/8218002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 08:35:01 +00:00
danno@chromium.org
3b07abbdbe Activate smi-only optimizations for large array literals.
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-10 08:31:06 +00:00
erik.corry@gmail.com
338ab857b9 Remove a static initializer that could potentially slow down startup time.
BUG=1753
Review URL: http://codereview.chromium.org/8198005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-07 14:41:08 +00:00
mstarzinger@chromium.org
cd6a982b52 Fix string whitespace trimming of byte order marks.
R=rossberg@chromium.org
TEST=test262

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-07 14:33:46 +00:00
mstarzinger@chromium.org
e699434266 Fix some array functions to behave as specified.
This fixes the handling of primitives and the order of how side effects
are visible in some array functions as specified by the ES5.

R=rossberg@chromium.org
TEST=test262

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-07 14:07:33 +00:00
erik.corry@gmail.com
bff0e281ee Change cached powers of 10 to avoid constants that need a static
initializer to be called on process startup instead of being in
the read-only section.
Review URL: http://codereview.chromium.org/8177018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-07 08:21:21 +00:00
keuchel@chromium.org
c1cf622fe9 Fast allocation of block contexts.
Review URL: http://codereview.chromium.org/8066002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-06 15:59:02 +00:00
keuchel@chromium.org
80048c14b1 Fix load of potentially eval-shadowed let bindings.
BUG=
TEST=test/mjsunit/harmony/block-let-semantics.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-06 15:24:20 +00:00
kmillikin@chromium.org
fa425b54b7 Don't count duplicate assignments to the same property as distinct ones.
In the ThisNamedPropertyAssignmentFinder, duplicate assignments to the same
property were counted as distinct assignments.  As a simple fix, subsequent
ones overwrite the previously recorded assignment.

This will reorder the assignments, but it is safe since they are restricted
to have only constants and parameters on the right-hand side (and there are
no assignments to the parameters).

R=vegorov@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-06 12:38:18 +00:00
lrn@chromium.org
918922b304 Change implementation of JSObject::HasHiddenProperties to work as before 9510.
Review URL: http://codereview.chromium.org/8161014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-06 10:54:35 +00:00
kmillikin@chromium.org
1f12cc4099 Simplify calling generated code from the runtime.
Instead of expecting Object** arrays at the outermost level, expect
Handle<Object> arrays and reinterpret_cast them only just before invoking
the generated code.

R=rossberg@chromium.org,fschneider@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-06 09:31:38 +00:00
rossberg@chromium.org
1e56e29a38 Fix a prototype chain traversal not expecting proxies.
R=kmillikin@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-06 08:46:38 +00:00
rossberg@chromium.org
ebf6cb7150 Use correct trap for lookup in prototype proxy.
R=kmillikin@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-06 08:42:10 +00:00
jkummerow@chromium.org
a40462e3bb Refactor JSObject::SetFastElement.
This fixes a bug where the length of FAST_DOUBLE_ELEMENTS arrays was not
set correctly, and another bug where appending a double element to a
SMI_ONLY array would convert it to FAST_ELEMENTS instead of
FAST_DOUBLE_ELEMENTS.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 13:56:30 +00:00
yangguo@chromium.org
b1e83c54c5 Porting r9456 to arm (Optimize KeyedStoreGeneric for Smi arrays).
Review URL: http://codereview.chromium.org/8065004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 11:39:34 +00:00
erik.corry@gmail.com
42b9eaa91c Prepare push to trunk. We are now working on 3.6.6.
Review URL: http://codereview.chromium.org/8144001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 11:24:13 +00:00
lrn@chromium.org
ebc0f85e40 Revert "Added ability to lock strings to prevent their representation or encoding from changing."
This reverts r9424.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 11:09:34 +00:00
vegorov@chromium.org
a7c373c2d2 Fix Kraken segfaults on ARM.
DoStoreKeyedFastElement was passing incorrect slot address (off by 1) to the RecordWrite.

R=erik.corry@gmail.com
BUG=v8:1742

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 10:50:24 +00:00
vegorov@chromium.org
7e1c2d9d1e Keep MemoryChunk::LiveBytes in sync when marking deque overflows.
R=erik.corry@gmail.com
BUG=v8:1672

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 09:42:20 +00:00
rossberg@chromium.org
2c975d6ae2 Make 'Become' safe for retries.
R=ricow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 09:41:54 +00:00
mstarzinger@chromium.org
d8d7d2d33f Remove some obsolete GC-safe accessors.
R=yangguo@chromium.org
BUG=v8:1490

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 08:12:36 +00:00
lrn@chromium.org
9f73eed45f Fix issue 1361 - Implement ES5 Array.prototype.toString.
BUG=v8:1361
TEST=mjsunit/array-tostring

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-05 07:08:23 +00:00
mstarzinger@chromium.org
2fb58638a6 Fix verification of weak maps during initialization.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-04 15:54:57 +00:00
mstarzinger@chromium.org
c034518442 Fix preparation for sorting of external arrays.
R=rossberg@chromium.org
BUG=98773
TEST=mjsunit/regress/regress-98773

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-04 13:49:50 +00:00
rossberg@chromium.org
abc8b0d183 Remove two left-over uses of Function.prototype.apply that I overlooked when merging proxy CLs.
R=ricow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-04 12:48:16 +00:00
yangguo@chromium.org
3c812247aa Simplify compares in KeyedStoreIC::GenerateGeneric.
Review URL: http://codereview.chromium.org/8068024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9514 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-04 12:17:08 +00:00
vegorov@chromium.org
777df2d878 Adjust contents of kAheadOfTime to match write-barrier stub called from CompileArrayPushCall.
R=erik.corry@gmail.com
BUG=v8:1729

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-04 11:38:12 +00:00
erik.corry@gmail.com
6f833a35d5 Don't always compact when collecting.
Review URL: http://codereview.chromium.org/8124022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-04 09:12:02 +00:00
fschneider@chromium.org
976d5f3797 Clean list of external references from internal objects like the hole value.
Review URL: http://codereview.chromium.org/8114032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-04 09:07:50 +00:00
lrn@chromium.org
8e31371d0e Move logic for hidden properties into the JSObject.
Previously, the logic using the hidden properties backing object was
spread accross use sites. Now it's all contained in JSObject, with
only simple accessors available.
Also change the backing object to be a StringDictionary rather than a JSObject.
There's still room for improvement by making a hash-table that don't
store property details as well.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-04 07:45:25 +00:00
lrn@chromium.org
4750f0c3cd Fix issue 1415 - allow surrogate pair codes in decodeURIComponent.
Also some cleanup of uri.js.

BUG=v8:1415
TEST=mjsunit/regress/regress-1415

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-04 07:15:07 +00:00
mikhail.naganov@gmail.com
3e4b4a6a86 Fix incorrect function name inference in case of assignment / global assignment.
R=kmillikin@chromium.org
BUG=v8:1732
TEST=test-func-name-inference/GlobalAssignmentAndCall,AssignmentAndCall

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-03 19:18:05 +00:00
kmillikin@chromium.org
a4e0103708 Clean up the x86 assembler API.
The API is inconsistent about when a register must be coerced to an operand
and when it can be used as a register.  Simplify usage by never requiring it
to be wrapped.

R=fschneider@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-03 11:44:39 +00:00
kmillikin@chromium.org
ceee9d535a Remove #include "isolate-inl.h" from v8.h.
Include it only in the .cc files where it's needed.

R=fschneider@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-03 11:13:20 +00:00
lrn@chromium.org
4cb7995152 Fix build error.
Review URL: http://codereview.chromium.org/8117002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-03 10:40:39 +00:00
lrn@chromium.org
4b385d7e8e Fix bug in x64 RegExp detecting start of string.
Also add missing MIPS case in regexp tracer.

Fixes issues v8:1748 and v8:1746

BUG=v8:1748, v8:1746
TEST=mjsunit/regress/regress-1748.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-03 10:31:01 +00:00
lrn@chromium.org
165e105ec9 Check enumerability of array indices correctly in propertyIsEnumerable.
Fix issue 1692.

BUG=v8:1692
TEST=mjsunit/regress/regress-1692

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-03 09:15:58 +00:00
sgjesse@chromium.org
08a85de703 Revert "Support for precise stepping in functions compiled before debugging was started (step 2)"
TBR=kmillikin@chromium.org

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-01 08:47:12 +00:00
sgjesse@chromium.org
b2ebc91f5c Reapply "Support for precise stepping in functions compiled before debugging was started (step 2)"
This is to get a clean run in the buildbot.

TBR=kmillikin@chromium.org

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-01 05:39:14 +00:00
sgjesse@chromium.org
083275715a Revert "Support for precise stepping in functions compiled before debugging was started (step 2)"
This reverts commits r9499, r9497 and r9489.

Then changed caused a number of failures.

TBR=kmillikin@chromium.org

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-30 13:27:38 +00:00
sgjesse@chromium.org
230ee9de96 Try to fix Win64 build
TBR=kmillikin@chromium.org

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-30 13:06:31 +00:00
mstarzinger@chromium.org
b5be9fa83a Fix map modification in transition tree traversal.
While traversing the transition tree we build a work-list using the map
field of maps. Setting those map values with a write barrier causes
black-to-gray changes on maps which are currently not recognized as
such, hence their computed size might be off.

R=vegorov@chromium.org
BUG=v8:1672
TEST=cctest/test-decls/Present

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-30 13:03:48 +00:00
sgjesse@chromium.org
f274c94e65 Make sure heap is iteratable before iterating it.
This line was accidentally removed in r9489.

TBR=kmillikin@chromium.org

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-30 12:12:09 +00:00
vegorov@chromium.org
71519ee4b2 Fix presubmit error in mark-compact.cc
TBR=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-30 11:09:31 +00:00
ager@chromium.org
bcd9e5b19e Remove the use of <limits> from strtod.cc. It is unused.
The only remaining use of <limits> is in globals.h for a range of GCC
versions for which the INFINITY macro is broken.

R=danno@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-30 09:16:01 +00:00
vegorov@chromium.org
807ae24307 Adjust assertions in UpdateSlot to match UpdatePointer in PointersUpdatingVisitor.
R=erik.corry@gmail.com
BUG=v8:1740

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-30 08:45:28 +00:00
sgjesse@chromium.org
de7b222e36 Support for precise stepping in functions compiled before debugging was started (step 2)
This change will ensure that full code with debug break slots is compiled and activated for all functions which already have activation frames.

This additional handling is only for functions which have activations on the stack, and that activation is of the full code compiled without debug break slots. In that case the full code is recompiled with debug break slots. It is ensured that the full code is compiled generating the exact same instructions - except for the additional debug break slots - as before. The return address on the stack is then patched to continue execution in the new code.

Also fixed SortedListBSearch to actually use the passed comparision function.

R=svenpanne@chromium.org, kmillikin@chromium.org

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-30 08:39:56 +00:00
yangguo@chromium.org
67789af11b Fixing MinGW build.
BUG=v8:1695

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-30 07:46:13 +00:00
mikhail.naganov@gmail.com
0b2f694d99 Make sure that heap is iterable prior to iterating it in Logger:: methods.
R=vegorov@chromium.org
BUG=v8:1700
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 15:07:00 +00:00
yangguo@chromium.org
5ed752de96 Porting r9456 to x64 (Optimize KeyedStoreGeneric for Smi arrays).
Review URL: http://codereview.chromium.org/8054043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 14:08:21 +00:00
vegorov@chromium.org
3e9891c1d0 Enable code flushing for full (non-incremental) collections.
This will ensure that we will flush code when we hit memory limits.

R=erik.corry@gmail.com
BUG=v8:1609

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 13:51:47 +00:00
mstarzinger@chromium.org
1b5c073858 Reenable assertion after issue was fixed.
R=lrn@chromium.org
BUG=v8:1672

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 13:36:34 +00:00
erik.corry@gmail.com
44ca9b40ff Temporary change to try to catch missing pregenerated stubs early with
a CHECK instead of an ASSERT.
Review URL: http://codereview.chromium.org/8073025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 12:53:27 +00:00
mstarzinger@chromium.org
279356b4b3 Implement shrinking of paged spaces during sweeping.
For each paged space we release all but one of the unused pages after
marking (when we know the number of live bytes) but before actually
sweeping it. This is not yet done for lazy swept pages.

R=erik.corry@gmail.com
BUG=v8:1614

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 12:27:31 +00:00
vegorov@chromium.org
1a0423b54f Fix leakage of virtual address space on Linux platform.
Ensure that unmap return values are checked in debug mode.

R=erik.corry@gmail.com
BUG=v8:1701

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 12:23:05 +00:00
erik.corry@gmail.com
af20990e0e Don't need to protect pregenerated stubs from flushing from the
cache.  They are in a different cache that is not flushed.  Keep
the marking of pregenerated stubs for assertion purposes.
Review URL: http://codereview.chromium.org/8065028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 11:52:05 +00:00
yangguo@chromium.org
acc105af91 Fix build with debuggersupport=off.
BUG=v8:899

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-29 08:55:36 +00:00
vegorov@chromium.org
36ae5f3811 Pass correct anchor_slot for EMBEDDED_OBJECT pointers from code objects.
Correctly initialize newly created large-object pages when incremental marking with compaction is in progress.

R=erik.corry@gmail.com
BUG=v8:1737

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 17:45:58 +00:00
ricow@chromium.org
90b1e50923 Fix use of non-gc safe pointer in regexp code.
Review URL: http://codereview.chromium.org/8034002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 16:10:17 +00:00
fschneider@chromium.org
9bc30dfe93 Small simplification of HChange instruction.
Use existing flag to mark HChange instructions that deoptimize on undefined.

Also there is no need to store the source representation explicitly.
Review URL: http://codereview.chromium.org/8066007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 14:01:40 +00:00
yangguo@chromium.org
c6a53e0638 Fixing headers for Windows 2000.
BUG=v8:1724

Review URL: http://codereview.chromium.org/8068002
Patch from Vovan Shutoff <vovan@shutoff.ru>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 13:40:03 +00:00
yangguo@chromium.org
fd575f7177 Fixed deadlock in the debugger agent in Windows.
BUG=v8:1723
TEST=cctest test-debug/DebuggerAgent

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 13:27:20 +00:00
erik.corry@gmail.com
0b26be298d Fix the no-VFP3 build on ARM.
Review URL: http://codereview.chromium.org/8066008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 13:20:09 +00:00
vegorov@chromium.org
2c1b5c0a9a Adjust assertion in Heap::IdleNotification.
R=mstarzinger@chromium.org
BUG=v8:1715

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 12:55:34 +00:00
erik.corry@gmail.com
07ba7ad073 Move the is_pregenerated flag so it does not overlap other flags.
Remove the before-or-after InstanceOf stub rule, which was too
subtle and lacked checking ssertions.
Unify the way the CEntry stub is pregenerated so that it is done
in the same way.
Review URL: http://codereview.chromium.org/8065006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 12:23:40 +00:00
vegorov@chromium.org
fd2bac7e92 Remove HEnvironment::CheckDepth.
R=fschneider@chromium.org
BUG=v8:1727

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 11:58:40 +00:00
fschneider@chromium.org
f85bcba479 Limit depth of inlining for --stress-opt runs to avoid going into infinite recursion.
Review URL: http://codereview.chromium.org/8060033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 11:34:54 +00:00
erik.corry@gmail.com
355a2bf0a8 Temporarily switch on always-compact to flush out crash bugs.
Review URL: http://codereview.chromium.org/8068001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 11:15:23 +00:00
erik.corry@gmail.com
99ed7bdb29 Fix the build on ARM.
Review URL: http://codereview.chromium.org/8065005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 11:00:41 +00:00
vegorov@chromium.org
39512e148d EvacuateNewSpaceAndCandidates should explicitly skip dead large objects.
LargeObjectSpace is swept at the very end of SweepSpaces.

R=mstarzinger@chromium.org
BUG=v8:1736

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 10:45:27 +00:00
erik.corry@gmail.com
bbcafaa2d5 Make sure we don't flush the pregenerated stubs, since they need
to be always present, so that we can call them from other stubs
without trying to generate stubs while we are generating stubs.
Review URL: http://codereview.chromium.org/8052029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-28 10:32:12 +00:00
danno@chromium.org
1b5a2381ec Optimize KeyedStoreGeneric for Smi arrays.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 16:15:29 +00:00
vegorov@chromium.org
f2ff85ad71 CallFunctionStub was missing a write-barrier for write into the global cell.
R=fschneider@chromium.org
BUG=v8:1733

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 13:45:13 +00:00
mstarzinger@chromium.org
a79d439586 Fix slot buffers of abandoned evacuation candidates.
R=vegorov@chromium.org
BUG=v8:1734
TEST=cctest/test-mark-compact/NoPromotion

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 13:35:04 +00:00
fschneider@chromium.org
27e1a8d414 Improve our simple elimination of hole checks.
Currently we avoid checking for the hole value after array loads, if the
result is only used by instructions that definitely deoptimize in case
of the hole value (HChange instructions).

This change performs the same procedure for loading from deleteable/read-only
global variable where we can also avoid the check in the same cases.
Review URL: http://codereview.chromium.org/8054008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 13:03:19 +00:00
vegorov@chromium.org
2e08515d21 Check the depth of the constructed HEnvironment.
Temporary check to catch 1727 on the reliability bot.

R=fschneider@chromium.org
BUG=v8:1727

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 12:55:43 +00:00
yangguo@chromium.org
8581ac213a Fixed a bug in smi-only implementation in x64.
Review URL: http://codereview.chromium.org/8060009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 12:25:42 +00:00
kmillikin@chromium.org
bcb781d76a Record function call targets, use them for inlining.
Introduce a version of the CallFunctionStub that records monomorphic
call targets in a one-element cache in the instruction stream.  Use
the cache for inlining attempts in the optimizing backend.

R=fschneider@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 11:42:02 +00:00
danno@chromium.org
ebc3010ca3 Smi element fixes in Builtins.
R=jkummerow@chromium.org
BUG=none
TEST=dromaeo-object-array-array-deconstruction-pop doesn't regress

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 11:16:39 +00:00
vegorov@chromium.org
0df7441668 Tighten up assertions checking GC-safety of stub calls.
Ensure that stubs are properly pregenerated on all platforms.

R=erik.corry@gmail.com
BUG=v8:1729

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 10:53:22 +00:00
vegorov@chromium.org
90cab93be4 In Invoke get JSEntryStub and JSConstructEntryStub directly through roots.
Getting them through stub cache introduces bigger overhead.

These stubs are always present.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 10:42:32 +00:00
mstarzinger@chromium.org
e7da8b3eeb Pass sweeping mode as template parameter.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-27 07:52:34 +00:00
ricow@chromium.org
7810ff70f6 Make sure that we can't access hidden properties by installing accessors on Object.prototype.
BUG:chromium:97784
TEST=cctest/test-api
Review URL: http://codereview.chromium.org/8041020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 16:54:50 +00:00
mikhail.naganov@gmail.com
083fd2a454 Fix race in CpuProfiler::StopProcessor / CpuProfiler::TickSampleEvent.
R=mstarzinger@chromium.org
BUG=v8:1700
TEST=inspector/profiler/cpu-profiler-profiling-without-inspector.html

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 16:31:11 +00:00
mikhail.naganov@gmail.com
b5946d78c5 Add ObjectMoveEvent reporting for the Heap Profiler into MarkCompact.
R=vegorov@chromium.org
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 15:59:27 +00:00
ulan@chromium.org
16ae2551ae Search prototypes for accessor setters if interceptor returns empty value.
Extract the part of SetPropertyForResult that searches the prototype chain
for accessor setters into a separate function SetPropertyInPrototypes.
Call this function in SetPropertyPostInterceptor.

This should fix both optimized and unoptimized cases because
the cache stub for storing with interceptor calls the runtime system.

BUG=v8:1636

TEST=cctest/test-api.cc/EmptyInterceptorDoesNotShadowAccessors

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 14:54:57 +00:00
mikhail.naganov@gmail.com
c05354ecc4 Add v8::HeapGraphNode::GetHeapValue method.
This allows getting a heap object by a heap snapshot node for further
inspection. Very useful for objects from bindings that mostly have
getter-provided fields.

R=vegorov@google.com
BUG=webkit/61179
TEST=test-heap-profiler/GetHeapValue,GetHeapValueForDeletedObject

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 14:38:29 +00:00
lrn@chromium.org
d554977c4c Avoid using C++ STL include <limits>.
Review URL: http://codereview.chromium.org/8041019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 12:44:36 +00:00
kmillikin@chromium.org
c1b978c076 Fix a GC-safety issue in optimized code.
It's not safe to use an immediate heap object in generated unless we take
pains to ensure it's not in new space.  Continue using the caller's context
for inlined functions on all platforms except IA32.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 12:20:11 +00:00
jkummerow@chromium.org
0455aadbeb Add Crankshaft support for smi-only elements
Review URL: http://codereview.chromium.org/8002019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 12:09:04 +00:00