fschneider@chromium.org [Fri, 26 Feb 2010 09:32:48 +0000 (09:32 +0000)]
Inlining a few virtual frame functions.
Introducing a virtual-frame-inl.h file containing some platform-independent
virtual frame function which are small enough to be inlined.
Removed unnecessary #include of virtual-frame.h from register-allocator-inl.h
and added the necessary explicit includes in a number of files.
Review URL: http://codereview.chromium.org/660104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3962
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 26 Feb 2010 09:23:15 +0000 (09:23 +0000)]
Add test of internal fields on global objects. This test currently
fails on the partial snapshots branch.
Review URL: http://codereview.chromium.org/660169
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3961
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Fri, 26 Feb 2010 08:27:20 +0000 (08:27 +0000)]
Add information about time spent in external callback to
traces produces with --trace-gc.
Review URL: http://codereview.chromium.org/661170
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3960
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 25 Feb 2010 18:26:36 +0000 (18:26 +0000)]
Fix presubmit error.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/661090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3957
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 25 Feb 2010 18:19:12 +0000 (18:19 +0000)]
Fix the mac debug build. Apparently g++ on Mac cannot figure out that there
is a return in each branch of an if-else.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/661088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3956
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 25 Feb 2010 18:04:25 +0000 (18:04 +0000)]
Change KeyedStoreIC interface to take value, key, and receiver in registers.
Review URL: http://codereview.chromium.org/608031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3955
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
oleg@chromium.org [Thu, 25 Feb 2010 16:46:37 +0000 (16:46 +0000)]
Optimize three Number2Integer functions in runtime.cc: remove the check that was already done in JavaScript, add simpler code in case we are getting a SMI
result.
Code review: http://codereview.chromium.org/660084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3954
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 25 Feb 2010 15:43:27 +0000 (15:43 +0000)]
Revert r3952
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/660086
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3953
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 25 Feb 2010 14:24:44 +0000 (14:24 +0000)]
Refactor the code cache to handle large number of properties on the global object.
A separate object type for the code cache have been added. This object has two different code caches. The first one (default_cache) is a fixed array organized in the same way as the as the code cache was before. The second cache (global_access_cache) is for code stubs to access the global object. This cache is organized as a hash table taking the property name and code flags as the key.
The reason for separating the global access stubs into a hash table representation is that the number of these is not bounded in the same was as the other types.
BUG=613
Review URL: http://codereview.chromium.org/652119
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3952
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Thu, 25 Feb 2010 13:06:05 +0000 (13:06 +0000)]
Adding 'static const' for arg numbers used with CallCFunction.
Review URL: http://codereview.chromium.org/660078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3950
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 25 Feb 2010 12:49:23 +0000 (12:49 +0000)]
Improve string runtime compare performance for flat strings.
Review URL: http://codereview.chromium.org/650058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3949
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 25 Feb 2010 12:28:35 +0000 (12:28 +0000)]
Fix test for overflow in memory allocation Failure payload.
It bailed out too early, and could give a DEBUG assertion failure due
to right shift being artihmetic. Changed values to unsigned to be safe.
Review URL: http://codereview.chromium.org/661076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3948
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Thu, 25 Feb 2010 12:18:55 +0000 (12:18 +0000)]
AllignFrame/CallCFuntion moved from regexp-macro-assembler-ia32 to macro-assembler-ia32 (like in x64 version).
Review URL: http://codereview.chromium.org/657080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3947
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 25 Feb 2010 08:27:07 +0000 (08:27 +0000)]
Revert pax change as it does not work with older versions of scons.
Review URL: http://codereview.chromium.org/661071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3946
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Wed, 24 Feb 2010 19:59:09 +0000 (19:59 +0000)]
Implement BlindReference object and provide couple of liveedit-specific structures
Review URL: http://codereview.chromium.org/650127
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3943
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 24 Feb 2010 19:26:10 +0000 (19:26 +0000)]
Fix miss in smi check when doing fast api call.
BUG=http://crbug.com/36604
Review URL: http://codereview.chromium.org/660004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3942
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 24 Feb 2010 19:14:21 +0000 (19:14 +0000)]
Fix uninitialized memory read in CallOptimization.
BUG=http://crbug.com/36602
Review URL: http://codereview.chromium.org/657081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3941
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 24 Feb 2010 18:50:56 +0000 (18:50 +0000)]
Land change to allow building on Gentoo Hardened Linux.
Codereview URL: http://codereview.chromium.org/659002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3940
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 24 Feb 2010 14:02:20 +0000 (14:02 +0000)]
Don't treat this as a trivial expression.
This caused some regressions in Chromium.
BUG=http://crbug.com/36604
Review URL: http://codereview.chromium.org/652228
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3939
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Wed, 24 Feb 2010 08:33:51 +0000 (08:33 +0000)]
Review URL: http://codereview.chromium.org/652118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3937
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 24 Feb 2010 08:30:12 +0000 (08:30 +0000)]
Remove inheritance of chromium flags
Review URL: http://codereview.chromium.org/570022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3936
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Feb 2010 15:22:48 +0000 (15:22 +0000)]
Add the ability to compile with profiler guided optimizations on Windows
It is now possible to experiment with profiler guided optimizations when building V8. First build an instrumented sample shell:
> scons pgo=instrument sample=shell
Then run the JavaScript code to optimize for using that sample shell. Finally build an optimized sample shell.
> scons pgo=optimize sample=shell
Currently this does not work when building V8 as a DLL due to scons deleting v8.exp prior to the pgo=optimize step.
Due to a bug in Visual Studio (seen in version 2008) the function MessageDispatchHelperThread::Run() in debug.cc needs to be empty for this to work.
Review URL: http://codereview.chromium.org/652114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3934
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Tue, 23 Feb 2010 12:52:29 +0000 (12:52 +0000)]
Typo fixed.
Review URL: http://codereview.chromium.org/650047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3933
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 23 Feb 2010 12:40:36 +0000 (12:40 +0000)]
Add comment to generated code that says which code generator compiled it.
Review URL: http://codereview.chromium.org/652110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3932
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 23 Feb 2010 10:29:02 +0000 (10:29 +0000)]
IA32: Native access to TranscendentalCache for sin/cos.
Review URL: http://codereview.chromium.org/652041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3929
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 23 Feb 2010 10:22:07 +0000 (10:22 +0000)]
Prepare push to trunk. Now working on 2.1.3.
Review URL: http://codereview.chromium.org/654003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3928
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 22 Feb 2010 15:42:23 +0000 (15:42 +0000)]
Fix reliability crash caused by wrong assert.
These two asserts in ComputeEntryFrame are wrong since the
virtual frame already knows how to deal with the number type
information of copy elements: We do not store type
information with copy elements. Instead the backing element
contains the type information.
Review URL: http://codereview.chromium.org/652044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3927
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Feb 2010 11:42:46 +0000 (11:42 +0000)]
Add integer casts to make v8 compile without warnings on 64-bit Visual Studio
Review URL: http://codereview.chromium.org/650140
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3925
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Feb 2010 11:41:52 +0000 (11:41 +0000)]
Declare register names as constants in assembler-x64.h. Fix for issue 615.
Review URL: http://codereview.chromium.org/650136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3924
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 22 Feb 2010 10:04:22 +0000 (10:04 +0000)]
Consistently return failure if the stub cache cannot deliver a code object
Some functions of the stub cache returned undefined if a code stub could not be generated. However the clients of these functions only cehcks for failure. Now all these functions return a failire object if no code stub can be made available
Review URL: http://codereview.chromium.org/652039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3923
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 19 Feb 2010 17:11:47 +0000 (17:11 +0000)]
Land patch by Oleg Eterevsky (oleg@chromium.org).
Original review: http://codereview.chromium.org/646010/show
Change the implementation of lastIndexOf method of String. Convert the
strings in question to Vector<char> or Vector<uc16> and execute simple
search algorithm on them.
The difference in speed on 500k character string is about 10x.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/650036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3922
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 19 Feb 2010 15:04:16 +0000 (15:04 +0000)]
Improve stores to global variables.
Review URL: http://codereview.chromium.org/650028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3921
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 19 Feb 2010 14:52:39 +0000 (14:52 +0000)]
Begin using a list of bailouts instead of a singleton in the fast code generator.
A list of bailout descriptions is kept in the CompilationInfo
structure that is shared between the primary and secondary code
generators. The primary adds a description to the list for each
bailout position.
Responsibility for binding labels is moved from the primary to the
secondary code generator. All the labels still target the start of the
secondary code and the compilation state of the primary is still
ignored.
Move the compilation mode flag to the CompilationInfo.
Review URL: http://codereview.chromium.org/651031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3920
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Fri, 19 Feb 2010 14:33:08 +0000 (14:33 +0000)]
Add maxStrinLength argument to debugger requests
Review URL: http://codereview.chromium.org/647022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3919
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 19 Feb 2010 13:27:43 +0000 (13:27 +0000)]
Added test for bug 619 - we should move this to object-define-property when the bug has been corrected.
Review URL: http://codereview.chromium.org/651028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3918
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 19 Feb 2010 13:07:37 +0000 (13:07 +0000)]
Some string optimizations:
* Inlined checks for strings and regexps.
* Rewrote split for the non-regexp case.
* Implemented one-char case for lastIndexOf.
Review URL: http://codereview.chromium.org/596122
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3917
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 19 Feb 2010 12:16:00 +0000 (12:16 +0000)]
Removed asserts on attributes when setting elements. Will file a bug on not handling elements correctly when using Object.defineProperty
Review URL: http://codereview.chromium.org/651025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3914
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 19 Feb 2010 12:10:46 +0000 (12:10 +0000)]
Add missing break in GetPropertyWithFailedAccessCheck. This break has
been missing for a long time but the fallthrough to the default case
used to break. Now the default case should be unreachable and the
fallthrough therefore causes assertion failures.
Review URL: http://codereview.chromium.org/651024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3913
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 19 Feb 2010 11:39:12 +0000 (11:39 +0000)]
Reorder code in fast-codegen-ia32.cc.
Reorder code so that helper functions and simple accessors come before
all the visit function.
Review URL: http://codereview.chromium.org/650026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3912
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 19 Feb 2010 10:05:33 +0000 (10:05 +0000)]
Improve load of global variables.
Review URL: http://codereview.chromium.org/651019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3911
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 19 Feb 2010 10:02:04 +0000 (10:02 +0000)]
Make class BitField able to use 32 bits of a uint32.
Although algorithmically correct, the compiler would not allow to instantiate
a BitField that uses all 32 bits without warnings about a too large shift
count. As a consequence we were limited to 31 bit values when using BitField.
This happened when instantiating a bitfield BitField<T, shift, size> with
[shift=0, size=32] or [shift=31, size=1] or more general any
[shift=X, size=32-X]
As side-effect of the new implementation the compiler now warns if we ever
try instantiating a bitfield with size 0.
Review URL: http://codereview.chromium.org/606063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3910
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 19 Feb 2010 09:59:47 +0000 (09:59 +0000)]
Fix missing includes.
TBR=kmillikin@chromium.org,
Review URL: http://codereview.chromium.org/650025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3909
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 19 Feb 2010 09:17:37 +0000 (09:17 +0000)]
Temporarily move the ia32 fast code generator into the platform-specific directory.
This allows us to make changes to one platform without affecting the others.
Review URL: http://codereview.chromium.org/646019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3907
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 19 Feb 2010 09:01:31 +0000 (09:01 +0000)]
Introduce 'trivial' expressions, use them for this property assignments.
Add a (currently) syntactic predicate to AST expression nodes telling
whether they are 'trivial'. Trivial expressions have no side effects,
do not require storage to be allocated for them, and can be evaluated
out of order (because their value does not change between when they
are visited by the code generator as expressions in the AST and when
it is consumed).
Mark 'this' and literals as trivial. Allow them to be pushed on the
virtual frame. Make use of them to push 'this' more lazily in this
property assignments.
Review URL: http://codereview.chromium.org/647018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3906
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 19 Feb 2010 08:19:20 +0000 (08:19 +0000)]
Prepare push to trunk. Now working on version 2.1.2.
Review URL: http://codereview.chromium.org/651016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3903
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 18 Feb 2010 17:30:32 +0000 (17:30 +0000)]
Make setting length on arrays faster.
Review URL: http://codereview.chromium.org/647013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3902
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 18 Feb 2010 15:10:35 +0000 (15:10 +0000)]
Remove the LookupResult IsValid method because it is confusing.
Replaced IsValid by IsPropertyOrTransition and used IsProperty in most
of the places where IsValid was used before. Most of the time when
inspecting a lookup result we really want to know if there is a real
property present. Only for stores are we interested in transitions.
BUG=http://crbug.com/20104
TEST=cctest/test-api/NamedInterceptorMapTransitionRead
Review URL: http://codereview.chromium.org/647015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3901
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 18 Feb 2010 13:13:21 +0000 (13:13 +0000)]
Added access check to SetNormalizedProperty which is used from runtime DefineOrRedefineDataProperty.
Review URL: http://codereview.chromium.org/647010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3900
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 18 Feb 2010 13:02:17 +0000 (13:02 +0000)]
Refactor assignments in the ia32 code generator.
Change compilation of assignment expressions in the ia32 code
generator to no longer use the Reference helper class. This gives us
more explicit control over which subexpressions are evaluated and
when.
Review URL: http://codereview.chromium.org/643001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3899
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Feb 2010 13:01:58 +0000 (13:01 +0000)]
Add a test case for issue 618
Review URL: http://codereview.chromium.org/647014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3898
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 18 Feb 2010 12:59:41 +0000 (12:59 +0000)]
Fix error in compound assignment to keyed load by making platform-independent full compiler code platform dependent, add test of compound assignments.
Review URL: http://codereview.chromium.org/646009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3897
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 18 Feb 2010 12:47:17 +0000 (12:47 +0000)]
Kill some unused code.
It doesn't mean I'm participating in some fixit, just spotted some
code which doesn't have usages and decided to remove it.
Review URL: http://codereview.chromium.org/646007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3896
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 18 Feb 2010 10:09:54 +0000 (10:09 +0000)]
Change KeyedLoadIC interface on ia32 to take receiver and name in registers.
Review URL: http://codereview.chromium.org/601080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3895
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Feb 2010 09:41:47 +0000 (09:41 +0000)]
Fix issues with commit r3839
Fix broken condition.
Fixe some style issues.
Re-enabel part of a test which was turned off.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/647007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3894
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Feb 2010 09:07:03 +0000 (09:07 +0000)]
Refactor the check for generating inline constructors
Moved all the logic to a function on SharedFunctionInfo (including the flag check) to make things more readable.
Changed the check for setter to do a lookup for a named setter for each of the properties assigned in the constructor.
Added tests using accessors and interseptors set through the API.
Added fast case objects to the mjsunit test.
TEST=test/mjsunit/setter-on-constructor-prototype.js
TEST=test/cctest/test-api/SetterOnConstructorPrototype
TEST=test/cctest/test-api/InterceptorOnConstructorPrototype
Review URL: http://codereview.chromium.org/619006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3893
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Wed, 17 Feb 2010 20:57:05 +0000 (20:57 +0000)]
Fix lint errors
Review URL: http://codereview.chromium.org/626002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3892
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Wed, 17 Feb 2010 20:37:08 +0000 (20:37 +0000)]
Add central bridge for liveedit support
Review URL: http://codereview.chromium.org/607004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3891
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 17 Feb 2010 14:18:47 +0000 (14:18 +0000)]
Remove a generated mov and jmp.
Remove a move and jump from the fast-path code in the speculative
backend. Ultimately, this code belongs to the bailout and not the
fast path.
Review URL: http://codereview.chromium.org/601094
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3890
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 17 Feb 2010 13:23:46 +0000 (13:23 +0000)]
Implement tagging of profiler log event blocks.
This change allows to associate integer tags with blocks of profiler
log events, and repeat calls to 'ResumeProfiler' / 'PauseProfiler' in
order to establsh nested (not necessary properly nested) blocks. By
supporting this, we will be able to match WebInspector's CPU profiler
abilities in DevTools.
I also refactored some testing code.
Review URL: http://codereview.chromium.org/619004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3889
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 17 Feb 2010 13:16:53 +0000 (13:16 +0000)]
Remove obsolete bug TODO
Review URL: http://codereview.chromium.org/618006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3888
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Feb 2010 13:04:30 +0000 (13:04 +0000)]
Adding checks for the cases when array grows too big.
Review URL: http://codereview.chromium.org/601092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3887
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Feb 2010 11:26:00 +0000 (11:26 +0000)]
Remove duplicate function from runtime.
Review URL: http://codereview.chromium.org/620003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3886
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Feb 2010 10:54:49 +0000 (10:54 +0000)]
Introduce Array.splice builtin.
Review URL: http://codereview.chromium.org/618002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3885
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Feb 2010 10:48:29 +0000 (10:48 +0000)]
Renaming test/mjsunit/array-splice.js to test/mjsunit/array-functions-prototype-misc.js.
The test array-splice.js following array-shift, array-slice etc would be added in
next commit.
Review URL: http://codereview.chromium.org/618005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3884
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Feb 2010 10:12:43 +0000 (10:12 +0000)]
Mark two tests as part of the threading tests.
Review URL: http://codereview.chromium.org/608027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3883
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 17 Feb 2010 08:26:50 +0000 (08:26 +0000)]
Fix stack corruption when calling non-function.
Fix for issue 603.
Revision r3484 removed the property name from the call stack for
call ICs. When a non-function was called via a call IC and
Function.prototype.call, an extra value was left on the stack that the
caller could not know to clean up.
Fix is to change the JS builtin used for calling non-functions. It
now gets the callee as receiver, rather than iterating stack frames
and finding it on the expression stack of its JS caller.
Review URL: http://codereview.chromium.org/604064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3882
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Feb 2010 07:14:43 +0000 (07:14 +0000)]
Add class name into FunctionTemplateInfo debug printing.
Review URL: http://codereview.chromium.org/608015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3881
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Feb 2010 06:53:19 +0000 (06:53 +0000)]
Normalize the object before updating getter/setter info.
BUG=612
Review URL: http://codereview.chromium.org/608014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3880
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Feb 2010 06:28:33 +0000 (06:28 +0000)]
Fix construction of simple objects with setters on prototype
Simple objects which are constructed without calling the actual constructor function did not take setters defined on prototype chain of the new object into account.
Constructing objects this way is now not done if there are setters involved on the prototype chain of the new object.
This only fixes the case where the setter is found when the first object from a constructor is created. If the prototype chain is changed new objects will on take any change to setters into account.
TEST=test/mjsunit/setter-on-constructor-prototype.js
Review URL: http://codereview.chromium.org/606062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3879
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 16 Feb 2010 18:56:07 +0000 (18:56 +0000)]
Don't externalize fresh strings.
With the current API the embedder has to extrenalize a string each
time a string is encountered to avoid the cost of repeated character
copying/conversion. The issue here is that the externalization cost
itself is non-negligible (both in time and space) and should not be
paid for a rarely used string. This change is an attempt to predict a
string's usage frequency based on its freshness. A string is
considered fresh if it was recently allocated in the new space.
Review URL: http://codereview.chromium.org/608006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3878
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 16 Feb 2010 15:29:35 +0000 (15:29 +0000)]
Fix the build after previous commit.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/605030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3877
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 16 Feb 2010 15:15:31 +0000 (15:15 +0000)]
Enable passing of script data via script creation methods.
Patch by Andrey Kosyakov <caseq@chromium.org>
Original issue http://codereview.chromium.org/606053
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/608013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3876
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 16 Feb 2010 15:14:34 +0000 (15:14 +0000)]
Make sure that the inline_new flag guards all the optimizations for
constructors that only contain simple this assignments.
Make sure that constructors with declarations are not treated as
constructors with only simple this property assignments.
Review URL: http://codereview.chromium.org/601081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3875
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 16 Feb 2010 14:13:21 +0000 (14:13 +0000)]
Port keyed interceptor stubs to ARM and x64.
Review URL: http://codereview.chromium.org/600123
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3874
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 16 Feb 2010 13:03:16 +0000 (13:03 +0000)]
Pass the complete number type information into the GenericBinaryOpStub.
Currently we only pass a boolean parameter indicating whether
the input operands to the GenericBinaryOpStub are guaranteed
to be numbers or not.
Instead we pass the complete number type as a parameters. This
allows to use more precise type information for code generation
in the stub.
Also make the computation of the result type more precise and correct on both ia32 and x64.
Review URL: http://codereview.chromium.org/593110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3873
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 16 Feb 2010 13:01:05 +0000 (13:01 +0000)]
Fix regression in cctest/test-log/EquivalenceOfLoggingAndTraversal
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/600136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3872
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 16 Feb 2010 12:14:23 +0000 (12:14 +0000)]
Introduce builtin for Array.slice function.
Review URL: http://codereview.chromium.org/604059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3871
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 16 Feb 2010 12:08:10 +0000 (12:08 +0000)]
Use binary search in GetScriptLineNumber.
Patch by Ilya Tikhonovsky <loislo@chromium.org>
Original issue http://codereview.chromium.org/593108
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/608012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3870
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 16 Feb 2010 11:40:56 +0000 (11:40 +0000)]
Land thumb2 assembler update.
Review URL: http://codereview.chromium.org/596065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3869
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 16 Feb 2010 11:16:10 +0000 (11:16 +0000)]
Fix inline NumberToString
Glitch in pre-commit cleanup.
TBR=ager@chromium.orgZ
Review URL: http://codereview.chromium.org/600134
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3868
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 16 Feb 2010 10:50:56 +0000 (10:50 +0000)]
Port arguments object allocation in generated code to ARM and x64.
BUG=v8:611
Review URL: http://codereview.chromium.org/605024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3867
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Tue, 16 Feb 2010 10:08:39 +0000 (10:08 +0000)]
Object.getOwnPropertyNames should return string names for indexed properties
Land original change by pfeldman: http://codereview.chromium.org/596117
Review URL: http://codereview.chromium.org/596124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3866
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 16 Feb 2010 09:41:11 +0000 (09:41 +0000)]
Inline NumberToString
NumberToString in runtime JavaScript is inlined through a call to a stub. Currently the stub only checks the number string cache and only if the number is a smi. Code is shared with the inlining of number string cache lookup when adding a smi to a string.
Review URL: http://codereview.chromium.org/604062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3865
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 16 Feb 2010 09:24:14 +0000 (09:24 +0000)]
Remove caching of ToBoolean on the global context. This was used for
API operations but the API C++ code no longer performs a call to the
JavaScript code for ToBoolean.
Review URL: http://codereview.chromium.org/607009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3864
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 16 Feb 2010 07:54:28 +0000 (07:54 +0000)]
Remove printf committed by mistake
Review URL: http://codereview.chromium.org/600126
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3863
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 15 Feb 2010 14:47:03 +0000 (14:47 +0000)]
Fix arm build.
Change the function declarations in the arm virtual frame header
file to match the other platform.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/608007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3862
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 15 Feb 2010 14:24:38 +0000 (14:24 +0000)]
Introduce number type information in the virtual frame.
Each frame element gets a new attribute with number type information. A frame element can be:
- smi
- heap number
- number (i.e. either of the above)
- or something else.
The type information is propagated along with all virtual frame operations.
Results popped from the frame carry the number information with them.
Two optimizations in the code generator make use of the new
information:
- GenericBinaryOpSyub omits map checks if input operands are numbers.
- Boolean conversion for numbers: Emit inline code for converting a number (smi or heap number) to boolean. Do not emit call to ToBoolean stub in this case.
Review URL: http://codereview.chromium.org/545007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3861
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 15 Feb 2010 14:19:15 +0000 (14:19 +0000)]
Add GetScriptOrigin and GetScriptLineNumber functions for Timeline panel.
Patch by Ilya Tikhonovsky <loislo@chromium.org>.
Original issue: http://codereview.chromium.org/565007
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/594058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3860
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 15 Feb 2010 13:25:06 +0000 (13:25 +0000)]
Introduce builtin for Array.unshift function.
Review URL: http://codereview.chromium.org/600124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3859
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 15 Feb 2010 13:20:49 +0000 (13:20 +0000)]
Change the interface of CallStubCompiler::CompileCallInterceptor.
Move responsibility for a typecast into the caller so that it can be
locally verified to succeed.
Review URL: http://codereview.chromium.org/594055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3858
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 15 Feb 2010 12:32:27 +0000 (12:32 +0000)]
Refactoring various pieces of post interceptor caching.
Review URL: http://codereview.chromium.org/596096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3857
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 15 Feb 2010 12:26:07 +0000 (12:26 +0000)]
Change CallIC interface on ARM. Remove name from the stack, and pass it in register r2.
Review URL: http://codereview.chromium.org/598065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3856
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 15 Feb 2010 12:01:46 +0000 (12:01 +0000)]
Elaborating test for Array.shift a bit.
Review URL: http://codereview.chromium.org/596116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3855
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 15 Feb 2010 11:52:18 +0000 (11:52 +0000)]
Simplify compilation of CallIC interceptor stub.
Review URL: http://codereview.chromium.org/604054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3854
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 15 Feb 2010 09:17:38 +0000 (09:17 +0000)]
Introduce builtin for Array.shift function.
Review URL: http://codereview.chromium.org/606017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3853
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Fri, 12 Feb 2010 17:17:13 +0000 (17:17 +0000)]
Land 598061(Process //@ scriptURL=url comment for scripts that don't have name set)
Review URL: http://codereview.chromium.org/596088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3850
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 12 Feb 2010 16:39:07 +0000 (16:39 +0000)]
Change interface to CodeGenerator::LoadFromSlot.
Change the interface to LoadFromSlot, LoadFromSlotCheckForArguments,
and LoadFromGlobalSlotCheckExtensions in the ia32 classic code
generator.
Review URL: http://codereview.chromium.org/606015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3849
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 12 Feb 2010 16:01:38 +0000 (16:01 +0000)]
Fix CallIC stub for CallInterceptor on ARM
Review URL: http://codereview.chromium.org/593080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3848
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 12 Feb 2010 14:21:18 +0000 (14:21 +0000)]
Compile very thin code to access objects on which indexed interceptor is set.
Review URL: http://codereview.chromium.org/603028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3847
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 12 Feb 2010 13:49:57 +0000 (13:49 +0000)]
Fix array allocation in generated code on x64
The porting of array allocation in generated code from ia32 to x64 wrongly assumed that a smi contained the actual number times 2. Removed the constant times_half_pointer_size, as it will probably not be needed.
Review URL: http://codereview.chromium.org/596084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3845
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00