ager@chromium.org [Wed, 4 May 2011 10:51:07 +0000 (10:51 +0000)]
Revert "Make Date and RegExp inherit from Object in the API."
Tests are failing in debug mode.
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6930004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7774
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 4 May 2011 10:03:49 +0000 (10:03 +0000)]
Add Call method to the Object class in the API
Patch by Peter Varga.
BUG=v8:1336
TEST=cctest/test-api/CallAsFunction
Review URL: http://codereview.chromium.org/
6883045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7773
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 4 May 2011 07:28:27 +0000 (07:28 +0000)]
Make Date and RegExp inherit from Object in the API.
They are objects and the API inheritance hierarchy should reflect that.
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6929008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7772
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 4 May 2011 06:18:49 +0000 (06:18 +0000)]
ARM: Add GYP variables to control V8 code generation
Added the GYP variables:
v8_can_use_unaligned_accesses
v8_use_arm_eabi_hardfloat
Refer to the comments in v8.gyp on their uses.
R=karlklose@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
6910025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7769
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Tue, 3 May 2011 20:43:51 +0000 (20:43 +0000)]
Change v8Locale to match proposal - constructor is different (takes settings object, not a plain string) and I've added derive method to it.
Added comments to i18n.js methods and properties, and util functions to check settings and locale validity.
Added LanguageMatcher class until ICU gets C implementation (in progress, but late for our current deadline). I added TODO to remove LanguageMatcher code.
TEST=Visit http://i18n.kaziprst.org/locale.html.
Review URL: http://codereview.chromium.org/
6901141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7768
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 3 May 2011 15:12:40 +0000 (15:12 +0000)]
Additional minor cleanup regarding CallWrapper: Use the null object pattern.
Review URL: http://codereview.chromium.org/
6909026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7767
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 3 May 2011 14:20:19 +0000 (14:20 +0000)]
Delete empty test/mjsunit/function-call.js file
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7766
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 3 May 2011 13:53:08 +0000 (13:53 +0000)]
Replace long running loops by OptimizeFunctionOnNextCall in some tests that are often timing out on ARM.
Review URL: http://codereview.chromium.org/
6910022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7765
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 3 May 2011 13:45:19 +0000 (13:45 +0000)]
Revert 7763, missing implementation on x64 and arm for call and apply with null or undefined.
Review URL: http://codereview.chromium.org/
6913024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 3 May 2011 13:19:04 +0000 (13:19 +0000)]
Don't exchange null and undefined with the global object in function.prototype.{call, apply} for natives.
This makes us compatible with firefox in throwing an exception when
call is invoked on a builtin with null as the this argument.
Review URL: http://codereview.chromium.org/
6902104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7763
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 3 May 2011 12:15:14 +0000 (12:15 +0000)]
Fix implementation of == to correctly convert Date objects to primitives.
Fix issue 1356
BUG=v8:1356
TEST=mjsunit/double-equals
Review URL: http://codereview.chromium.org/
6912021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7761
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 3 May 2011 12:00:54 +0000 (12:00 +0000)]
Cleanup: use xorps to zero out an xmm register on ia32 too.
Encoding is one byte shorter.
R=lrn@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6910021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7760
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 3 May 2011 09:30:06 +0000 (09:30 +0000)]
Unified CallWrapper and PostCallGenerator classes, the former is a
generalization of the latter. This makes CallWrapper architecture-independant,
so it can be pulled up into assembler.h, nuking 3 copy-n-paste classes. Only a
small improvement, but nevertheless...
Review URL: http://codereview.chromium.org/
6893156
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7758
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 3 May 2011 08:31:35 +0000 (08:31 +0000)]
Change heuristics for deciding phi-representation types to use int32 more frequently.
Until now we conservatively chose a double representation if
at least one use occurs in a double operation. This causes performance
degradation in many cases where there are mixes uses (integer and double)
e.g.:
for (int i = 0; i < 10; i++) {
var t = i / 3.5;
a[i] = t;
}
where the use in i/3 requires a double, where as the keyed store requires i
as an integer.
For these cases we want to have i as an integer and convert it only before the
double division.
In order to avoid unconditional deoptimization in some rare cases, we check
phis if there is any conversion that will always fail when converting a
heap-number constant to int32.
Review URL: http://codereview.chromium.org/
6905166
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7757
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 3 May 2011 08:23:58 +0000 (08:23 +0000)]
Simplify include dependencies.
Try to make sure that accessors.h, data-flow.h, list-inl.h, and
scopeinfo.h are included only where needed, but without introducing
implicit dependencies.
Review URL: http://codereview.chromium.org/
6903175
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7756
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 3 May 2011 07:11:17 +0000 (07:11 +0000)]
Don't allow whitespace after sign characters in parseInt.
BUG=v8:955
TEST=mjsunit/regress/regress-955
Review URL: http://codereview.chromium.org/
6903171
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7755
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 3 May 2011 06:51:59 +0000 (06:51 +0000)]
ARM: Changed the handling of compiletime CPU feature detection
Always use CpuFeaturesImpliedByCompiler() when selecting CPU features. This checks both for CAN_USE_ARMV7_INSTRUCTIONS and CAN_USE_VFP_INSTRUCTIONS and for GCC preprocessor symbols. This will support using the CAN_USE_XXX for a simulator build used for generating a snapshot followed by a crosscompile using -march= and -mfpu= for selecting the (minimal) target device CPU features. The snapshot will use instructions based on the CAN_USE_XXX whereas the target will at least use features based on both CAN_USE_XXX and -march= and -mfpu=, but will try runtime CPU feature detection a well looking for somethis better.
Remove the compiler based CPU feature detection from the OS::CpuFeaturesImpliedByPlatform() as it did not belong there. Also was already in the CpuFeaturesImpliedByCompiler().
Add the variable 'v8_can_use_vfp_instructions' to the GYP file which can be used to turn on CAN_USE_VFP_INSTRUCTIONS when building V8. I did not add any -mfpu= cflags for this, as there are several options here (e.g. vfp and neon).
R=erik.corry@gmail.com, karlklose@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
6904164
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7754
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 3 May 2011 05:40:47 +0000 (05:40 +0000)]
Implement API to disallow code generation from strings for a context.
R=sgjesse@chromium.org
BUG=v8:1258
TEST=test-api/AllowCodeGenFromStrings
Review URL: http://codereview.chromium.org/
6905167
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7753
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 2 May 2011 15:12:50 +0000 (15:12 +0000)]
Fix lint.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/
6905168
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7752
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 2 May 2011 15:06:49 +0000 (15:06 +0000)]
Make component=shared_library gyp build work for Linux.
Review URL: http://codereview.chromium.org/
6902128
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7751
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 2 May 2011 14:20:34 +0000 (14:20 +0000)]
Use JSON.parse instead of eval for the debugger JSON protocol.
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6903172
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7748
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 2 May 2011 14:10:14 +0000 (14:10 +0000)]
Prepare push to trunk. We are now working on version 3.3.4
R=ager@chromium.org
Review URL: http://codereview.chromium.org/
6902200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7747
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 2 May 2011 13:43:13 +0000 (13:43 +0000)]
Remove the Visual Studio project files
R=ager@chromium.org
BUG=885
TEST=none
Review URL: http://codereview.chromium.org//
6905164
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7743
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 2 May 2011 12:55:44 +0000 (12:55 +0000)]
Fix unary sub IC heap number code on x64: an untagged double was pushed on the stack and GCd.
BUG=1352
TEST=mjsunit/math-abs
Review URL: http://codereview.chromium.org/
6901150
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7742
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 2 May 2011 11:39:16 +0000 (11:39 +0000)]
Fix XCode project.
This is temporary. The XCode project will be deleted soon once support for generating it with gyp is in place.
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6904165
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7740
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 2 May 2011 11:35:51 +0000 (11:35 +0000)]
Be more discriminating about uses of the arguments object in optimized code.
Because we track the value of the arguments object, we need to check
values whenever plugged into a forbidden value context. It is not
enough to check at only variable references as we did previously.
R=fschneider@chromium.org
BUG=1351
TEST=regress-1351.js
Review URL: http://codereview.chromium.org/
6902202
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7739
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 2 May 2011 11:08:44 +0000 (11:08 +0000)]
Fix presubmit.
TBR=mnaganov
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6902203
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7738
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 2 May 2011 07:47:10 +0000 (07:47 +0000)]
Fix two bugs the LAllocator::FindOptimalSplitPos.
- It was calculating start_block and end_block incorrectly.
- It was not considering the case when end_block is a loop header itself when searching for the header of the outermost loop.
These bugs do not affect correctness of the allocation but can severely degrade it's quality (cause spills in loop bodies).
Review URL: http://codereview.chromium.org/
6901148
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7737
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Fri, 29 Apr 2011 22:16:45 +0000 (22:16 +0000)]
Revert "This implements per-isolate locking and unlocking, including tests"
This reverts commit
76c78febb70e75b18214f5fe45de95c7fb515386.
This change has broken test-thread-termination/TerminateMultipleV8Threads
TBR=vitalyr
Review URL: http://codereview.chromium.org/
6903154
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7735
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Fri, 29 Apr 2011 21:26:03 +0000 (21:26 +0000)]
This implements per-isolate locking and unlocking, including tests
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6788023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7734
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 29 Apr 2011 20:59:29 +0000 (20:59 +0000)]
Add some more (failing) tests for function names inference.
After the "Naming Anonymous JavaScript Functions" paper by
S. M. Ecole, J. J. Barton, C. Petitpierre.
TBR=yurys@chromium.org
BUG=1354
TEST=test-func-name-inference/*
Review URL: http://codereview.chromium.org/
6893135
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7733
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 29 Apr 2011 20:07:41 +0000 (20:07 +0000)]
Removed InvokeJSFlags enum, we already have InvokeFlag for the same purpose.
Review URL: http://codereview.chromium.org/
6880321
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7732
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 29 Apr 2011 17:49:53 +0000 (17:49 +0000)]
Removed dead code: GenericUnaryOpStub is not used anymore, as a consequence, NegativeZeroHandling and UnaryOpFlags are dead, too.
Review URL: http://codereview.chromium.org/
6903124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7731
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 29 Apr 2011 16:26:37 +0000 (16:26 +0000)]
Fix windows build.
TBR=mnaganov@chromium.org
Review URL: http://codereview.chromium.org/
6901125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7730
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 29 Apr 2011 16:06:25 +0000 (16:06 +0000)]
ll_prof: Reduce profiling hooks overhead from >400% to 25%.
Switched to using binary low-level log instead of the textual log used
by the ticks processor. The binary log contains code-related events,
code object names, and their bodies. When writing to the log we ask
glibc to use a larger buffer. To avoid complex processing of the
snapshot log (which is still textual) the serializer emits final
snapshot position to code name mappings that can be quickly be read
without replaying the snapshot log. (This might be useful for the
ticks processor.)
Review URL: http://codereview.chromium.org/
6904127
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7729
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Fri, 29 Apr 2011 15:31:39 +0000 (15:31 +0000)]
Strict mode eval declares its locals in its own environment.
BUG=
TEST=strict-mode.js
Review URL: http://codereview.chromium.org/
6883200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7728
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 29 Apr 2011 12:47:34 +0000 (12:47 +0000)]
Fix whitespace error after r7726
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7727
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 29 Apr 2011 12:43:24 +0000 (12:43 +0000)]
Fix Linux builds after r7724
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7726
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 29 Apr 2011 12:13:46 +0000 (12:13 +0000)]
ARM: Enhance the hardfloat support
The "simple" function with inline assembly for detecting hardfloat have been changed to handle compiling without VFP and with thumb.
The SCons setting for the float abi now follows then naming used by the GCC -mfloat-abi and soft has been added.
R=karlklose@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
6904126
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7725
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 29 Apr 2011 12:08:33 +0000 (12:08 +0000)]
Add support for startup data (snapshot) compression.
This is for mobile platforms where application footprint size is
important. To avoid including compression libraries into V8, we assume
that the host machine have them (true for Linux), and rely on embedder
to provide decompressed data.
Currently, only snapshot data can be comressed. It is also possible to
compress libraries sources, but it is more involved and will be
addressed in another CL.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
6901090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7724
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 29 Apr 2011 11:25:01 +0000 (11:25 +0000)]
Remove unused constructor BinaryOperation(Assignment* compound_assignment).
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6880312
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7723
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Fri, 29 Apr 2011 11:16:09 +0000 (11:16 +0000)]
ARM: Fix handling of return value of compare_doubles in the simulator.
Review URL: http://codereview.chromium.org/
6904124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7722
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 29 Apr 2011 09:21:18 +0000 (09:21 +0000)]
Use type info for count operation in Crankshaft.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6880276
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7717
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 29 Apr 2011 08:53:36 +0000 (08:53 +0000)]
Handle join of sparse arrays with non-empty separator more efficiently.
BUG=v8:1028
Review URL: http://codereview.chromium.org/
6902144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7716
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 29 Apr 2011 08:50:38 +0000 (08:50 +0000)]
ARM: Support hardfloat in SCons build and make it a build time setting
Add option armeabi to the SCons build for selecting the floating point variant to use. Also add externally defined CCFLAGS environment for all targets. Run test.py with option -S armeabi=hardfloat to test with hardfloat enabled.
Make selecting hardfloat EABI variant a build-time option instead of a runtime option.
Add a simple check of the EABI variant during V8 initialization to exit if the compilation was not configured correctly. The reason for this is that GCC does not provide a compile time symbol defining the EABI variant. This check is not fool-proof as it cannot check the compilation configuration used for the snapshot if any.
R=karlklose@chromium.org, erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
6905098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7715
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 29 Apr 2011 07:22:39 +0000 (07:22 +0000)]
Improve modulo operation in lithium on x64.
This is the x64 porting of http://codereview.chromium.org/
6816049/
Patch by: Yuqiang Xian from Intel
Review URL: http://codereview.chromium.org//
6901091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7714
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 29 Apr 2011 05:36:27 +0000 (05:36 +0000)]
Fix build
TBR=ager@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7713
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 29 Apr 2011 05:03:39 +0000 (05:03 +0000)]
Fix assert in KeyedLoadIC constructor
Don't assert when external array ICs are also handled by the KeyedLoadIC.
BUG=1346
TEST=none
Review URL: http://codereview.chromium.org/
6893093
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7712
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 28 Apr 2011 21:02:14 +0000 (21:02 +0000)]
Fixed compilation breakage due to warnings. TBR...
Review URL: http://codereview.chromium.org/
6880286
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7711
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Thu, 28 Apr 2011 20:24:47 +0000 (20:24 +0000)]
LiveEdit: optimize substring comparison
Review URL: http://codereview.chromium.org/
6899011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7710
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 28 Apr 2011 20:11:39 +0000 (20:11 +0000)]
Fixed build on Mac, where g++ is a bit too dumb to see that a variable is always initialized.
Review URL: http://codereview.chromium.org/
6893105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7709
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Thu, 28 Apr 2011 20:05:50 +0000 (20:05 +0000)]
Support LiveEdit when standing on return operator
Review URL: http://codereview.chromium.org/
6894014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7708
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 28 Apr 2011 17:49:55 +0000 (17:49 +0000)]
Type recording for unary ops
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7707
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 28 Apr 2011 16:03:40 +0000 (16:03 +0000)]
Fix missing writebarrier in ArraySplice builtin.
Review URL: http://codereview.chromium.org/
6883227
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7706
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 28 Apr 2011 14:58:45 +0000 (14:58 +0000)]
Improve modulo operation in lithium on IA32.
Implement fast paths for the special cases like PowerOfTwo divisors
and the dividend being smaller than the divisor (non-negative).
BUG=v8:1314
Review URL: http://codereview.chromium.org//
6816049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7704
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 28 Apr 2011 14:56:09 +0000 (14:56 +0000)]
Fix broken cases in x64 disassembler.
R=whesse@chromium.org
Review URL: http://codereview.chromium.org/
6893094
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7703
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Thu, 28 Apr 2011 09:27:40 +0000 (09:27 +0000)]
Expose hasOwnProperty() through API.
BUG=http://code.google.com/p/v8/issues/detail?id=1342
TEST=test-api/HasOwnProperty
Review URL: http://codereview.chromium.org/
6903059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7699
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 28 Apr 2011 09:03:15 +0000 (09:03 +0000)]
Sometimes avoid checking whether the receiver is an object in generated code.
In unoptimized code, use the version of the CallFunctionStub that does not
check whether its receiver is an object in all the cases where we statically
know that it is an object.
R=ager@chromium.org,sgjesse@chromium.org
Review URL: http://codereview.chromium.org/
6880268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7698
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 28 Apr 2011 08:01:13 +0000 (08:01 +0000)]
Remove all android references from SCons file
I accidentally left some in r7686.
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
6905091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7697
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 28 Apr 2011 05:04:48 +0000 (05:04 +0000)]
Fix a bug in a corner case of direct eval detection.
The corner case is calling a function named 'eval' that is looked up at
runtime and found in a non-global context (but not an extension object).
The bug is that we used the function itself as the receiver rather than
using the global object.
R=ager@chromium.org
TEST=has been added to the eval mjsunit test
Review URL: http://codereview.chromium.org/
6893057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7696
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 27 Apr 2011 17:29:01 +0000 (17:29 +0000)]
Atomic ops: put the CPU features struct in v8::internal.
Review URL: http://codereview.chromium.org/
6880238
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7695
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 27 Apr 2011 15:02:59 +0000 (15:02 +0000)]
Add AST ID to RelocInfo for type-recording ICs. Changes 7644 and 7632, combined.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6902066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7694
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Wed, 27 Apr 2011 14:29:25 +0000 (14:29 +0000)]
Implement hardfloat calling convention in macro assembler and simulator.
Review URL: http://codereview.chromium.org/
6874007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7693
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 27 Apr 2011 14:20:21 +0000 (14:20 +0000)]
Initial support for generating Visual Studio solution and project files using GYP
The Windows specific part of the common.gypi now reflects the options used for 'msvc' in the SCons build.
Review URL: http://codereview.chromium.org/
6880237
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7692
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 27 Apr 2011 11:41:42 +0000 (11:41 +0000)]
Refactor lithium classes to reduce the number of virtual functions.
This reduces the binary size by making the Is* type-test functions non-virtual.
I had to change Gap and Label instructions to have a common abstract superclass because both act as gap-instructions for the register allocator.
Review URL: http://codereview.chromium.org/
6880204
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 27 Apr 2011 08:50:06 +0000 (08:50 +0000)]
Prepare push to trunk. Now working on version 3.3.3.
Review URL: http://codereview.chromium.org/
6893053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 27 Apr 2011 08:25:23 +0000 (08:25 +0000)]
Remove the Android build option from the SCons build
The SCons build for Android has not been maintained for some time and did not work with the latest Android open source version. Android now has its own makefiles for building v8 and the v8_shell.
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
6901044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7686
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 27 Apr 2011 08:20:38 +0000 (08:20 +0000)]
Fix raw pointer misuse in StringReplaceRegExpWithEmptyString. Committing codereview.chromium.org/
6905035/ for vegorov
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7685
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 27 Apr 2011 07:56:41 +0000 (07:56 +0000)]
Disable logging for the Threading test in cctest/test-api by default.
BUG=
TEST=test-api/Threading
Review URL: http://codereview.chromium.org/
6893050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7684
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 26 Apr 2011 16:40:20 +0000 (16:40 +0000)]
Fix an edge case in non-vfp3 version of TypeRecordingBinaryOpStub.
Review URL: http://codereview.chromium.org/
6903030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7683
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 26 Apr 2011 15:22:44 +0000 (15:22 +0000)]
Crankshaft support for IN.
In JavaScriptFrame::Print avoid printing optimized frame as if it is unoptimized.
Review URL: http://codereview.chromium.org/
6894043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7682
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 26 Apr 2011 13:53:19 +0000 (13:53 +0000)]
Fix compilation with debuggersupport=off.
Review URL: http://codereview.chromium.org/
6901026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 26 Apr 2011 13:26:05 +0000 (13:26 +0000)]
Fix compilation of D8 with console=readline
BUG=
TEST=
Review URL: http://codereview.chromium.org//
6901027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 26 Apr 2011 09:44:55 +0000 (09:44 +0000)]
Add prototype transitions cache to Map.
Review URL: http://codereview.chromium.org/
6902029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 22 Apr 2011 06:40:22 +0000 (06:40 +0000)]
Avoid hidden TLS access in CpuProfiler::is_profiling().
Review URL: http://codereview.chromium.org/
6895014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7677
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 21 Apr 2011 10:02:58 +0000 (10:02 +0000)]
fix compile error in doublearray code on ARM
TEST=Bots are green
Review URL: http://codereview.chromium.org/
6881102
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7676
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 21 Apr 2011 07:15:43 +0000 (07:15 +0000)]
Support Float64Arrays
BUG=None
TEST=mjsunit/external-arrays.js; updated cctest; existing unit tests
Review URL: http://codereview.chromium.org/
6879009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7675
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 20 Apr 2011 10:38:08 +0000 (10:38 +0000)]
Change the Hydrogen representation of uses.
Rather than representing a use as a pointer to an HValue and then searching
for the specific (ambiguous) operand, we now represent a use as a pair of an
HValue and the input operand index. Additionally, use a linked list instead
of a growable array list since we never use random access.
This allows us to remove a bunch of similarly named and subtly different
functions from the HValue API. The cost in extra zone allocation per use is
partially offset by reusing use list nodes when replacing a use of one value
with another.
R=danno@chromium.org,fschneider@chromium.org
Review URL: http://codereview.chromium.org/
6881044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 20 Apr 2011 09:23:19 +0000 (09:23 +0000)]
Prepare push to trunk. Now working on version 3.3.2.
Review URL: http://codereview.chromium.org/
6880065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7672
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Wed, 20 Apr 2011 09:15:52 +0000 (09:15 +0000)]
Make throw inlineable only if the exception is inlineable.
BUG=1337
TEST=regress-1337
Review URL: http://codereview.chromium.org/
6881079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7671
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 20 Apr 2011 09:08:26 +0000 (09:08 +0000)]
Revert r7665.
Review URL: http://codereview.chromium.org/
6873106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7670
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 19 Apr 2011 16:14:42 +0000 (16:14 +0000)]
Lithium LLabel instruction are no longer used as gap instructions.
Instead we use the first part of the first gap after
the label to insert gap-moves for resolving control-flow
and phis.
Review URL: http://codereview.chromium.org/
6873075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 19 Apr 2011 16:04:49 +0000 (16:04 +0000)]
Revert revisions 7644 and 7632, they are causing assertion failures in interactive_ui_tests debug mode.
Review URL: http://codereview.chromium.org/
6873076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7664
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 19 Apr 2011 13:43:36 +0000 (13:43 +0000)]
Revert r7662.
Review URL: http://codereview.chromium.org/
6878042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7663
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 19 Apr 2011 12:34:07 +0000 (12:34 +0000)]
Make predicates on lithium instruction classes non-virtual.
This is the lithium analog to the refactoring of the HIR classes in r7659.
Review URL: http://codereview.chromium.org/
6877036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7662
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 19 Apr 2011 10:34:34 +0000 (10:34 +0000)]
Skip crashing cctests.
Review URL: http://codereview.chromium.org/
6877034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7661
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 19 Apr 2011 09:16:34 +0000 (09:16 +0000)]
Use movaps instead of movsd in the gap resolver on ia32 as well.
This is ok since we don't care about preserving the upper half
of xmm registers in Crankshaft code.
Review URL: http://codereview.chromium.org/
6880007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7660
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 19 Apr 2011 09:11:21 +0000 (09:11 +0000)]
Reduce the number of virtual function in hydrogen-instruction.h classes
Instead of using virtual type-tester functions we can just
generate non-virtual ones for all concrete IR classes.
This is changes reduces the V8 binary size by ~2%.
I also simplified the macros to declare new hydrogen instructions slightly.
The name used for debug output is no longer passed as a separate string.
Instead we just use the class name.
Review URL: http://codereview.chromium.org/
6880014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7659
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 19 Apr 2011 07:50:46 +0000 (07:50 +0000)]
Correct test names for the failing deserialization tests in cctest.status.
Review URL: http://codereview.chromium.org/
6877032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7651
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 18 Apr 2011 20:26:24 +0000 (20:26 +0000)]
Maintain proper pointer map for branches when resolving phis.
The same was done for gap moves connecting live ranges in r6858.
Review URL: http://codereview.chromium.org/
6873053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7650
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Mon, 18 Apr 2011 13:53:11 +0000 (13:53 +0000)]
ARM: Optimisations for call, jump and untag.
Improves some V8 benchmarks by a few % on A9.
Patch by ARM Ltd.
BUG=none
TEST=Added to test-assembler-arm.cc.
Review URL: http://codereview.chromium.org/
6874010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7647
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 18 Apr 2011 13:28:00 +0000 (13:28 +0000)]
Minor cosmetic changes.
Review URL: http://codereview.chromium.org/
6875003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7646
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 18 Apr 2011 12:37:57 +0000 (12:37 +0000)]
Prepare push to trunk. Now working on version 3.3.1.
R=fschneider@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
6882008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7645
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 18 Apr 2011 10:51:57 +0000 (10:51 +0000)]
Fix x64 typefeedback for property assignments.
There was not ast-id recorded. I removed the default arguments
for the helper functions that emit IC calls to make sure
we are not missing other places.
Review URL: http://codereview.chromium.org/
6878009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7644
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 18 Apr 2011 08:01:50 +0000 (08:01 +0000)]
Revert 7634, Fix experimental.gyp to include i18n-empty-js.cc so that js2c.py get correct parameters.
This caused all chromium based builds to fail (e.g., DumpRenderTree)
Review URL: http://codereview.chromium.org/
6882003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7643
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 18 Apr 2011 07:23:48 +0000 (07:23 +0000)]
Style fix, remove semicolons from tools/test.py
Review URL: http://codereview.chromium.org/
6882002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7642
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 15 Apr 2011 20:47:27 +0000 (20:47 +0000)]
Initialize ThreadLocalTop.
ThreadLocalTop used to be static and was zero initialized by the
linker. With isolates we have to give it a constructor.
BUG=http://crbug.com/79393
Review URL: http://codereview.chromium.org/
6862005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7635
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Fri, 15 Apr 2011 20:31:30 +0000 (20:31 +0000)]
Fix experimental.gyp to include i18n-empty-js.cc so that js2c.py get correct parameters.
Bug occured somewhere in the merge process.
Review URL: http://codereview.chromium.org/
6875013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7634
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Fri, 15 Apr 2011 14:09:45 +0000 (14:09 +0000)]
Fix debuger evaluation on a breakpoint inside eval
Corresponding Chromium issue: http://code.google.com/p/chromium/issues/detail?id=74412
Review URL: http://codereview.chromium.org/
6875005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7633
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 15 Apr 2011 13:18:53 +0000 (13:18 +0000)]
Record AST ids in relocation info at spots where we collect dynamic type feedback.
Review URL: http://codereview.chromium.org/
6793016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7632
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00