platform/upstream/v8.git
10 years agoFix handling of last position for lazy deopt on X64, ARM and MIPS.
titzer@chromium.org [Thu, 16 Jan 2014 11:58:06 +0000 (11:58 +0000)]
Fix handling of last position for lazy deopt on X64, ARM and MIPS.

BUG=
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/140773002

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

10 years agoDeopt marked code at safe deoptimization point when pretenuring.
hpayer@chromium.org [Thu, 16 Jan 2014 11:54:12 +0000 (11:54 +0000)]
Deopt marked code at safe deoptimization point when pretenuring.

BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org

Review URL: https://codereview.chromium.org/138033012

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

10 years agoUpdate load_rax and store_rax to support X32
haitao.feng@intel.com [Thu, 16 Jan 2014 11:35:30 +0000 (11:35 +0000)]
Update load_rax and store_rax to support X32

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/103843002

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

10 years agoRefactor DeoptimizeDependentCodeGroup.
hpayer@chromium.org [Thu, 16 Jan 2014 10:00:03 +0000 (10:00 +0000)]
Refactor DeoptimizeDependentCodeGroup.

BUG=
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/137783016

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

10 years agoFix ChangeLog entry.
machenbach@chromium.org [Thu, 16 Jan 2014 08:28:42 +0000 (08:28 +0000)]
Fix ChangeLog entry.

Remove an issue from the ChangeLog that was reverted.

BUG=
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/139383007

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

10 years agoPrepare push to trunk. Now working on version 3.24.18.
machenbach@chromium.org [Thu, 16 Jan 2014 08:22:37 +0000 (08:22 +0000)]
Prepare push to trunk.  Now working on version 3.24.18.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/140683002

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

10 years agoRemoved apiutils.h and related cleanup.
svenpanne@chromium.org [Thu, 16 Jan 2014 08:17:40 +0000 (08:17 +0000)]
Removed apiutils.h and related cleanup.

ExtensionConfiguration is just a simple container for extension names
(in a perfect world we would use vector<string> and range-based for
loops), and HandleScopeData was in the totally wrong place. Some
additional cleanup on the way, e.g. using the null pattern behind our
external API.

R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/139393002

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

10 years agoMIPS: Fix Win32 buildbreak (caused by overriden methods that have disappeared while...
palfia@homejinni.com [Thu, 16 Jan 2014 00:06:45 +0000 (00:06 +0000)]
MIPS: Fix Win32 buildbreak (caused by overriden methods that have disappeared while having the patch out for code review).

Port r18627 (c2ba7b25)

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/140203002

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

10 years agoMIPS: This is a preview of a first step towards unification of the hydrogen call...
palfia@homejinni.com [Wed, 15 Jan 2014 23:37:49 +0000 (23:37 +0000)]
MIPS: This is a preview of a first step towards unification of the hydrogen call machinery.

Port r18626 (d3368a4c)

Original commit message:
The change replaces CallNamed, CallKeyed, CallConstantFunction and CallKnownGlobal hydrogen instructions with two new instructions with a more lower level semantics:

1. CallJSFunction for direct calls of JSFunction objects (no
   argument adaptation)

2. CallWithDescriptor for calls of a given Code object according to
   the supplied calling convention.

Details:

CallJSFunction should be straightforward, the main difference from the
existing InvokeFunction instruction is the absence of argument adaptor
handling. (As a next step, we will replace InvokeFunction with an
equivalent hydrogen code.)

For CallWithDescriptor, the calling conventions are represented by a
tweaked version of CallStubInterfaceDescriptor. In addition to the
parameter-register mapping, we also define parameter-representation
mapping there. The CallWithDescriptor instruction has variable number of
parameters now - this required some simple tweaks in Lithium, which
assumed fixed number of arguments in some places.

The calling conventions used in the calls are initialized in the
CallDescriptors class (code-stubs.h, <arch>/code-stubs-<arch>.cc), and
they live in a new table in the Isolate class. I should say I am not
quite sure about Representation::Integer32() representation for some of
the params of ArgumentAdaptorCall - it is not clear to me wether the
params could not end up on the stack and thus confuse the GC.

The change also includes an earlier small change to argument adaptor
(https://codereview.chromium.org/98463007) that avoids passing a naked
pointer to the code entry as a parameter. I am sorry for packaging that
with an already biggish change.

Performance implications:

Locally, I see a small regression (.2% or so). It is hard to say where
exactly it comes from, but I do see inefficient call sequences to the
adaptor trampoline. For example:

;;; <@78,#24> constant-t
bf85aa515a     mov edi,0x5a51aa85          ;; debug: position 29
;;; <@72,#53> load-named-field
8b7717         mov esi,[edi+0x17]          ;; debug: position 195
;;; <@80,#51> constant-s
b902000000     mov ecx,0x2                 ;; debug: position 195
;;; <@81,#51> gap
894df0         mov [ebp+0xf0],ecx
;;; <@82,#103> constant-i
bb01000000     mov ebx,0x1
;;; <@84,#102> constant-i
b902000000     mov ecx,0x2
;;; <@85,#102> gap
89d8           mov eax,ebx
89cb           mov ebx,ecx
8b4df0         mov ecx,[ebp+0xf0]
;;; <@86,#58> call-with-descriptor
e8ef57fcff     call ArgumentsAdaptorTrampoline  (0x2d80e6e0)    ;; code: BUILTIN

Note the silly handling of ecx; the hydrogen for this code is:

0 4 s27 Constant 1  range:1_1 <|@
0 3 t30 Constant 0x5bc1aa85 <JS Function xyz (SharedFunctionInfo 0x5bc1a919)> type:object <|@
0 1 t36 LoadNamedField t30.[in-object]@24 <|@
0 1 t38 Constant 0x2300e6a1 <Code> <|@
0 1 i102 Constant 2  range:2_2 <|@
0 1 i103 Constant 1  range:1_1 <|@
0 2 t41 CallWithDescriptor t38 t30 t36 s27 i103 i102 #2 changes[*] <|@

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/137663005

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

10 years agoFix Win32 buildbreak (caused by overriden methods that have disappeared
jarin@chromium.org [Wed, 15 Jan 2014 17:51:09 +0000 (17:51 +0000)]
Fix Win32 buildbreak (caused by overriden methods that have disappeared
while having the patch out for code review).

R=danno@chromium.org
BUG=

Review URL: https://codereview.chromium.org/136303004

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

10 years agoThis is a preview of a first step towards unification of the hydrogen
jarin@chromium.org [Wed, 15 Jan 2014 17:00:35 +0000 (17:00 +0000)]
This is a preview of a first step towards unification of the hydrogen
call machinery.  The change replaces CallNamed, CallKeyed,
CallConstantFunction and CallKnownGlobal hydrogen instructions with two
new instructions with a more lower level semantics:

1. CallJSFunction for direct calls of JSFunction objects (no
   argument adaptation)

2. CallWithDescriptor for calls of a given Code object according to
   the supplied calling convention.

Details:

CallJSFunction should be straightforward, the main difference from the
existing InvokeFunction instruction is the absence of argument adaptor
handling. (As a next step, we will replace InvokeFunction with an
equivalent hydrogen code.)

For CallWithDescriptor, the calling conventions are represented by a
tweaked version of CallStubInterfaceDescriptor. In addition to the
parameter-register mapping, we also define parameter-representation
mapping there. The CallWithDescriptor instruction has variable number of
parameters now - this required some simple tweaks in Lithium, which
assumed fixed number of arguments in some places.

The calling conventions used in the calls are initialized in the
CallDescriptors class (code-stubs.h, <arch>/code-stubs-<arch>.cc), and
they live in a new table in the Isolate class. I should say I am not
quite sure about Representation::Integer32() representation for some of
the params of ArgumentAdaptorCall - it is not clear to me wether the
params could not end up on the stack and thus confuse the GC.

The change also includes an earlier small change to argument adaptor
(https://codereview.chromium.org/98463007) that avoids passing a naked
pointer to the code entry as a parameter. I am sorry for packaging that
with an already biggish change.

Performance implications:

Locally, I see a small regression (.2% or so). It is hard to say where
exactly it comes from, but I do see inefficient call sequences to the
adaptor trampoline. For example:

;;; <@78,#24> constant-t
bf85aa515a     mov edi,0x5a51aa85          ;; debug: position 29
;;; <@72,#53> load-named-field
8b7717         mov esi,[edi+0x17]          ;; debug: position 195
;;; <@80,#51> constant-s
b902000000     mov ecx,0x2                 ;; debug: position 195
;;; <@81,#51> gap
894df0         mov [ebp+0xf0],ecx
;;; <@82,#103> constant-i
bb01000000     mov ebx,0x1
;;; <@84,#102> constant-i
b902000000     mov ecx,0x2
;;; <@85,#102> gap
89d8           mov eax,ebx
89cb           mov ebx,ecx
8b4df0         mov ecx,[ebp+0xf0]
;;; <@86,#58> call-with-descriptor
e8ef57fcff     call ArgumentsAdaptorTrampoline  (0x2d80e6e0)    ;; code: BUILTIN

Note the silly handling of ecx; the hydrogen for this code is:

0 4 s27 Constant 1  range:1_1 <|@
0 3 t30 Constant 0x5bc1aa85 <JS Function xyz (SharedFunctionInfo 0x5bc1a919)> type:object <|@
0 1 t36 LoadNamedField t30.[in-object]@24 <|@
0 1 t38 Constant 0x2300e6a1 <Code> <|@
0 1 i102 Constant 2  range:2_2 <|@
0 1 i103 Constant 1  range:1_1 <|@
0 2 t41 CallWithDescriptor t38 t30 t36 s27 i103 i102 #2 changes[*] <|@

BUG=
R=verwaest@chromium.org, danno@chromium.org

Review URL: https://codereview.chromium.org/104663004

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

10 years agoRevert of Make it possible to compile d8 for the host toolset as well (https://codere...
jochen@chromium.org [Wed, 15 Jan 2014 15:58:28 +0000 (15:58 +0000)]
Revert of Make it possible to compile d8 for the host toolset as well (https://codereview.chromium.org/139493002/)

Reason for revert:
still doesn't work on arm

Original issue's description:
> Make it possible to compile d8 for the host toolset as well
>
> 2nd attempt. Use a different output path for the host d8.
>
> BUG=v8:1775
> R=machenbach@chromium.org
> LOG=n
>
> Committed: https://code.google.com/p/v8/source/detail?r=18621

R=machenbach@chromium.org
TBR=machenbach@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:1775

Review URL: https://codereview.chromium.org/139523003

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

10 years agoAdd tree control feature to auto-roll script.
machenbach@chromium.org [Wed, 15 Jan 2014 15:55:23 +0000 (15:55 +0000)]
Add tree control feature to auto-roll script.

This CL enables the auto-roll script to close and reopen the tree when pushing.

Modifies an auto-roll test so that the push-to-trunk part is executed in order to test the new tree control feature.

BUG=
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/130403006

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

10 years agoMake it possible to compile d8 for the host toolset as well
jochen@chromium.org [Wed, 15 Jan 2014 15:35:10 +0000 (15:35 +0000)]
Make it possible to compile d8 for the host toolset as well

2nd attempt. Use a different output path for the host d8.

BUG=v8:1775
R=machenbach@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/139493002

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

10 years agoRevert "Make it possible to compile d8 for the host toolset as well" and "For V8...
machenbach@chromium.org [Wed, 15 Jan 2014 14:24:32 +0000 (14:24 +0000)]
Revert "Make it possible to compile d8 for the host toolset as well" and "For V8, only build d8 on target"

This reverts commits r18618 and r18619 for breaking arm compilation.

BUG=
TBR=jochen@chromium.org

Review URL: https://codereview.chromium.org/139273004

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

10 years agoFor V8, only build d8 on target
jochen@chromium.org [Wed, 15 Jan 2014 14:00:29 +0000 (14:00 +0000)]
For V8, only build d8 on target

BUG=none
TBR=machenbach@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/139403002

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

10 years agoMake it possible to compile d8 for the host toolset as well
jochen@chromium.org [Wed, 15 Jan 2014 13:55:09 +0000 (13:55 +0000)]
Make it possible to compile d8 for the host toolset as well

BUG=v8:1775
R=jkummerow@chromium.org
LOG=y

Review URL: https://codereview.chromium.org/136763010

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

10 years agoMake cells pointing to JSObjects weak in optimized code.
ulan@chromium.org [Wed, 15 Jan 2014 11:42:19 +0000 (11:42 +0000)]
Make cells pointing to JSObjects weak in optimized code.

This is done similar to weak embedded objects in optimized code (r17102). The
reference from optimized code to a cell is treated weakly in marking visitors
if the cell points to a JSObject. After marking we iterate over all cells
embedded in optimized code. If a cell is not marked but its value is marked,
then we revive the cell by marking it. Otherwise, the cell value is dead, so
we mark the code for deoptimization.

BUG=v8:2073
TEST=cctest/test-heap/CellsInOptimizedCodeAreWeak
LOG=Y
R=hpayer@chromium.org, mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/117483002

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

10 years agoPrepare push to trunk. Now working on version 3.24.17.
machenbach@chromium.org [Wed, 15 Jan 2014 10:29:29 +0000 (10:29 +0000)]
Prepare push to trunk.  Now working on version 3.24.17.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/130143003

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

10 years agoRevert "Eliminatable CheckMaps replaced with if(true) or if(false)."
jkummerow@chromium.org [Wed, 15 Jan 2014 09:53:54 +0000 (09:53 +0000)]
Revert "Eliminatable CheckMaps replaced with if(true) or if(false)."

This reverts r18592 for breaking the GC stress bots.

R=machenbach@chromium.org

Review URL: https://codereview.chromium.org/137783011

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

10 years agoReland "Remove flags argument from EmitCallWithStub" and "MIPS: Remove flags argument...
machenbach@chromium.org [Wed, 15 Jan 2014 09:05:21 +0000 (09:05 +0000)]
Reland "Remove flags argument from EmitCallWithStub" and "MIPS: Remove flags argument from EmitCallWithStub.""

This reverts commit r18606 since suspected problems still remained.

BUG=
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/139013005

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

10 years agoRevert "Remove flags argument from EmitCallWithStub" and "MIPS: Remove flags argument...
machenbach@chromium.org [Wed, 15 Jan 2014 08:12:39 +0000 (08:12 +0000)]
Revert "Remove flags argument from EmitCallWithStub" and "MIPS: Remove flags argument from EmitCallWithStub."

This reverts commits r18598 and r18604 for breaking GC stress.

BUG=
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/133393003

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

10 years ago[Sheriff] Mark cpu profiler test as flaky on arm.
machenbach@chromium.org [Wed, 15 Jan 2014 08:06:02 +0000 (08:06 +0000)]
[Sheriff] Mark cpu profiler test as flaky on arm.

BUG=v8:2999
TBR=jkummerow@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/138183006

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

10 years agoMIPS: Remove flags argument from EmitCallWithStub.
plind44@gmail.com [Tue, 14 Jan 2014 20:02:01 +0000 (20:02 +0000)]
MIPS: Remove flags argument from EmitCallWithStub.

Port r18598 (606541b7).

BUG=
R=gergely@homejinni.com

Review URL: https://codereview.chromium.org/133293003

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

10 years agoMIPS: Remove HCallGlobal and merge uses with HCallNamed.
plind44@gmail.com [Tue, 14 Jan 2014 19:38:12 +0000 (19:38 +0000)]
MIPS: Remove HCallGlobal and merge uses with HCallNamed.

Port r18595 (957a383)

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/135053004

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years ago[Sheriff] Mark cpu profiler test as flaky on windows.
machenbach@chromium.org [Tue, 14 Jan 2014 19:26:39 +0000 (19:26 +0000)]
[Sheriff] Mark cpu profiler test as flaky on windows.

This is fails constantly on windows since the XP->Win7 bot upgrade.

BUG=v8:3055
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/133153006

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

10 years agoMIPS: Get rid of ContextualMode for call ICs.
plind44@gmail.com [Tue, 14 Jan 2014 18:33:36 +0000 (18:33 +0000)]
MIPS: Get rid of ContextualMode for call ICs.

Port r18594 (91e7cee)

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/133223003

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: Fix loading the global receiver.
plind44@gmail.com [Tue, 14 Jan 2014 18:26:31 +0000 (18:26 +0000)]
MIPS: Fix loading the global receiver.

Port r18593 (2162d45)

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/137273006

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: Remove CALL_AS_FUNCTION and CALL_AS_METHOD.
plind44@gmail.com [Tue, 14 Jan 2014 18:17:24 +0000 (18:17 +0000)]
MIPS: Remove CALL_AS_FUNCTION and CALL_AS_METHOD.

Port r18590 (566a7fd)

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/138553002

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoRemove flags argument from EmitCallWithStub
verwaest@chromium.org [Tue, 14 Jan 2014 17:31:31 +0000 (17:31 +0000)]
Remove flags argument from EmitCallWithStub

R=ishell@chromium.org

Review URL: https://codereview.chromium.org/135653003

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

10 years agoRevert "Polymorphic named calls optimized for the case of repetitive call targets...
ishell@chromium.org [Tue, 14 Jan 2014 16:37:09 +0000 (16:37 +0000)]
Revert "Polymorphic named calls optimized for the case of repetitive call targets." for now because it prevents better results for checkmap elimination.

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/138453002

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

10 years agoMIPS: Make the strict-mode calling convention for contextual calls the default one.
plind44@gmail.com [Tue, 14 Jan 2014 16:26:11 +0000 (16:26 +0000)]
MIPS: Make the strict-mode calling convention for contextual calls the default one.

Port r18581 (e5df8ae)

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/138383002

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoRemove HCallGlobal and merge uses with HCallNamed.
verwaest@chromium.org [Tue, 14 Jan 2014 16:15:52 +0000 (16:15 +0000)]
Remove HCallGlobal and merge uses with HCallNamed.

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/134333007

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

10 years agoGet rid of ContextualMode for call ICs.
verwaest@chromium.org [Tue, 14 Jan 2014 16:15:05 +0000 (16:15 +0000)]
Get rid of ContextualMode for call ICs.

BUG=
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/137083002

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

10 years agoFix loading the global receiver on ARM.
verwaest@chromium.org [Tue, 14 Jan 2014 16:13:18 +0000 (16:13 +0000)]
Fix loading the global receiver on ARM.

R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/138463002

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

10 years agoEliminatable CheckMaps replaced with if(true) or if(false).
ishell@chromium.org [Tue, 14 Jan 2014 16:06:40 +0000 (16:06 +0000)]
Eliminatable CheckMaps replaced with if(true) or if(false).

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/130613003

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

10 years agoClosed generator returns a completed object instead of throwing a error
mstarzinger@chromium.org [Tue, 14 Jan 2014 15:19:34 +0000 (15:19 +0000)]
Closed generator returns a completed object instead of throwing a error

From ES6 rev20 draft, closed generator returns completed object (the
value is `undefined` and done is `true`).
Since a error thrown in generator is propagated to the caller without
setting status of a thrown generator to "completed", once a generator is
suspended by a error, status becomes "executing" forever. This is filed
as v8:3096

LOG=N
BUG=v8:3097
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/136003003

Patch from Yusuke Suzuki <yusukesuzuki@chromium.org>.

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

10 years agoRemove CALL_AS_FUNCTION and CALL_AS_METHOD.
verwaest@chromium.org [Tue, 14 Jan 2014 14:36:24 +0000 (14:36 +0000)]
Remove CALL_AS_FUNCTION and CALL_AS_METHOD.

BUG=
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/136403005

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

10 years agoAnnotate mapped memory regions for LeakSanitizer.
mstarzinger@chromium.org [Tue, 14 Jan 2014 14:00:29 +0000 (14:00 +0000)]
Annotate mapped memory regions for LeakSanitizer.

Add in-code annotations for LeakSanitizer to treat any memory allocated through
the VirtualMemory class as a source of live pointers. This change eliminates
false positive leak reports when running Chromium under LSan.

BUG=chromium:328552
R=mstarzinger@chromium.org
LOG=Y

Review URL: https://codereview.chromium.org/137313002

Patch from Sergey Matveev <earthdok@chromium.org>.

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

10 years agoFix test after r18586
jkummerow@chromium.org [Tue, 14 Jan 2014 14:00:10 +0000 (14:00 +0000)]
Fix test after r18586

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/138063003

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

10 years agoDelete useless --loop-weight flag
jkummerow@chromium.org [Tue, 14 Jan 2014 13:45:43 +0000 (13:45 +0000)]
Delete useless --loop-weight flag

killing a static variable in the process.

BUG=chromium:333871
LOG=N
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/131223009

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

10 years agoTurn Runtime_MigrateInstance into Runtime_TryMigrateInstance
jkummerow@chromium.org [Tue, 14 Jan 2014 13:41:09 +0000 (13:41 +0000)]
Turn Runtime_MigrateInstance into Runtime_TryMigrateInstance

because it must not cause lazy deopts because it is called from deferred code that cannot handle lazy deopts.

Hat tip to Ben for doing most of the debugging work, and to Toon for writing the regression test.

BUG=chromium:315252
LOG=Y
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/131243003

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

10 years agoFix typo in ARM macro assembler Pop() method.
bmeurer@chromium.org [Tue, 14 Jan 2014 12:47:17 +0000 (12:47 +0000)]
Fix typo in ARM macro assembler Pop() method.

R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/138163002

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

10 years agoMake the strict-mode calling convention for contextual calls the default one.
verwaest@chromium.org [Tue, 14 Jan 2014 12:04:10 +0000 (12:04 +0000)]
Make the strict-mode calling convention for contextual calls the default one.

BUG=
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/131663003

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

10 years agoFix tree check for push-to-trunk.
machenbach@chromium.org [Tue, 14 Jan 2014 11:49:09 +0000 (11:49 +0000)]
Fix tree check for push-to-trunk.

This is a work-around simulating a --bypass-tree-check.

BUG=
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/136793005

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

10 years agoUse std:: on symbols declared in C++-style C headers.
bmeurer@chromium.org [Tue, 14 Jan 2014 09:57:05 +0000 (09:57 +0000)]
Use std:: on symbols declared in C++-style C headers.

Some libraries (e.g. Dinkumware) perform strict checks on whether
the symbols defined in classic C library headers (e.g. <stdio.h>),
or in C++-style C library headers (e.g. <cmath>) are used correctly
(respectively, in the global namespace, or in namespace std).

BUG=
R=danno@chromium.org

Review URL: https://codereview.chromium.org/121303005

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

10 years agoVarious API-related simplifications.
svenpanne@chromium.org [Tue, 14 Jan 2014 09:37:45 +0000 (09:37 +0000)]
Various API-related simplifications.

   * Simplified default fatal error handler.

   * Simplified Context::Exit and friends.

   * Inline API_ENTRY_CHECK.

R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/137963002

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

10 years agoPrepare push to trunk. Now working on version 3.24.16.
machenbach@chromium.org [Tue, 14 Jan 2014 08:13:06 +0000 (08:13 +0000)]
Prepare push to trunk.  Now working on version 3.24.16.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/136873003

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

10 years ago[Sheriff] Disable allocation site pretenuring due to a failing nosnap test.
machenbach@chromium.org [Tue, 14 Jan 2014 07:59:09 +0000 (07:59 +0000)]
[Sheriff] Disable allocation site pretenuring due to a failing nosnap test.

BUG=
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/137803005

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

10 years agoEnable allocation site pretenuring.
hpayer@chromium.org [Mon, 13 Jan 2014 17:11:36 +0000 (17:11 +0000)]
Enable allocation site pretenuring.

Disable elements-kind.js unit test temporarily on gc stress builders.

BUG=
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/136813002

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

10 years agoHandlify AllocationSite AddDependentCompilationInfo.
hpayer@chromium.org [Mon, 13 Jan 2014 14:54:33 +0000 (14:54 +0000)]
Handlify AllocationSite AddDependentCompilationInfo.

BUG=
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/136703002

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

10 years agoDemystified floating point ABI function names.
svenpanne@chromium.org [Mon, 13 Jan 2014 13:25:38 +0000 (13:25 +0000)]
Demystified floating point ABI function names.

This unifies the names used for floating point ABI abstraction across
ARM and MIPS and makes them more comprehensible. Note that in the
underlying implementation, ARM doesn't care about the argument/result
distinction, while MIPS does, but we want to abstract from that, too.

Nuked an unused related function on the way.

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/136613003

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

10 years agoInline AllocationMemento::FindForHeapObject() into the two call sites.
bmeurer@chromium.org [Mon, 13 Jan 2014 13:11:46 +0000 (13:11 +0000)]
Inline AllocationMemento::FindForHeapObject() into the two call sites.

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/136633002

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

10 years agoUse unsigned integer arithmetic in Zone::NewExpand.
dslomov@chromium.org [Mon, 13 Jan 2014 13:00:09 +0000 (13:00 +0000)]
Use unsigned integer arithmetic in Zone::NewExpand.

BUG=328202
R=jkummerow@chromium.org
LOG=N

Review URL: https://codereview.chromium.org/108783005

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

10 years agoIntroduce an API mirroring the gc extension
jochen@chromium.org [Mon, 13 Jan 2014 12:03:31 +0000 (12:03 +0000)]
Introduce an API mirroring the gc extension

BUG=none
R=mstarzinger@chromium.org, svenpanne@chromium.org
LOG=y

Review URL: https://codereview.chromium.org/131443008

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

10 years agoFix r18556; tests were missing handlescopes.
marja@chromium.org [Mon, 13 Jan 2014 11:15:06 +0000 (11:15 +0000)]
Fix r18556; tests were missing handlescopes.

BUG=
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/133763005

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

10 years agoIntroduce kGCCallbackForced flag.
vegorov@chromium.org [Mon, 13 Jan 2014 10:57:49 +0000 (10:57 +0000)]
Introduce kGCCallbackForced flag.

This flag will be passed to GC prologue/epilogue callbacks if GC was forced through GC extension.

BUG=
R=dcarney@chromium.org, mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/104023011

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

10 years agoRemove ScriptData::PreCompile which takes const char*.
marja@chromium.org [Mon, 13 Jan 2014 10:51:40 +0000 (10:51 +0000)]
Remove ScriptData::PreCompile which takes const char*.

The version taking a Handle should be used instead.

It's not used by Chromium and complicates the ongoing lexer work.

R=svenpanne@chromium.org
BUG=

Review URL: https://codereview.chromium.org/136413003

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

10 years agoMore efficient use of space in AllocationSite.
mvstanton@chromium.org [Mon, 13 Jan 2014 10:28:01 +0000 (10:28 +0000)]
More efficient use of space in AllocationSite.

We can eliminate one word from the object by sharing the pretenuring decision and the found memento count.

R=bmeurer@chromium.org, hpayer@chromium.org

Review URL: https://codereview.chromium.org/132063004

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

10 years agoVarious ApiCheck-related cleanups.
svenpanne@chromium.org [Mon, 13 Jan 2014 09:42:23 +0000 (09:42 +0000)]
Various ApiCheck-related cleanups.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/130933003

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

10 years ago"dead" and "osr" block flags added to trace output for unreachable and osr entry...
ishell@chromium.org [Mon, 13 Jan 2014 08:45:26 +0000 (08:45 +0000)]
"dead" and "osr" block flags added to trace output for unreachable and osr entry blocks respectively.

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/135943004

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

10 years ago[Sheriff] Revert "Turn on allocation site pretenuring."
machenbach@chromium.org [Mon, 13 Jan 2014 08:15:56 +0000 (08:15 +0000)]
[Sheriff] Revert "Turn on allocation site pretenuring."

This reverts commit r18547 for breaking the GC stress builders.

BUG=
TBR=hpayer@chromium.org

Review URL: https://codereview.chromium.org/136323002

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

10 years agoFix of Hydrogen environment building for function "apply" calls.
jarin@chromium.org [Sat, 11 Jan 2014 13:59:04 +0000 (13:59 +0000)]
Fix of Hydrogen environment building for function "apply" calls.

BUG=
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/133773002

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

10 years agoTurn on allocation site pretenuring.
hpayer@chromium.org [Fri, 10 Jan 2014 20:31:03 +0000 (20:31 +0000)]
Turn on allocation site pretenuring.

BUG=
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/133993006

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

10 years ago[Sheriff] Revert "Turn on allocation site pretenuring."
rossberg@chromium.org [Fri, 10 Jan 2014 15:35:19 +0000 (15:35 +0000)]
[Sheriff] Revert "Turn on allocation site pretenuring."

This reverts commit d57b17889a300d0978f8ed104d1274c9838904a6.

TBR=mvstanton@chromium.org
BUG=

Review URL: https://codereview.chromium.org/134113002

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

10 years agoRevert "Implement zone-allocated types"
rossberg@chromium.org [Fri, 10 Jan 2014 15:33:37 +0000 (15:33 +0000)]
Revert "Implement zone-allocated types"

This reverts commit 4308974b16d1ee67d9f64d797c5ea64ffaab51df.

TBR=machenbach@chromium.org
BUG=

Review URL: https://codereview.chromium.org/133353005

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

10 years agoRevert "Add debug output to presubmit script for investigating tree check behavior...
machenbach@chromium.org [Fri, 10 Jan 2014 15:17:49 +0000 (15:17 +0000)]
Revert "Add debug output to presubmit script for investigating tree check behavior." and "Add more temporary debugging output to PRESUBMIT.py".

This reverts commits r18538 and r18528, since the investigated problem was found.

BUG=
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/133993002

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

10 years agoImplement zone-allocated types
rossberg@chromium.org [Fri, 10 Jan 2014 14:43:48 +0000 (14:43 +0000)]
Implement zone-allocated types

More template magic FTW.

R=titzer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/103743004

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

10 years agoTurn on allocation site pretenuring.
mvstanton@chromium.org [Fri, 10 Jan 2014 14:35:58 +0000 (14:35 +0000)]
Turn on allocation site pretenuring.

BUG=
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/133883002

Patch from Hannes Payer <hpayer@chromium.org>.

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

10 years agoPrepare push to trunk. Now working on version 3.24.15.
machenbach@chromium.org [Fri, 10 Jan 2014 14:15:34 +0000 (14:15 +0000)]
Prepare push to trunk.  Now working on version 3.24.15.

R=rossberg@chromium.org
TBR=rossberg@chromium.org

Review URL: https://codereview.chromium.org/133773003

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

10 years agoAdd more temporary debugging output to PRESUBMIT.py
jkummerow@chromium.org [Fri, 10 Jan 2014 13:48:43 +0000 (13:48 +0000)]
Add more temporary debugging output to PRESUBMIT.py

R=machenbach@chromium.org

Review URL: https://codereview.chromium.org/133863002

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

10 years agoCheck elimination enabled.
ishell@chromium.org [Fri, 10 Jan 2014 13:28:26 +0000 (13:28 +0000)]
Check elimination enabled.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/132143010

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

10 years agoWork around VS template problem
rossberg@chromium.org [Fri, 10 Jan 2014 12:55:02 +0000 (12:55 +0000)]
Work around VS template problem

R=machenbach@chromium.org
BUG=

Review URL: https://codereview.chromium.org/133533005

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

10 years agoRetry "Templatise type representation" after making clang happy
rossberg@chromium.org [Fri, 10 Jan 2014 12:19:01 +0000 (12:19 +0000)]
Retry "Templatise type representation" after making clang happy

The only thing different now is line types.h:208/236, which had a static_cast<Type*> before.

R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/133683002

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

10 years agoAllocation site pretenuring.
hpayer@chromium.org [Fri, 10 Jan 2014 12:11:54 +0000 (12:11 +0000)]
Allocation site pretenuring.

Pretenuring decisions are made based on allocation site lifetime statistics.

BUG=
R=mstarzinger@chromium.org, mvstanton@chromium.org

Review URL: https://codereview.chromium.org/96783002

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

10 years agoRevert "Temporarily disable performance.now() in the d8 shell."
bmeurer@chromium.org [Fri, 10 Jan 2014 12:07:29 +0000 (12:07 +0000)]
Revert "Temporarily disable performance.now() in the d8 shell."

This reverts commit r18529.

R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/133523003

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

10 years agoTemporarily disable performance.now() in the d8 shell.
bmeurer@chromium.org [Fri, 10 Jan 2014 11:17:57 +0000 (11:17 +0000)]
Temporarily disable performance.now() in the d8 shell.

Review URL: https://codereview.chromium.org/133663002

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

10 years agoAdd debug output to presubmit script for investigating tree check behavior.
machenbach@chromium.org [Fri, 10 Jan 2014 10:50:59 +0000 (10:50 +0000)]
Add debug output to presubmit script for investigating tree check behavior.

BUG=
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/133603002

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

10 years agoFixed alignment issues of ProfilerEventsProcessor.
svenpanne@chromium.org [Fri, 10 Jan 2014 10:39:47 +0000 (10:39 +0000)]
Fixed alignment issues of ProfilerEventsProcessor.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/131393002

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

10 years ago[Sheriff] Make flaky cpu profiler test.
machenbach@chromium.org [Fri, 10 Jan 2014 09:02:24 +0000 (09:02 +0000)]
[Sheriff] Make flaky cpu profiler test.

BUG=v8:2999
TBR=yurys@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/133443003

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

10 years ago[Sheriff] Revert "Templatise type representation" and "Fix Mac warnings".
machenbach@chromium.org [Thu, 9 Jan 2014 19:52:15 +0000 (19:52 +0000)]
[Sheriff] Revert "Templatise type representation" and "Fix Mac warnings".

This reverts commit r18521 and r18522 for breaking mac and win builders.

BUG=
TBR=rossberg@chromium.org

Review URL: https://codereview.chromium.org/132493002

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

10 years agoMIPS: Implement sqrt in inline assembly.
plind44@gmail.com [Thu, 9 Jan 2014 19:00:06 +0000 (19:00 +0000)]
MIPS: Implement sqrt in inline assembly.

Port r18506 (c7b2885)

Original commit message:
Call VSQRT directly to avoid the tiniest (1ulp) precision
error that occurs in the system-supplied sqrt on QNX/ARM.

All precision tests in SunSpider are now passing on this platform.

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/131263003

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoFix Mac warnings
rossberg@chromium.org [Thu, 9 Jan 2014 17:37:48 +0000 (17:37 +0000)]
Fix Mac warnings

R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/132263002

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

10 years agoTemplatise type representation
rossberg@chromium.org [Thu, 9 Jan 2014 17:12:48 +0000 (17:12 +0000)]
Templatise type representation

This is to support both heap- and zone-allocated types in the future (the latter not yet implemented).

Also, handlify the type API some more.

R=titzer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/107933005

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

10 years agoES6: Add Object.getOwnPropertySymbols
rossberg@chromium.org [Thu, 9 Jan 2014 15:57:30 +0000 (15:57 +0000)]
ES6: Add Object.getOwnPropertySymbols

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.getownpropertysymbols

This allows you to get the symbols used as property keys for an object.

  var object = {};
  var sym = Symbol();
  object[sym] = 42;
  assert(Object.getOwnPropertySymbols(object)[0] === sym);

This is only available with --harmony-symbols

BUG=v8:3049
R=rossberg@chromium.org, rossberg
LOG=Y

Review URL: https://codereview.chromium.org/108083005

Patch from Erik Arvidsson <arv@chromium.org>.

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

10 years agoSkip back edge creation for "do ... while(false)" loops
jkummerow@chromium.org [Thu, 9 Jan 2014 15:20:25 +0000 (15:20 +0000)]
Skip back edge creation for "do ... while(false)" loops

Drive-by fix: Fix disassembling "prefetch" instruction on ia32

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/131733002

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

10 years agoArray constructor can be simplified by loading context from JSFunction.
mvstanton@chromium.org [Thu, 9 Jan 2014 15:07:23 +0000 (15:07 +0000)]
Array constructor can be simplified by loading context from JSFunction.

BUG=
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/128683002

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

10 years agoFix d8 DebugMessageDetails and DebugCommandToJSONRequest
jochen@chromium.org [Thu, 9 Jan 2014 13:57:09 +0000 (13:57 +0000)]
Fix d8 DebugMessageDetails and DebugCommandToJSONRequest

They both returned zapped handles. Use an EscapableHandleScope and
properly return handles

BUG=none
R=jkummerow@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/131443005

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

10 years agoBe sure to also register the BinaryOpWithAllocationSiteStub.
bmeurer@chromium.org [Thu, 9 Jan 2014 13:22:18 +0000 (13:22 +0000)]
Be sure to also register the BinaryOpWithAllocationSiteStub.

R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/131483003

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

10 years agoPromises: some adaptations to spec
rossberg@chromium.org [Thu, 9 Jan 2014 13:00:56 +0000 (13:00 +0000)]
Promises: some adaptations to spec

- Rename Promise.{resolved,rejected,deferred} to Promise.{resolve,reject,defer}
- Rename Promise.one to Promise.race
- Make all failures asynchronous, EXCEPT type errors for resolver
- Disallow non-construct call to Promise constructor
- Don't make combinators go through public this.defer

Also, don't bother using IsCallable.

R=dslomov@chromium.org, yhirano@chromium.org
BUG=

Review URL: https://codereview.chromium.org/99573002

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

10 years agoFix invalid debug code assertion on x64.
bmeurer@chromium.org [Thu, 9 Jan 2014 12:41:05 +0000 (12:41 +0000)]
Fix invalid debug code assertion on x64.

R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/131323003

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

10 years agoPrepare push to trunk. Now working on version 3.24.14.
machenbach@chromium.org [Thu, 9 Jan 2014 10:39:27 +0000 (10:39 +0000)]
Prepare push to trunk.  Now working on version 3.24.14.

R=rossberg@chromium.org
TBR=rossberg@chromium.org

Review URL: https://codereview.chromium.org/131413002

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

10 years agoAdd Isolate parameter to HandleScope::NumberOfHandles.
svenpanne@chromium.org [Thu, 9 Jan 2014 10:37:15 +0000 (10:37 +0000)]
Add Isolate parameter to HandleScope::NumberOfHandles.

LOG=y
BUG=324225
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/128233002

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

10 years agoFunctionLiteral has work to do in the typing phase.
mvstanton@chromium.org [Thu, 9 Jan 2014 09:00:19 +0000 (09:00 +0000)]
FunctionLiteral has work to do in the typing phase.

In crankshaft, we searched un-optimized code for a SharedFunctionInfo
that matches the FunctionLiteral we are processing. Ideally, this
work should be done in the typing phase.

R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/104883006

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

10 years agoConvert some ifdefs to use their V8_OS_* macros equivalents.
bmeurer@chromium.org [Thu, 9 Jan 2014 07:57:11 +0000 (07:57 +0000)]
Convert some ifdefs to use their V8_OS_* macros equivalents.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/127643002

Patch from Thiago Farina <tfarina@chromium.org>.

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

10 years agoARM: Implement sqrt in inline assembly.
bmeurer@chromium.org [Thu, 9 Jan 2014 07:47:58 +0000 (07:47 +0000)]
ARM: Implement sqrt in inline assembly.

Call VSQRT directly to avoid the tiniest (1ulp) precision
error that occurs in the system-supplied sqrt on QNX/ARM.

All precision tests in SunSpider are now passing on this platform.

BUG=
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/98363010

Patch from Cosmin Truta <ctruta@gmail.com>.

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

10 years agoMinor Object.observe optimizations
rafaelw@chromium.org [Wed, 8 Jan 2014 20:25:08 +0000 (20:25 +0000)]
Minor Object.observe optimizations

This patch includes the follow two minor optimizations:

1) When Object.unobserve-ing, instead of deleting from changeObservers, set the index position to null, and null-check when iterating elsewhere
2) Isolate creation of null-proto objects inside a utility function

These former (deleting) was clearly showing up in d8 --prof traces and the later was preventing optimization of containing functions because of non-standard literal. Combined, on MDV construction/teardown benchmark, saves about 10%.

Note that this patch also cleans up retrieving objectInfo inside a utility function.

R=rossberg@chromium.org, rossberg
BUG=

Review URL: https://codereview.chromium.org/123523002

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

10 years agoRoll gyp 1830:1831
jochen@chromium.org [Wed, 8 Jan 2014 15:54:46 +0000 (15:54 +0000)]
Roll gyp 1830:1831

1831 - Don't try to match mixed source/dir gyp order on MSVS prior to 2010

BUG=none
LOG=n
R=machenbach@chromium.org

Review URL: https://codereview.chromium.org/128483002

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

10 years agoRemoved a few internal uses of Isolate::Current.
svenpanne@chromium.org [Wed, 8 Jan 2014 14:44:30 +0000 (14:44 +0000)]
Removed a few internal uses of Isolate::Current.

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/128313002

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

10 years agoAdd 'LOG=N' line to merge-to-branch.sh to avoid presubmit errors when merging to...
ulan@chromium.org [Wed, 8 Jan 2014 14:04:14 +0000 (14:04 +0000)]
Add 'LOG=N' line to merge-to-branch.sh to avoid presubmit errors when merging to branch.

R=machenbach@chromium.org

Review URL: https://codereview.chromium.org/128223002

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