vegorov@chromium.org [Mon, 9 May 2011 16:15:18 +0000 (16:15 +0000)]
Propagate a Failure from GenerateDictionaryNegativeLookup instead of causing GC.
Review URL: http://codereview.chromium.org/
6973001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7829
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 9 May 2011 15:24:48 +0000 (15:24 +0000)]
Add IsCallable method for Object in the API
Patch by Peter Varga.
BUG=none
TEST=cctest/test-api/CallableObject
Review URL: http://codereview.chromium.org/
6964005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7828
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 9 May 2011 15:21:40 +0000 (15:21 +0000)]
Simple elimination of redundant array-hole checks.
If the result of an fast elements load is converted to an untagged
representation we can omit the hole check if the value is not used
anywhere else except for HChange instructions converting it to
an untagged representation since those will deoptimize for the hole
value anyway.
Review URL: http://codereview.chromium.org/
6964012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7827
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 9 May 2011 14:58:06 +0000 (14:58 +0000)]
Code should be retrieved via the AST id, not via the source position. Bugs like
this are a "little bit" hard to find when everything is an int... >:-(
Review URL: http://codereview.chromium.org/
6970001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7826
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 9 May 2011 14:28:09 +0000 (14:28 +0000)]
Update mips infrastructure files.
- Merge to current tip of tree, fix build problems.
- Remove deprecated source files.
- Add cctest test-disasm-mips
- Consistently use single-reg push()/pop() (remove uppercase variants)
- Add assembler field accessors.
- More style fixes.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
6965006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7825
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 9 May 2011 13:30:04 +0000 (13:30 +0000)]
Compare IC: add SYMBOLS state.
Review URL: http://codereview.chromium.org/
6960011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7824
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 9 May 2011 12:39:16 +0000 (12:39 +0000)]
Make preparser-process.cc ignore flags on the command line.
Avoids breaking when passed, e.g., the --nosse2 flag by certain builders.
Review URL: http://codereview.chromium.org/
6964008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7821
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 9 May 2011 10:39:02 +0000 (10:39 +0000)]
Make sure v8::String::Value and relatives are always initialized.
BUG=1370
Review URL: http://codereview.chromium.org/
6966003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7818
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 9 May 2011 09:21:21 +0000 (09:21 +0000)]
Prepare push to trunk. Now working on version 3.3.6.
Review URL: http://codereview.chromium.org/
6964006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7815
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 9 May 2011 09:02:27 +0000 (09:02 +0000)]
Let test configuration disable variant flags. Used for preparser tests.
Fixes problem with nosse[234] tests (or anything else that would pass an
unexpected extra parameter on the preparser test command line).
Review URL: http://codereview.chromium.org/
6965008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7814
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 9 May 2011 08:58:57 +0000 (08:58 +0000)]
Expose optimization info via runtime functions
TEST=mjsunit/assert-opt-and-deopt.js
Review URL: http://codereview.chromium.org/
6879108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7813
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Sun, 8 May 2011 14:55:57 +0000 (14:55 +0000)]
AUTHORS: add Akinori MUSHA <knu@FreeBSD.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7812
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Sun, 8 May 2011 14:50:09 +0000 (14:50 +0000)]
Fix build on FreeBSD.
Patch by Akinori MUSHA.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7811
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 6 May 2011 15:02:15 +0000 (15:02 +0000)]
Revert "First step in letting Crankshaft inline functions with a different context."
This reverts commit r7807. TBR=kmillikin@chromium.org.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6928061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7810
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 6 May 2011 14:19:51 +0000 (14:19 +0000)]
Extract common code in string compare loops.
Review URL: http://codereview.chromium.org/
6927044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7809
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 6 May 2011 14:14:16 +0000 (14:14 +0000)]
Check that receiver is JSObject on API calls.
R=sgjesse@chromium.org
BUG=v8:1369
TEST=mjsunit/regress/regress-1369.js
Review URL: http://codereview.chromium.org/
6931056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7808
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 6 May 2011 13:26:22 +0000 (13:26 +0000)]
First step in letting Crankshaft inline functions with a different context.
Use a special slot for HContext, and fetch the value from there each time it is used. Allocate space for special slots in every HEnvironment. Fill them with constant undefined. Do not copy them to LEnvironment.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6929066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7807
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 6 May 2011 12:52:12 +0000 (12:52 +0000)]
ARM: Fix the detection of whether the binary was compiler with -mfloat-abi=hard
The constant 1.0 should be 0x3FF0000000000000 not 0x03FF000000000000.
R=karlklose@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
6930064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7806
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 6 May 2011 12:47:18 +0000 (12:47 +0000)]
Fix newly introduced bug in detecing octal numbers.
TEST=mjsunit/strict
Review URL: http://codereview.chromium.org/
6928059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7805
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 6 May 2011 11:41:15 +0000 (11:41 +0000)]
Strict mode detection in preparser.
Handle octal escapes in everything but RegExps.
Extend preparser test suite to test whether the preparser reports
exceptions to throw.
TEST=preparser/*
Review URL: http://codereview.chromium.org/
6927075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7804
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 6 May 2011 11:07:52 +0000 (11:07 +0000)]
Implement CallAsConstructor method for Object in the API
Patch by Peter Varga.
BUG=v8:1348
TEST=cctest/test-api/ConstructorForObject
Review URL: http://codereview.chromium.org/
6902108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7803
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 6 May 2011 11:02:23 +0000 (11:02 +0000)]
Tiny refactorings to improve the readability of the compiler pipeline a bit.
Review URL: http://codereview.chromium.org/
6933048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7802
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 6 May 2011 09:22:54 +0000 (09:22 +0000)]
Split threaded cctests into four parts (instead of 2)
The number of cctests are now so large that this is causing timeouts
when only splitting these into two parts.
Review URL: http://codereview.chromium.org/
6929063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Fri, 6 May 2011 09:10:28 +0000 (09:10 +0000)]
Replace loops by OptimizeFunctionOnNextCall in regress-1085 and regress-1210.
Review URL: http://codereview.chromium.org/
6938001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7800
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Fri, 6 May 2011 09:05:44 +0000 (09:05 +0000)]
Remove unused but set variable.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/
6930063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7799
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 6 May 2011 06:50:20 +0000 (06:50 +0000)]
A tiny contribution for the IWYU day: Include allocation.h in every
header which uses BASE_EMBEDDED and/or AllStatic. Note that still only
45 out of 135 headers in src/ can be used stand-alone, but at least
this is a little bit more than before...
Review URL: http://codereview.chromium.org/
6931031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7798
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Thu, 5 May 2011 18:55:31 +0000 (18:55 +0000)]
This implements per-isolate locking and unlocking, including tests
BUG=
TEST=
Committed: http://code.google.com/p/v8/source/detail?r=7734
Committed: http://code.google.com/p/v8/source/detail?r=7784
Review URL: http://codereview.chromium.org/
6788023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7797
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Thu, 5 May 2011 17:18:22 +0000 (17:18 +0000)]
Trying to re-land codereview.chromium.org/
6901141.
Changes from previus revision:
- Made my own strncpy in I18NUtils class (we can't use OS::SNPrintF nor snprintf).
- Fixed a crashing bug related to ICU call in LanguageMatcher::BCP47ToICUFormat.
TEST=Visit i18n.kaziprst.org/locale.html
Review URL: http://codereview.chromium.org/
6928017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7796
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 5 May 2011 12:30:57 +0000 (12:30 +0000)]
Unroll more StringDictionary lookup probes both for positive and negative dictionary lookups.
Review URL: http://codereview.chromium.org/
6932010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7795
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 5 May 2011 11:40:08 +0000 (11:40 +0000)]
Faster string equals in generated code.
In my previous change I mixed up "compare" and "equals". This made us
miss the fast length check before comparing strings for equality.
Now we have a separate helper for "equals". It shares some of the
inner loop details with "compare". I'll see if this can be cleaned up
without making it unreadable.
Review URL: http://codereview.chromium.org/
6928020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7794
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 5 May 2011 09:22:09 +0000 (09:22 +0000)]
Support polymorphic loads of constant functions as well as fields.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6930005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7792
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 5 May 2011 08:17:31 +0000 (08:17 +0000)]
Fix bug in x64 >>> operator.
Whenever >>> produces a non-smi result, the binary op stub would
return a wrong result in case of a failed new-space allocation.
This also fixes the (flaky) sparse-array-reverse test which was failing
sometimes because of this.
BUG=v8:1359
TEST=mjsunit/sparse-array-reverse.js
Review URL: http://codereview.chromium.org/
6927013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7790
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 5 May 2011 06:22:58 +0000 (06:22 +0000)]
Fix overflow in arm simulator.
Don't copy 64 bits to a 32 bit value.
R=karlklose@chromium.org,sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6933009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7788
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 5 May 2011 05:51:43 +0000 (05:51 +0000)]
Remove extra debug line from Object.prototype.toString
Fixes mozilla failures
Review URL: http://codereview.chromium.org/
6935020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7787
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 5 May 2011 05:21:30 +0000 (05:21 +0000)]
Reapply 7763, including arm and x64 variants.
The only difference to revision 7763 is the implementation in the
builtins file for arm and x64, plus a move of Array.prototype.toString
and Array.prototype.toLocaleString from should throw on null or
undefined to the non generic test cases in the function-call test (due
to us not currently supporting generic cases with these to functions)
Review URL: http://codereview.chromium.org/
6928007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7786
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 4 May 2011 22:35:42 +0000 (22:35 +0000)]
Revert "This implements per-isolate locking and unlocking, including tests"
This reverts commit
1aa40d0c278e195e9e69dcf8b29a212aa1817c0b.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7785
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 4 May 2011 21:04:32 +0000 (21:04 +0000)]
This implements per-isolate locking and unlocking, including tests
BUG=
TEST=
Committed: http://code.google.com/p/v8/source/detail?r=7734
Review URL: http://codereview.chromium.org/
6788023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 4 May 2011 18:30:37 +0000 (18:30 +0000)]
Compare IC: add STRINGS state.
BUG=1340
Review URL: http://codereview.chromium.org/
6937001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 4 May 2011 15:00:04 +0000 (15:00 +0000)]
Tiny refactoring - change compilation phase parameter for CopyForInlining from a boolean to an enum.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6913021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7782
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 4 May 2011 13:03:08 +0000 (13:03 +0000)]
Add CallAsFunction 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@7781
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 4 May 2011 11:55:09 +0000 (11:55 +0000)]
Prepare push to trunk. Now working on version 3.3.5.
Review URL: http://codereview.chromium.org/
6933004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7778
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 4 May 2011 11:12:06 +0000 (11:12 +0000)]
Revert r7768
This broke the Chromium Windows shared build.
BUG=none
TEST=Windows shared build works when pushed to Chromium
Review URL: http://codereview.chromium.org/
6932007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7777
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 4 May 2011 11:10:49 +0000 (11:10 +0000)]
Fix the Windows shared build
R=fschneider@chromium.org
BUG=none
TEST=Windows shared build works when pushed to Chromium
Review URL: http://codereview.chromium.org//
6932006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7776
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 4 May 2011 11:07:09 +0000 (11:07 +0000)]
Actually revert "Add Call method to the Object class in the API"
Tests are failing in debug mode.
This also reapplies the change "Make Date and RegExp inherit from
Object in the API" that I accidentally reverted.
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6927009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7775
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
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