svenpanne@chromium.org
e4e4447305
Pass Isolates explicitly in Deoptimizer-related code.
...
Removed a few ancient useless ASSERTs on the way. Reduced the number of train wrecks.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12917002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 13:57:49 +00:00
jkummerow@chromium.org
e2cd7aa423
Fix detection of |handle_smi| case in HOptimizedGraphBuilder::HandlePolymorphicCallNamed
...
BUG=chromium:196583
Review URL: https://codereview.chromium.org/12620014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 12:41:52 +00:00
yangguo@chromium.org
ebcecd49af
Parallel recompilation: fix off-by-one in deferred handle scope iteration.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12650005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 11:26:09 +00:00
mmassi@chromium.org
73e83b0b0f
Handling expression decomposition and array bounds check hoisting: working code with lots of debugging PrintFs, postdominance check still missing.
...
Review URL: https://codereview.chromium.org/12377072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 08:06:00 +00:00
yurys@chromium.org
b3ee84d361
Remove bottom-up CPU profile
...
Bottom-up view of CPU profile can be restored based on top-down profile data. So there is no need to spend resources on creating both of them inside V8.
BUG=None
Review URL: https://codereview.chromium.org/12825003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:46:45 +00:00
svenpanne@chromium.org
53310ac152
Added a version of the v8::HandleScope constructor with an Isolate and use that consistently.
...
I tried to limit the use of v8::Isolate::GetCurrent() and v8::internal::Isolate::Current() as much as possible, but sometimes this would have involved restructuring tests quite a bit, which is better left for a separate CL.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12716010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:06:53 +00:00
svenpanne@chromium.org
aaf6340eb3
Fixed two register allocator bugs (off-by-one error/failure propagation).
...
Minor cleanups on the way, e.g. making sure that we never use something after an allocation failed. Style question: Should we switch to some kind of MUST_USE_RESULT-style to ensure that we handle failures consistently? Not sure...
BUG=v8:2576
Review URL: https://codereview.chromium.org/12867002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 14:42:00 +00:00
mstarzinger@chromium.org
9aa25ad1a0
Allow inlining of functions containing function literals.
...
R=yangguo@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals
Review URL: https://codereview.chromium.org/10702036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 14:29:10 +00:00
hpayer@chromium.org
05a71fc9e4
Allow direct allocation in old pointer space.
...
BUG=
Review URL: https://codereview.chromium.org/12314155
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 08:32:52 +00:00
dcarney@chromium.org
fbe34d4ba5
remove latin-1 flag
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12700008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 20:04:50 +00:00
alph@chromium.org
f2bd9431de
Fix Windows build
...
TBR=jkummerow
Review URL: https://codereview.appspot.com/7790043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 18:35:30 +00:00
alph@chromium.org
1afc70a332
Fix huge heap snapshot when a heavily shared context has many variables
...
Prevously v8 put a link to each context variable into a function where
the variable is visible.
Because of that if there are N functions sharing a context having M variables
then N*M links were created for the snapshot.
The fix makes v8 to put the links into the context object.
BUG=145687
TEST=test-heap-snapshot/ManyLocalsInSharedContext
Review URL: https://codereview.appspot.com/7715044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 17:38:04 +00:00
svenpanne@chromium.org
8db737a583
Made AdjustAmountOfExternalAllocatedMemory an instance method of Isolate
...
BUG=v8:2487
Review URL: https://codereview.chromium.org/12790004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 13:15:09 +00:00
adamk@chromium.org
004452bff9
Use InternalArray in Object.getOwnPropertyNames() implementation
...
Review URL: https://codereview.chromium.org/12342003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 20:15:03 +00:00
yangguo@chromium.org
479e39a058
Parallel recompilation: remove interrupt for code generation.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12488006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 18:03:18 +00:00
yangguo@chromium.org
173d9e8f4a
Correctly override parallel recompilation flag for test case.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12655006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 17:33:51 +00:00
svenpanne@chromium.org
e02315ef77
Added an Isolate parameter to some HashTable/Dictionary methods. TypeFeedbackOracle tweaks.
...
BUG=v8:2487
Review URL: https://codereview.chromium.org/12764003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 07:06:36 +00:00
yangguo@chromium.org
b85237a0bc
Fix white space matching in latin-1 strings wrt \u00a0.
...
R=dcarney@chromium.org
BUG=181422
Review URL: https://chromiumcodereview.appspot.com/12644008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 11:52:11 +00:00
mstarzinger@chromium.org
bbc9f5362a
Fix heap snapshot creation for Harmony collections.
...
R=yangguo@chromium.org
BUG=v8:2535
TEST=cctest/test-api/Regress2535
Review URL: https://codereview.chromium.org/12615005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 11:31:53 +00:00
hpayer@chromium.org
cdee6b0673
Wait in heap tests for active concurrent sweeper threads.
...
BUG=
Review URL: https://codereview.chromium.org/12708003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 10:23:24 +00:00
svenpanne@chromium.org
e44d3b7a87
Fixed register allocation corner case.
...
The predicate CanBeSpilled had a bug, prohibiting the necessary spilling and
correct splitting of live ranges. Removed a redundant assertion immediately done
by the callee anyway.
Thanks to Slava for help with that issue and the entertaining historical
background of the whole story... ;-)
BUG=177883
Review URL: https://codereview.chromium.org/12631012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 09:49:00 +00:00
mstarzinger@chromium.org
d70523dce6
Restore Function()'s expected string representation.
...
R=rossberg@chromium.org
BUG=v8:2470
TEST=mjsunit/regress/regress-2470
Review URL: https://codereview.chromium.org/12687002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 11:47:20 +00:00
palfia@homejinni.com
bb380cf971
MIPS: Cleaned up CpuFeature scope handling.
...
Port r13823 (cb37ab63)
BUG=
Review URL: https://codereview.chromium.org/12424004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:54:19 +00:00
mstarzinger@chromium.org
4b0395cc23
Harden Function()'s parsing of function literals.
...
R=rossberg@chromium.org
BUG=v8:2470
TEST=mjsunit/regress/regress-2470
Review URL: https://codereview.chromium.org/12613007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 15:46:14 +00:00
rossberg@chromium.org
accbbd2c10
ES6 symbols: refine test for getOwnPropertyNames
...
R=mstarzinger@chromium.org
BUG=v8:2158
Review URL: https://codereview.chromium.org/12432005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 15:43:47 +00:00
hpayer@chromium.org
b9989623a7
Added pretenuring of array literals test.
...
BUG=
Review URL: https://codereview.chromium.org/12607003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 14:00:53 +00:00
dcarney@chromium.org
9e0ffc02d1
fix more windows warnings
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12425012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 13:31:52 +00:00
dcarney@chromium.org
8120dadb89
fix windows build
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12611004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 12:58:44 +00:00
dcarney@chromium.org
08e3c2ec5d
Build fix for deprecated api use
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12610002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 12:09:27 +00:00
dcarney@chromium.org
25058ddd85
Runtime version of declarative native accessors.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12297012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 11:42:58 +00:00
jkummerow@chromium.org
ed6c366f98
Add missing license headers.
...
BUG=chromium:98597
Review URL: https://codereview.chromium.org/12486003
Patch from Paweł Hajdan Jr. <phajdan.jr@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 11:12:26 +00:00
yangguo@chromium.org
3a497dfd51
Insert missing type cast in JSON.stringify.
...
R=dcarney@chromium.org
BUG=v8:2570
Review URL: https://chromiumcodereview.appspot.com/12599003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 09:58:27 +00:00
yurys@chromium.org
250edbdc64
Revert "Send SIGPROF signals on the profiler event processor thread"
...
This reverts commit r13735 as CPU profiler data is inaccurate after that change.
BUG=v8:2571
Review URL: https://codereview.chromium.org/12592002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 09:12:48 +00:00
danno@chromium.org
bbc599f334
Unify grow mode and stub kind
...
In the process, ensure that transition-causing element stores handle all cases of the transitioned receiver map.
Review URL: https://codereview.chromium.org/12390031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 21:51:07 +00:00
yangguo@chromium.org
a62cfd1db0
Fix Array.length, String.length and Function.prototype LoadICs on x64.
...
R=jkummerow@chromium.org
BUG=v8:2568
Review URL: https://chromiumcodereview.appspot.com/12545004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 18:19:35 +00:00
rossberg@chromium.org
bdc65b3e1e
ES6 symbols: filter symbols form for-in loops and Object.keys
...
R=verwaest@chromium.org
BUG=v8:2158
Review URL: https://codereview.chromium.org/12455002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 13:55:21 +00:00
rossberg@chromium.org
29e6b4437f
ES6 symbols: enable symbols as weak map keys
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12456004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 17:24:08 +00:00
adamk@chromium.org
7fe9bd5a09
Properly handle misses for StoreArrayLengthStub on ia32 and x64
...
Both failed to generate a miss if the key wasn't "length".
ARM and MIPS were already correct.
BUG=v8:2566
Review URL: https://codereview.chromium.org/12378085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 16:31:11 +00:00
yangguo@chromium.org
03375a68d7
Details wrt parallel recompilation.
...
This includes:
- actually release handles kept by compilation info when compilation completes.
- do not use parallel recompilation on single core CPUs.
- artificially delay parallel recompilation for debugging.
- fix outdated assertions wrt optimization status.
- add "parallel" option to %OptimizeFunctionOnNextCall.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12442002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 16:22:08 +00:00
svenpanne@chromium.org
e4edbb0535
Cleaned up CpuFeature scope handling.
...
First of all, it has nothing to do with Isolates, it is related to the assembler
at hand. Furthermore, the saving/restoring is platform-independent. Cleaned up
some platform-specific stuff on the way.
Note that there are some things which still need some cleanup, like e.g. using
EnumSet instead of uint64_t, making Probe() more uniform across platforms etc.,
but the CL is already big enough.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12391055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 10:48:16 +00:00
ulan@chromium.org
be2b1a980f
Improve integer division on ARM in favor of power of 2 constant divisor
...
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/12052032
Patch from Rajeev R Krithivasan <rkrithiv@codeaurora.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 08:47:59 +00:00
mstarzinger@chromium.org
2aabf6257d
Add workaround for redefinition of __proto__ property.
...
This is a temporary workaround when the __proto__ property is being
redefined (e.g. by Object.freeze()) to not loose the foreign callback.
Once the __proto__ property is a real JavaScript accessor this hack is
no longer necessary. This change also makes __proto__ configurable.
R=rossberg@chromium.org
BUG=v8:2565
TEST=mjsunit/regress/regress-2565
Review URL: https://codereview.chromium.org/12398010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 17:53:40 +00:00
rossberg@chromium.org
5c93b18eb2
ES6 symbols: Allow symbols as property names
...
Since symbols and strings share a common representation, most of this change is about consistently replacing 'String' with 'Name' in all places where property names are expected. In particular, no new logic at all is necessary for maps, property dictionaries, or transitions. :) The only places where an actual case distinction is needed have to do with generated type checks, and with conversions of names to strings (especially in logger and profiler).
Left in some TODOs wrt to the API: interceptors and native getters don't accept symbols as property names yet, because that would require extending the external v8.h.
(Baseline CL: https://codereview.chromium.org/12296026/ )
R=verwaest@chromium.org ,mstarzinger@chromium.org
BUG=v8:2158
Review URL: https://codereview.chromium.org/12330012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 15:00:57 +00:00
verwaest@chromium.org
590a3f8811
Polymorphism support for load IC.
...
Review URL: https://chromiumcodereview.appspot.com/12340112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 14:03:27 +00:00
mvstanton@chromium.org
c4caf766bf
Allocation Info Tracking, continued.
...
Addresses missing cases for array literals.
Adds support for "new Array()" call sites. This isn't complete yet, I have to run with --noinline_new.
BUG=
Review URL: https://codereview.chromium.org/11818021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 16:06:34 +00:00
yangguo@chromium.org
358311e8ec
Limit EatAtLeast recursion by a budget.
...
BUG=178790
Review URL: https://chromiumcodereview.appspot.com/12380026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 14:50:14 +00:00
rossberg@chromium.org
090d09d685
ES6 symbols: Implement Symbol intrinsic and basic functionality
...
- Add --harmony-symbols flag.
- Add Symbol constructor; allow symbols as (unreplaced) return value from constructors.
- Introduce %CreateSymbol and %_IsSymbol natives and respective instructions.
- Extend 'typeof' code generation to handle symbols.
- Extend CompareIC with a UNIQUE_NAMES state that (uniformly) handles internalized strings and symbols.
- Property lookup delegates to SymbolDelegate object for symbols, which only carries the toString method.
- Extend Object.prototype.toString to recognise symbols.
Per the current draft spec, symbols are actually pseudo objects that are frozen with a null prototype and only one property (toString). For simplicity, we do not treat them as proper objects for now, although typeof will return "object". Only property access works as if they were (frozen) objects (via the internal delegate object).
(Baseline CL: https://codereview.chromium.org/12223071/ )
R=mstarzinger@chromium.org
BUG=v8:2158
Review URL: https://codereview.chromium.org/12296026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 13:28:55 +00:00
rossberg@chromium.org
764e1a0fcf
ES6 symbols: Introduce Symbol class, along with abstract Name class
...
The new instance type 'Symbol' represents ES6 symbols (a.k.a. private/unique names). Currently, symbols are simple data objects that only carry a hash code, random-generated upon allocation.
The new type 'Name' now serves as the common super class for strings and symbols, and is supposed to represent property names. We will eventually migrate APIs from String to Name for the standard key type.
Strings and symbols share the same hash field representation, via the Name class. This way, we should be able to use the same code paths for symbols and internalized strings in most cases. Also, Symbol's instance type code is allocated adjacent to internalized string codes in the enum, allowing a simple range check for the common case.
Baseline CL: https://codereview.chromium.org/12210083/
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12223071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 10:34:31 +00:00
rossberg@chromium.org
55f93b5532
Renamed "symbols" to "internalized strings" throughout the code base,
...
in preparation of the introduction of ES6 'symbols' (aka private/unique names).
The SymbolTable became the StringTable. I also made sure to adapt all comments. The only remaining use of the term "symbol" (other than unrelated uses in the parser and such) is now 'NewSymbol' in the API and the 'V8.KeyedLoadGenericSymbol' counter, changing which might break embedders.
The one functional change in this CL is that I removed the former 'empty_string' constant, since it is redundant given the 'empty_symbol' constant that we also had (and both were used inconsistently).
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12210083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 17:03:34 +00:00
yangguo@chromium.org
5c264ade8e
Fix wrong test in r13766 (Insert conversion to string in string.replace).
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12315130
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:36:02 +00:00
verwaest@chromium.org
3ab255f55d
Currently this mostly just moves code around.
...
- Later the different parts will become individual code objects that tailcall into one another.
- The mapcheck/symbol check still needs to be separated from the overall prototype-chain check so that the ICs can reuse the handlers.
Review URL: https://chromiumcodereview.appspot.com/12209021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:28:53 +00:00
yangguo@chromium.org
6e64bdfc6e
Insert conversion to string in string.replace.
...
(missing since r13761)
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12316158
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:12:30 +00:00
yangguo@chromium.org
2a3063a7c3
Handle negative input in inlined Math.round on Intel CPUs.
...
R=jkummerow@chromium.org
BUG=v8:2451
Review URL: https://chromiumcodereview.appspot.com/12342037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:44:57 +00:00
mstarzinger@chromium.org
ea5e9edac4
Fix materialization of arguments objects with unknown values.
...
This fixes the deoptimizer to materialize arguments objects of correct
length even in cases where the actual argument values are unknown and
were optimized away by Crankshaft. This can happen if only the length
property or the identity of an arguments object is used.
R=svenpanne@chromium.org
BUG=chromium:163530
TEST=mjsunit/regress/regress-crbug-163530
Review URL: https://codereview.chromium.org/12335132
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:37:51 +00:00
yangguo@chromium.org
7145671392
Make message listener API backwards compatible.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12217066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:35:39 +00:00
yangguo@chromium.org
4cbe7100e6
Refactor implementation for String.prototype.replace.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12177015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:14:45 +00:00
hpayer@chromium.org
fb807eeb0d
Increase acceptable boot up memory size in tests for parallel sweeper threads.
...
BUG=
Review URL: https://codereview.chromium.org/12310168
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 13:38:29 +00:00
ulan@chromium.org
211f4a7be0
Disable regress-crbug-160010 for Android because it triggers OOM.
...
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12314150
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 12:14:21 +00:00
ulan@chromium.org
d18e118f17
ARM: Fix disassembly of some VFP instructions with condition codes
...
Previously, we would disassemble some VFP instructions like this:
vmla.f64eq d16, d17, d18
This patch moves the condition to the right place:
vmlaeq.f64 d16, d17, d18
Spotted by Rodolph Perfetta!
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12335129
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 11:52:45 +00:00
jkummerow@chromium.org
732a2af96a
Clean up mjsunit/array-bounds-check-removal
...
Review URL: https://codereview.chromium.org/12317142
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 10:50:37 +00:00
ulan@chromium.org
87265114c4
Emit VMLS for multiply-subtract on ARM.
...
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12319113
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 10:24:40 +00:00
adamk@chromium.org
deeddc7e76
Remove duplication and unnecessary HandleScope from HasElement helper functions
...
Review URL: https://codereview.chromium.org/12328064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 17:20:21 +00:00
yurys@chromium.org
dc9b817667
Send SIGPROF signals on the profiler event processor thread
...
The patch is based on the previous one that was rolled out: https://code.google.com/p/v8/source/detail?r=12985
On Linux sampling for CPU profiler is initiated on the profiler event processor thread, other platforms to follow.
CPU profiler continues to use SamplingCircularQueue, we will replave it with a single sample buffer when Mac and Win ports support profiling on the event processing thread.
When --prof option is specified profiling is initiated either on the profiler event processor thread if CPU profiler is on or on the SignalSender thread as it used to if no CPU profiles are being collected.
ProfilerEventsProcessor::ProcessEventsAndDoSample now waits in a tight loop, processing collected samples until sampling interval expires. To save CPU resources I'm planning to change that to use nanosleep as only one sample is expected in the queue at any point.
BUG=v8:2364
Review URL: https://codereview.chromium.org/12321046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 16:15:32 +00:00
dcarney@chromium.org
52a015b1af
Fix overflow in WriteQuoteJsonString and SlowQuoteJsonString
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12326120
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 11:02:39 +00:00
yangguo@chromium.org
95c5e68714
Fix bogus regexp test.
...
The reason this test fails on ARM hardware but not on Intel hardware
(including the ARM simulator) is this:
'\xa0' is interpreted as a negative signed byte number. Casting it to
uc16 sign-extends it. The resulting string does not fit into a one-byte
string, thus a two-byte string is allocated.
For some reason the code compiled for ARM does not sign-extend, and 0xa0
fits into a one-byte string. Thus a one-byte string is allocated. Trying
to cast it to two-byte causes assertion failure.
BUG=
Review URL: https://chromiumcodereview.appspot.com/12319111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 10:49:59 +00:00
mstarzinger@chromium.org
ce1e10f5fc
Make __proto__ a foreign callback on Object.prototype.
...
This moves the __proto__ property to Object.prototype and turns it into
a callback property actually present in the descriptor array as opposed
to a hack in the properties lookup. For now it still is a "magic" data
property using foreign callbacks and not an accessor property visible to
JavaScript.
The second effect of this change is that JSON.parse() no longer treats
the __proto__ property specially, it will be defined as any other data
property. Note that object literals still have their special handling.
R=rossberg@chromium.org
BUG=v8:621,v8:1949,v8:2441
TEST=mjsunit,cctest,test262
Review URL: https://codereview.chromium.org/12212011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-26 10:46:00 +00:00
adamk@chromium.org
30a4a798e5
Speed up non-interceptor case of Object.getOwnPropertyNames
...
When there are interceptors on an object, it's possible to
end up with duplicate property names. But when all the names
are provided by v8, a collision is not possible, so we can
fast-path that case by not de-duping.
Also added better test coverage for interceptor API.
Review URL: https://codereview.chromium.org/12314081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 18:58:47 +00:00
loislo@chromium.org
34c372d800
Fix for HeapSnapshotAddressReuse test case.
...
BUG=V8:2189
TEST=HeapSnapshotAddressReuse
Review URL: https://chromiumcodereview.appspot.com/12320039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 16:09:57 +00:00
svenpanne@chromium.org
fb6776e84a
Made Isolate a mandatory parameter for everything Handle-related.
...
Unified parameter order of CreateHandle with the rest of v8 on the way. A few
Isolate::Current()s had to be introduced, which is not nice, and not every place
will win a beauty contest, but we can clean this up later easily in smaller steps.
Review URL: https://codereview.chromium.org/12300018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 14:46:09 +00:00
loislo@chromium.org
4c72bb7508
Heap snapshot doesn't detect the fact that an old object was overriden by new one.
...
It is a test only patch. I have no solution yet.
BUG=V8:2189
TEST=
Review URL: https://chromiumcodereview.appspot.com/12321042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 13:16:17 +00:00
yangguo@chromium.org
0d63cef35b
Constant fold math and string operations.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12315005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 11:40:37 +00:00
danno@chromium.org
be8e8f7528
Improve the JitCodeEventHandler API to add support for line position information.
...
This includes:
* adding the CODE_ADD_LINE_POS_INFO, CODE_START_LINE_INFO_RECORDING, CODE_END_LINE_INFO_RECORDING event and the corresponding functionality.
* adding the JITCodeLineInfo struct to record the code line info. I added this definition because Danno mentioned that "we'd like to cleanup and decouple the external debugging functionality"
* some other small changes.
Review URL: https://chromiumcodereview.appspot.com/12223027
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-18 18:06:12 +00:00
hpayer@chromium.org
c1eabf2523
Determine number of available cores on all platforms.
...
BUG=
Review URL: https://codereview.chromium.org/12089107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-15 12:38:59 +00:00
svenpanne@chromium.org
71a26c928a
Make the Isolate parameter mandatory for internal HandleScopes.
...
Improved Frames and their iterators on the way, too.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12254007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-15 09:27:10 +00:00
mstarzinger@chromium.org
300413b5a9
Fix f.apply() optimization when declared arguments are mutated.
...
R=verwaest@chromium.org
BUG=v8:2539
TEST=mjsunit/regress/regress-2539
Review URL: https://codereview.chromium.org/12255033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 15:12:49 +00:00
ulan@chromium.org
250ebdc2be
ARM: Change signature for vmov.32 function in the assembler
...
The assembler has 8 different vmov variants. The one for vmov.32 and for moving
an immediate into a double reg only differs in the type of the second
paremeter: vmov.32 takes an int, the other takes a double.
The situation is dangerous because C++ will happily implicitly convert between
int and double.
This patch changes the signature of the vmov.32 assembler function so that it
cannot be confused with the other vmovs.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12255031
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 12:28:02 +00:00
mstarzinger@chromium.org
3d81dec91d
Unflakify SetJitCodeEventHandler test case.
...
R=ulan@chromium.org
TEST=cctest/test-api/SetJitCodeEventHandler
Review URL: https://codereview.chromium.org/12263035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13667 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 11:59:04 +00:00
mstarzinger@chromium.org
05e95eee0e
Allow full inlining of f.apply(this, arguments) calls.
...
This allows Crankshaft to completely inline a f.apply() dispatch if the
exact number of arguments is known and the function is constant. The
deoptimizer doesn't generate the f.apply() frame during deoptimization,
so the materialized frames look like f.apply() did a tailcall.
R=jkummerow@chromium.org
TEST=mjsunit/compiler/inline-function-apply
Review URL: https://codereview.chromium.org/12263004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-14 09:55:50 +00:00
jkummerow@chromium.org
19dab057b4
Fix NegateCompareOp and InvertCompareOp
...
BUG=v8:2537
Review URL: https://codereview.chromium.org/12217136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-13 14:36:19 +00:00
svenpanne@chromium.org
9eec096914
Fixed a memory leak in v8 and another one in d8.
...
Cleaned up a few tests on the way. This CL brings us down to 5 leaks for d8.
Review URL: https://codereview.chromium.org/12223089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-12 11:57:51 +00:00
mstarzinger@chromium.org
9bb68394a0
Fix code flusher disabling while marking incrementally.
...
This fixes a corner case where the code flusher is disabled while the
incremental marker is still running. This can happen when the debugger
is loaded and a scavenge is triggered. Make sure that all flushing
decisions are revisited after the candidates lists are evicted.
R=hpayer@chromium.org
BUG=chromium:173458,chromium:168582
TEST=cctest/test-heap/Regress173458
Review URL: https://codereview.chromium.org/12217108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-11 15:11:00 +00:00
svenpanne@chromium.org
7b45ab9501
Don't use TLS for space iterators.
...
This is not only inherently slow, but it also forces the caller to enter an
Isolate before. Both is bad, so we have to do some heap plumbing.
BUG=v8:2531
Review URL: https://codereview.chromium.org/12217106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-11 13:02:20 +00:00
rossberg@chromium.org
ec0b001543
Work around nifty VS10 compiler bug
...
VS10 generates bogus code for specific arguments to the Number::New function when invoked in specific places of an ExpectRecords array definition, passing a garbage value to the function (as printf debugging reveals). Changing the argument from 1 to 7 apparently circumvents the problem.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12212108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-11 12:28:22 +00:00
svenpanne@chromium.org
3b08a1f82c
Added new GetHeapStatistics API entry and deprecated old one.
...
Simplified the HeapStatistics class a bit, following Uncle Bob's advice that
adding accessors to DTOs only satisfies some design fundamentalists, but serves
no other purpose. :-)
Review URL: https://codereview.chromium.org/12207076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-08 12:41:55 +00:00
jkummerow@chromium.org
b09cc0be50
Adjust the stack-size value for big-array-literal.js
...
Review URL: https://codereview.chromium.org/12114002
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-07 15:45:47 +00:00
jkummerow@chromium.org
e83ff197bf
Add regression test for r13617
...
Many thanks to Vyacheslav Egorov for coming up with this test!
BUG=173907
Review URL: https://codereview.chromium.org/12212066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-07 15:38:24 +00:00
danno@chromium.org
a2f0a01371
Fix NULL-pointer arithmetic abuse in tests surfaced by clang
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/12218051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-07 10:02:11 +00:00
mstarzinger@chromium.org
79607d20e6
Make the GC stress builder go green.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12218034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-06 13:21:28 +00:00
mstarzinger@chromium.org
53f29b320d
Make object-observe test case resilient against GC stress.
...
R=rossberg@chromium.org
TEST=cctest/test-object-observe/ObservationWeakMap
Review URL: https://codereview.chromium.org/12217017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-05 16:21:15 +00:00
hpayer@chromium.org
492396f2ab
Fixed IsSweepingComplete and EnsureSweeperProgress helper functions.
...
BUG=
Review URL: https://codereview.chromium.org/12177017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-05 15:48:59 +00:00
adamk@chromium.org
dbf50cf948
Object.observe: change array truncation logic to efficiently handle large sparse arrays
...
Review URL: https://codereview.chromium.org/12041084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 21:03:08 +00:00
adamk@chromium.org
6ab7a23f6c
Object.observe: use JSWeakMaps instead of raw ObjectHashTables in observation state
...
object-observe.js uses weak maps to add "hidden" properties to
objects. Previously, the hash tables it was using weren't actually
weak. This patch changes the existing runtime functions to create
instances of JSWeakMap instead of exposing ObjectHashTable directly.
Review URL: https://codereview.chromium.org/12092079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 20:24:11 +00:00
verwaest@chromium.org
aca87c2fcd
Tag stubs that rely on instance types as MEGAMORPHIC.
...
BUG=chromium:173974
Review URL: https://chromiumcodereview.appspot.com/12178017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 13:12:03 +00:00
danno@chromium.org
0c3575c874
Generate the TransitionElementsStub using Crankshaft
...
This includes:
* Adding support for saving callee-clobbered double registers in Crankshaft code.
* Adding a new "HTrapAllocationMemento" hydrogen instruction to handle AllocationSiteInfo data in crankshafted stubs.
* Adding a new "HAllocate" hydrogen instruction that can allocate raw memory from the GC in crankshafted code.
* Support for manipulation of the hole in HChange instructions for Crankshafted stubs.
* Utility routines to manually build loops and if statements containing hydrogen code.
Review URL: https://codereview.chromium.org/11659022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 12:01:59 +00:00
mstarzinger@chromium.org
07bab08378
Slightly bump memory test limit for ia32 no-snapshot.
...
R=verwaest@chromium.org
TEST=cctest/test-mark-compact/BootUpMemoryUse
Review URL: https://codereview.chromium.org/12091088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 13:26:55 +00:00
adamk@chromium.org
c001d928df
Object.observe: don't unnecessarily emit oldValue for reconfigurations of data properties
...
When a data property has its attributes changed but its value remains the same,
don't emit an oldValue. This makes the API more consistent by only emitting
oldValue when the value of a property has actually changed (or been removed,
in the case of a reconfiguration as an accessor property or a deletion).
Review URL: https://codereview.chromium.org/11820004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 21:07:28 +00:00
yangguo@chromium.org
c5883d442e
Add option to limit tick processor to a time range.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/12077043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 14:41:02 +00:00
mstarzinger@chromium.org
366bf736d6
Fix test harness to correctly split extra flags.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12094032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 13:27:23 +00:00
danno@chromium.org
c31454ac37
Use MemoryChunk-based allocation for deoptimization entry code
...
This is done by first committing the deoptimization entry code with a minimal
area size (OS::CommitPageSize) and later using CommitArea to adjust the size.
Committed: http://code.google.com/p/v8/source/detail?r=13494
Review URL: https://chromiumcodereview.appspot.com/11566011
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 09:09:55 +00:00
verwaest@chromium.org
c8636a2809
Do not try to collect the map if the monomorphic IC stub has no map.
...
This is necessary for monomorphic stubs that rely on instance types,
such as ArrayLength, StringLength and FunctionPrototype.
BUG=chromium:172345
Review URL: https://chromiumcodereview.appspot.com/12082023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 13:19:53 +00:00
mstarzinger@chromium.org
fe8e97798e
Allow inlining of multiple closures from shared function.
...
This allows Crankshaft to allow inlining of multiple different closures
that were all derived from the same shared function info. This pattern
appears when libraries provide generic closures that are used over and
over again at different call-sites.
R=jkummerow@chromium.org
TEST=mjsunit/compiler/inline-closures
Review URL: https://codereview.chromium.org/12071002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 16:55:00 +00:00
yangguo@chromium.org
24ec13cbd2
Fix additional spec violations wrt RegExp.lastIndex.
...
R=svenpanne@chromium.org
BUG=v8:2437
Review URL: https://chromiumcodereview.appspot.com/12033099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 10:53:26 +00:00
svenpanne@chromium.org
52d10a68cb
Add Isolate parameter to Persistent class.
...
BUG=v8:2487
Review URL: https://codereview.chromium.org/12033011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 08:31:46 +00:00
mstarzinger@chromium.org
44ffa0dcd3
Allow monomorphic loads when static type is known.
...
This allows Crankshaft to generate monomorphic loads when the receiver
type is statically known even though the load site has polymorphic type
feedback. This applies to inlined constructor calls and literals.
R=jkummerow@chromium.org
TEST=mjsunit/compiler/property-static
Review URL: https://codereview.chromium.org/12051058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 17:54:30 +00:00
mstarzinger@chromium.org
c8cf5d90aa
Implement VisitHandlesInNewSpaceWithClassIds()
...
BUG=
TEST=test-api.cc::PersistentHandleInNewSpaceVisitor
Review URL: https://codereview.chromium.org/11365131
Patch from Kentaro Hara <haraken@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 15:53:16 +00:00
danno@chromium.org
63ec79a4a4
Revert r13494: "Use MemoryChunk-based allocation for deoptimization entry code"
...
This patch seems to cause crashes on Windows.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/12049069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 15:48:07 +00:00
danno@chromium.org
de17ce7701
Use MemoryChunk-based allocation for deoptimization entry code
...
This is done by first committing the deoptimization entry code with a minimal
area size (OS::CommitPageSize) and later using CommitArea to adjust the size.
Review URL: https://codereview.chromium.org/11566011
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 15:14:33 +00:00
ulan@chromium.org
e6224d275f
Make embedded maps in optimized code weak.
...
Each map has a weak array of dependent codes, where the map tracks all the optimized codes that embed it.
Old space GC either clears the dead dependent codes from the array if the corresponding map is alive or deoptimizes the live dependent codes if the map is dead.
BUG=v8:2073
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11575007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 11:55:05 +00:00
yurys@chromium.org
250023a68d
Implicit references are missing in heap profiles
...
Review URL: https://codereview.chromium.org/11953043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 07:54:40 +00:00
ulan@chromium.org
bed569b548
ARM: Make use of d16-d31 when available.
...
Review URL: https://chromiumcodereview.appspot.com/11428137
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 16:29:48 +00:00
mstarzinger@chromium.org
cd21056819
Fix corner case when JSFunction is evicted from flusher.
...
This fixes a corner case that happens when JSFunctions are enqueued as
code flushing candidates but their respective SharedFunctionInfo isn't.
If the JSFunction gets evicted due to optimization the code slot in the
SharedFunctionInfo will never be recorded in the slots buffer.
R=hpayer@chromium.org
BUG=chromium:168801
TEST=cctest/test-heap/Regress168801
Review URL: https://codereview.chromium.org/11896064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 16:15:15 +00:00
verwaest@chromium.org
c1e44f133d
Always fail when trying to store to an undeclared global variable, even if it was found.
...
Finding a property, but not using an IC, indicates that the variable was
found on the prototype (in DOMWindow). Those properties need to be
ignored while storing global properties via the IC.
Review URL: https://chromiumcodereview.appspot.com/12040039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 16:04:19 +00:00
ulan@chromium.org
d29826544e
Correctly set kCanBeDivByZero flag for HMathFloorOfDiv.
...
After r13289 the divisor can be non-constant, so we should check for zero.
BUG=171641
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12047050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 15:58:49 +00:00
yangguo@chromium.org
9296975c04
Correctly reset lastIndex in an RegExp object.
...
R=svenpanne@chromium.org
BUG=170856
Review URL: https://chromiumcodereview.appspot.com/11896060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 12:28:16 +00:00
jkummerow@chromium.org
5318c181cf
tools/run-tests.py: shlex.split() the value of --command-prefix
...
BUG=171553
Review URL: https://codereview.chromium.org/12049034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-23 11:41:56 +00:00
ulan@chromium.org
79a0e3b017
Fix pattern detection for replacing shifts by rotation.
...
BUG=2499
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12047015
Patch from Hirofumi Mako <mkhrfm@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-22 13:55:22 +00:00
mstarzinger@chromium.org
f8d5260af7
Allow loading constant function from proto chain.
...
This enables Crankshaft to use HConstant for loading constant functions
on the prototype chain when building a monomorphic load. This pattern
appears in several JavaScript frameworks.
R=svenpanne@chromium.org
TEST=mjsunit/compiler/proto-chain-constant
Review URL: https://codereview.chromium.org/12052008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-22 12:03:35 +00:00
mvstanton@chromium.org
90d0f18007
Incorrect ARM assembly in MacroAssembler::TestJSArrayForAllocationSiteInfo
...
Restored test code in allocation-site-info.js that was failing on ARM because of this bug.
BUG=
Review URL: https://codereview.chromium.org/12045017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-22 10:49:23 +00:00
mvstanton@chromium.org
c3746b4388
allocation-site-info.js broken on arm with new changes. Reverting to previous version until diagnosed.
...
Regress-2185.js test takes too long on slow path when allocation site info is discovered.
BUG=
Review URL: https://codereview.chromium.org/12049003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 16:15:08 +00:00
yangguo@chromium.org
0c822b21cb
Fix some latin-1 webkit units tests
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11962035
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 16:11:31 +00:00
yangguo@chromium.org
7f331f6280
Make HCheckPrototypeMaps compatible with parallel recompilation.
...
HCheckPrototypeMaps currently records the prototype and the holder of the
prototype chain (both ends of the chain) and assumes that the chain elements
and their maps did not change in during the entirety of Crankshaft. The actual
traversal of the prototype chain happens in Lithium at code generation.
With parallel compilation, this assumption is not longer correct.
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11864013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 15:49:00 +00:00
mvstanton@chromium.org
3414a514cd
Fixed test failure.
...
A test case erroneously expected a transition to a double array, but the array remains FAST_SMI.
In person LGTM from Danno...
BUG=
Review URL: https://codereview.chromium.org/12038008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 13:21:53 +00:00
mvstanton@chromium.org
d7d917e6f0
Out of bounds memory access in TestJSArrayForAllocationSiteInfo.
...
The function intended to check the map pointer of an AllocationSiteInfo object, but neglected to
subtract an offset to do so.
BUG=169928
Review URL: https://codereview.chromium.org/11931037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-21 12:26:29 +00:00
jkummerow@chromium.org
50be0f2c79
De-dupe test/mozilla/mozilla.status
...
Review URL: https://codereview.chromium.org/11929025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-18 15:01:53 +00:00
jkummerow@chromium.org
7924492ce3
tools/run-tests.py: Fixes for Windows
...
Review URL: https://codereview.chromium.org/11926015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-18 14:55:23 +00:00
yangguo@chromium.org
284a28e797
Temporarily disable deferred stack trace formatting.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11859027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-18 13:05:03 +00:00
jkummerow@chromium.org
900720454d
tools/runtests.py: Fix cctests on Windows; properly return error code when there were Python exceptions
...
Review URL: https://codereview.chromium.org/11929020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-18 12:44:36 +00:00
svenpanne@chromium.org
fab9a39d9d
Make the Isolate parameter mandatory in Locker and Unlocker classes.
...
Note that leaving out the Isolate parameter previously had a very special
meaning, namely "use the *default* Isolate", i.e. the one magically created at
program initialization time. All other API entries use the meaning "current
Isolate", which is different in a multi-threaded setting and confusing.
Temporarily disabled deprecations until Chrome is ready.
BUG=v8:2487
Review URL: https://codereview.chromium.org/11970009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-18 07:20:17 +00:00
mvstanton@chromium.org
7884216804
Additional work to get array literal allocation tracking working, even with --always-opt
...
BUG=
Review URL: https://codereview.chromium.org/11817017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-17 08:41:27 +00:00
mstarzinger@chromium.org
fd4d32e733
Inline SetWrapperClassId() and WrapperClassId()
...
BUG=
TEST=test-api.cc (WrapperClassId)
Review URL: https://codereview.chromium.org/11961014
Patch from Kentaro Hara <haraken@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-16 16:33:09 +00:00
yangguo@chromium.org
a8d59243b9
Cleanup latin-1 conversion check in regexp engine
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11880045
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-16 13:04:07 +00:00
yangguo@chromium.org
10436443fe
Avoid pointer underflow in CopyCharsUnsigned.
...
R=dcarney@chromium.org
BUG=v8:2493
Review URL: https://chromiumcodereview.appspot.com/11961012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-16 12:27:38 +00:00
svenpanne@chromium.org
6e6426627e
Implement Context::GetIsolate()
...
BUG=
TEST=test-api.cc (IsolateOfContext)
Review URL: https://codereview.chromium.org/11968011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-16 12:11:43 +00:00
mstarzinger@chromium.org
0484ddcf50
Fix arguments materialization for inlined apply().
...
This fixes materialization of the arguments object in case the constant
function check if TryCallApply() inside an inlined frame fails.
R=svenpanne@chromium.org
BUG=v8:2489
TEST=mjsunit/regress/regress-2489
Review URL: https://codereview.chromium.org/11931012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-16 09:25:45 +00:00
yangguo@chromium.org
f15f294127
Sync laziness between BuildFunctionInfo and MakeFunctionInfo.
...
BuildFunctionInfo compiles the function eagerly when there are debug
break points. However, the AST may have been parsed lazily since
MakeFunctionInfo does not check for debug break points.
This fixes a regression introduced in r11866.
BUG=147497
Review URL: https://chromiumcodereview.appspot.com/11661008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-15 10:16:52 +00:00
yangguo@chromium.org
89bef51aca
Remove move ascii data hint for one byte strings
...
This is mostly a rollback of r12966
[Make kAsciiDataHintTag have correct semantics for all both 1 and 2 byte string types.]
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11857015
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 15:17:56 +00:00
svenpanne@chromium.org
1ac3949a93
Removed deprecated functions from v8's external API.
...
Removed the following deprecated functions:
* Object::GetPointerFromInternalField
* Object::SetPointerInInternalField
* External::Wrap
* External::Unwrap
* Context::GetData
* Context::SetData
They have been deprecated in the 3.15 branch and are not used by Chrome anymore.
Furthermore, judging from bug reports and email threads, embedders like node.js
and others are already using 3.15, too. All removed API entries can be emulated
by a one-liner, so adapting should not be hard for anybody.
We want to introduce more deprecations soon, but to keep things simple and avoid
having old and not-so-old deprecations in v8.h, the 3.15 deprecations are now
removed.
In general, the strategy of keeping deprecated things for one stable release and
then removing them seems to be a good compromise between a maintenance nightmare
and annoying external embedders. :-)
Review URL: https://codereview.chromium.org/11885019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 13:41:08 +00:00
yangguo@chromium.org
eadcc1c10c
Reland r13188, r13194, r13256 (Deferred formatting of error stack trace during GC).
...
BUG=
Review URL: https://chromiumcodereview.appspot.com/11880018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 13:19:27 +00:00
mstarzinger@chromium.org
b93b2b98b8
Fix shared function info code replacement.
...
This fixes a corner case when the unoptimized code for a shared function
info is replaced while the function is enqueued as a flushing candidate.
Since the link field is stored within the code object, the candidates
list got destroyed.
R=hpayer@chromium.org
BUG=v8:169209
TEST=cctest/test-heap/Regress169209
Review URL: https://codereview.chromium.org/11818052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-11 13:13:11 +00:00
mstarzinger@chromium.org
c5cff2c75a
Make recent regression test resilient against GC stress.
...
R=danno@chromium.org
TEST=mjsunit/regress/regress-165637
Review URL: https://codereview.chromium.org/11824062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-10 14:21:27 +00:00
mstarzinger@chromium.org
1079642c97
Fix missing exception check in typed array constructor (2).
...
This fixes another crash when the the typed array constructor accesses
an array that has a throwing accessor defined on one of it's elements.
R=verwaest@chromium.org
BUG=chromium:168545
TEST=mjsunit/regress/regress-crbug-168545.js
Review URL: https://codereview.chromium.org/11791052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-10 11:45:29 +00:00
yangguo@chromium.org
e41c17084f
Continues Latin-1 support. All tests pass with ENABLE_LATIN_1 flag.
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11818025
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 15:47:53 +00:00
yangguo@chromium.org
a0fb367755
MIPS: Emit madd.d for multiply-add on MIPS.
...
Based on commit r12958 (04586adf).
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/11783049
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 12:31:34 +00:00
yangguo@chromium.org
45f20e366a
Introduce ENABLE_LATIN_1 compile flag
...
Mostly a bunch of renaming when flag is disabled.
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11759008
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 10:30:54 +00:00
svenpanne@chromium.org
0aacbf9619
Added %FlattenString and use it to speed up a regression test.
...
Flattening strings is relatively costly and by doing it after every duplication
we avoid combinatorial explosion.
Note that flattening could have been done by e.g. using a regular expression,
too, but this is just another implementation detail and %FlattenString seems
general enough to be useful in other tests, too.
Review URL: https://codereview.chromium.org/11828014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 09:32:12 +00:00
mvstanton@chromium.org
529f801fde
Adapt Danno's Track Allocation Info idea to fast literals. When allocating a literal array,
...
we store an AllocationSiteInfo object right after the JSArray, with a pointer to the
boilerplate object. Later, if the array transitions we check for the continued existence
of the temporary AllocationSiteInfo object (has no roots). If found, we'll use it to
transition the boilerplate array as well.
Danno's original changeset: https://codereview.chromium.org/10615002/
Review URL: https://codereview.chromium.org/11663005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-08 09:03:16 +00:00
yangguo@chromium.org
61f4012989
Use C++ style type casts.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11644097
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 15:02:56 +00:00
mstarzinger@chromium.org
0e46919c32
Fix missing exception check in typed array constructor.
...
The typed array constructor might fail if the first argument is an
object with a length property. Accessing the property can cause an
exception to be thrown and an explicit check needs to be performed.
R=verwaest@chromium.org
BUG=chromium:168545
TEST=mjsunit/regress/regress-crbug-168545.js
Review URL: https://codereview.chromium.org/11777014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 14:01:04 +00:00
danno@chromium.org
4246ac3009
Generalize calling to C++ on stub deopt
...
Remove code specific to KeyedLoadICs in DoCompiledStubFrame on all platforms, driving stub frame translation by the register parameter information found in a stub's CodeStubInterfaceDescriptor.
Review URL: https://codereview.chromium.org/11635015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:06:11 +00:00
ulan@chromium.org
4403daca1a
ARM: generate integer zero in a uniform manner.
...
ARM generated integer zero as either Operand(0, RelocInfo::NONE32), or
Operand(0), or Operand::Zero(). My change makes it use only
Operand::Zero().
This has no functional impact, it's pure cleanup.
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11745030
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:43:12 +00:00
yangguo@chromium.org
4ee20d857b
Check for read-only-ness when preparing for array sort.
...
R=verwaest@chromium.org
BUG=v8:2419
Review URL: https://chromiumcodereview.appspot.com/11759022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 15:24:47 +00:00
ulan@chromium.org
0606abbaab
Rename RelocInfo::NONE to RelocInfo::NONE32.
...
This CL only does renaming, nothing else.
Followup to:
https://chromiumcodereview.appspot.com/11695006/
There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11744020
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 10:56:24 +00:00
ulan@chromium.org
bb96439743
Cleanup RelocInfo::NONE usage.
...
There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/
I'll rename NONE to NONE32 in a later CL.
This CL cleans up the RelocInfo::NONE usage by:
- Using RelocInfo::IsNone when testing for NONE-ness.
- Using NONE on 32-bit platforms (MIPS and IA32), and NONE64 on 64-bit
platforms (x64).
This cleans up the code and prevents it from evolving bugs in the future
because NONE32 and NONE64 are used in misleading ways.
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11695006
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 14:20:08 +00:00
yangguo@chromium.org
04ccb975f4
Remove InputBuffer
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11727004
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 09:18:01 +00:00
yangguo@chromium.org
ddf70504cb
Relax test expectations in BootUpMemoryUse.
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11738004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-02 15:00:12 +00:00
yangguo@chromium.org
bccef0c712
Reland r13275 and 13276 (Remove most uses of StringInputBuffer).
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11727003
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-31 11:13:50 +00:00
yangguo@chromium.org
e536abb777
Handle non-constant divisor in MathFloorOfDiv, on ia32/x64
...
Zheng Liu
zheng.z.liu@intel.com
Review URL: https://chromiumcodereview.appspot.com/11624022
Patch from Zheng Liu <zheng.z.liu@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 15:52:17 +00:00
yangguo@chromium.org
2f821f1ed9
Revert r13188, r13194, r13256 (Deferred formatting of error stack trace during GC).
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11678006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 13:12:27 +00:00
yangguo@chromium.org
121f3f6020
Revert r13275 and 13276 (Remove most uses of StringInputBuffer).
...
This is due to test failures in test-mark-compact/BootUpMemoryUse.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11688003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 10:03:17 +00:00
yangguo@chromium.org
7f074acd8d
Remove most uses of StringInputBuffer
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11638037
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-24 08:29:48 +00:00
ulan@chromium.org
b64f834383
Fix x64 MathMinMax for negative untagged int32 arguments.
...
An untagged int32 has zeros in the upper half even if it is negative.
Using cmpq to compare such numbers will incorrectly ignore the sign.
BUG=164442
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11665007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 17:52:00 +00:00
adamk@chromium.org
d14b05a38d
Basic test for interaction of Object.observe and hidden prototypes
...
The test simply shows the current behavior, not necessarily what we
want the behavior to be.
Review URL: https://codereview.chromium.org/11635033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 17:40:09 +00:00
danno@chromium.org
653a66f527
ARM: Use division instructions in lithium and stubs
...
BUG=none
TEST=Added to test/mjsunit/math-floor-of-div.js, math-floor-of-div-nosudiv.js
Review URL: https://codereview.chromium.org/11316105
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-20 16:31:19 +00:00
yangguo@chromium.org
a3f16f8e65
Fix several bugs in error stack trace formatting.
...
GetScriptWrapper can be called recursively:
GetScriptWrapper -> GC -> DeferredFormatStackTrace -> GetScriptWrapper
GC-unsafe code in ErrorObjectList::DeferredFormatStackTrace
Enable overwriting Error.prepareStackTrace by itself while not
causing infinity recursion when it triggers an exception.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11649037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-20 16:25:26 +00:00
rossberg@chromium.org
97eba9d3cd
Object.observe: fix observation for optimised in/decrement and compound assignment.
...
R=svenpanne@chromium.org
BUG=v8:2409
Review URL: https://codereview.chromium.org/11642042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-20 15:03:30 +00:00
rossberg@chromium.org
d2ed67a958
Object.observe: temporarily disable one test to unbreak ARM.
...
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/11646004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-20 14:12:41 +00:00
yangguo@chromium.org
eedcaf1866
Remove Utf8InputBuffer
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11649018
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-20 09:20:37 +00:00
adamk@chromium.org
354fc4abe5
Object.observe: test mutating an object via the API
...
Review URL: https://codereview.chromium.org/11598014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-19 17:02:12 +00:00
rossberg@chromium.org
75dac95604
Fix treatment of hidden prototypes in SetProperty.
...
R=svenpanne@chromium.org
BUG=v8:2457
Review URL: https://codereview.chromium.org/11644021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-19 15:17:01 +00:00
yangguo@chromium.org
9569b20db2
Replace the use CharacterStreams in Heap::AllocateSymbolInternal and String::ComputeHash
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11593007
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-19 13:27:20 +00:00
yangguo@chromium.org
362218a037
Deopt on overflow in integer mod.
...
R=ulan@chromium.org
BUG=166379
Review URL: https://chromiumcodereview.appspot.com/11618017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-19 12:01:22 +00:00
rossberg@chromium.org
b25c040c2c
Extend API to allow setting length property for function templates.
...
R=yangguo@chromium.org
BUG=125308
Review URL: https://codereview.chromium.org/11631002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-19 10:28:36 +00:00
rossberg@chromium.org
c9da5fadcb
Object.observe: Change semantics of deliverChangeRecords to iterate.
...
Added test for recursive change generation.
R=yangguo@chromium.org
BUG=v8:2409
Review URL: https://codereview.chromium.org/11593028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-19 09:51:46 +00:00
danno@chromium.org
1f4b4625ff
Re-land Crankshaft-generated KeyedLoad stubs.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11528003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-18 16:25:45 +00:00
ulan@chromium.org
8574054b59
Correctly handle negative codes in String.fromCharCode()
...
BUG=166553
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11576069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-18 12:37:57 +00:00
rossberg@chromium.org
c6bb497437
Simplify implementation of assignment-to-const checks.
...
Also, add test that assignment to function name is a syntax error with harmony scoping.
Does not fix issue 2243 directly, but with ES6, the required behaviour will change to what is implemented already anyway.
R=yangguo@chromium.org
BUG=v8:2243
Review URL: https://codereview.chromium.org/11607016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-18 12:00:50 +00:00
yangguo@chromium.org
19a6575ea3
Rename LookupSymbol calls to use Utf8 or OneByte in names.
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11597007
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-17 15:56:16 +00:00
yangguo@chromium.org
6e953d51af
Make sure error message formatting does not have side effects.
...
R=vegorov@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11598011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-17 14:00:50 +00:00
peter.rybin@gmail.com
133957e743
Fix set variable value bug: a function argument must be updated in 2 places
...
Review URL: https://codereview.chromium.org/11519020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-14 18:36:51 +00:00
rossberg@chromium.org
1080d2aade
Object.oberve: assertions to narrow down flaky crashes with array length mutation.
...
R=mstarzinger@chromium.org
BUG=v8:2409
Review URL: https://codereview.chromium.org/11566027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-14 14:19:18 +00:00
mstarzinger@chromium.org
1aed997ad6
Make string test resilient against GC stress.
...
R=dcarney@chromium.org
TEST=cctest/test-strings/StringCharacterStreamRandom
Review URL: https://codereview.chromium.org/11565031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-14 12:45:28 +00:00
yangguo@chromium.org
e24b98312b
Revert r13218 due to windows test failures.
...
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11568014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-13 17:21:15 +00:00
yangguo@chromium.org
4cd41edcd9
Add methods to allow resuming execution after calling TerminateExecution().
...
Two new methods are added to allow embedders to determine that execution
should be resumed at a particular point in the stack without being forced
to unwind all JS frames.
* V8::ResumeExecution() -- When execution is terminated via a call to
V8::TerminateExecution(), this method can be called to clear the
termination exception so that the engine can continue to be used.
* TryCatch::HasTerminated() -- When a TryCatch has caught a termination
exception, HasTerminated() will return true to indicate it is valid to
call V8::ResumeExecution() if desired.
A test case is added to cctest/test-thread-termination.cc.
BUG=v8:2361
Patch from Andrew Paprocki <andrew@ishiboo.com>.
Review URL: https://chromiumcodereview.appspot.com/11142013
Patch from Andrew Paprocki <andrew@ishiboo.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-13 16:38:49 +00:00
yangguo@chromium.org
a1265a15cf
Cleanup tests for StringCharacterStream
...
Edge case tests now cover all branches.
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11548023
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-13 15:39:01 +00:00
rossberg@chromium.org
fb5a5e22ec
Object.observe: Make array length and other magic data properties work correctly.
...
Also, disable TestFastElementsLength test for now, since it flakes on buildbots for yet unknown reasons.
R=mstarzinger@chromium.org
BUG=v8:2409
Review URL: https://codereview.chromium.org/11554019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-13 09:31:44 +00:00
danno@chromium.org
facad070e9
Remove over-zealous hole checking in Array.slice()
...
R=jkummerow@chromium.org
BUG=chromium:165637
TEST=regress-165637.js
Review URL: https://codereview.chromium.org/11442054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-12 15:20:45 +00:00
rossberg@chromium.org
76375de29d
Object.observe: prevent observed objects from using fast elements.
...
This is necessary because polymorphic stores generally
do not perform a map check but only an instance type check,
which misses out on changes in the observation status.
Unfortunately, there currently is no efficient way in V8
to maintain that optimisation in the presence of Object.observe.
R=mstarzinger@chromium.org
BUG=v8:2409
Review URL: https://codereview.chromium.org/11477006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-12 11:38:24 +00:00
mstarzinger@chromium.org
04adf4c792
Add regression test for r13195.
...
This is a regression test for the fix in r13195 which made sure that we
correctly clear the optimized code map even when incremental marking is
running.
R=ulan@chromium.org ,jkummerow@chromium.org
BUG=chromium:165495
TEST=cctest/test-heap/Regress165495
Review URL: https://codereview.chromium.org/11543015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-12 10:46:01 +00:00
yurys@chromium.org
bc37b9be27
Do not read document and URL properties on global objects while taking heap snapshot
...
This unsafe mechanism was replaced with a user provided callback in r13137 and now we should remove old code.
Review URL: https://codereview.chromium.org/11519029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-12 09:49:46 +00:00
peter.rybin@gmail.com
6eef2f0682
Issue 2399 part 2: In debugger allow modifying local variable values
...
Review URL: https://codereview.chromium.org/11412310
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 23:27:38 +00:00
mmassi@chromium.org
ae54f9cfe0
Fix for when array bounds check elimination tries to modify a phi index.
...
BUG=
Review URL: https://chromiumcodereview.appspot.com/11486007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 14:23:04 +00:00
yangguo@chromium.org
32103ca870
Fix windows build.
...
R=dcarney@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com/11538003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 10:42:10 +00:00
mstarzinger@chromium.org
07077798af
Disable GC stress for mjsunit/fast-prototype.
...
R=yangguo@chromium.org
TEST=mjsunit/fast-prototype --gc-interval=500 --stress-compaction
Review URL: https://codereview.chromium.org/11534004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 10:33:04 +00:00
yangguo@chromium.org
f02af74575
Cleanup StringCharacterStream and add initial test cases.
...
BUG=
Review URL: https://chromiumcodereview.appspot.com/11438046
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 10:22:15 +00:00
yangguo@chromium.org
72dfb27909
Fire 'stack' getter of error objects after GC.
...
BUG=v8:2340
Review URL: https://chromiumcodereview.appspot.com/11377158
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 10:14:01 +00:00
mstarzinger@chromium.org
067a820eb4
Make unit tests resilient against GC Stress.
...
R=yangguo@chromium.org
TEST=cctest --gc-interval=500 --stress-compaction
Review URL: https://codereview.chromium.org/11498012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-10 15:14:20 +00:00
danno@chromium.org
64fc1f99cb
Revert 13157, 13145 and 13140: Crankshaft code stubs.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/11498006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-10 11:09:12 +00:00
yangguo@chromium.org
c70a0f9334
Improve integer division on IA32 and X64
...
If the divisor is a Power-of-2 constant, we could use shifts instead of the
expensive idiv instructions, which also loose the register constraints.
Review URL: https://chromiumcodereview.appspot.com/11478043
Patch from Yuqiang Xian <yuqiang.xian@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-10 11:02:22 +00:00
rossberg@chromium.org
9a0623f296
Object.observe support for Function 'prototype' property
...
BUG=v8:2409
Review URL: https://codereview.chromium.org/11416353
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-10 10:53:57 +00:00
mstarzinger@chromium.org
d11558c9b8
Make test-heap resilient against GC stress.
...
R=yangguo@chromium.org
TEST=cctest/test-heap --stress-compaction
Review URL: https://codereview.chromium.org/11464021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 13:01:38 +00:00
yangguo@chromium.org
fe7a68463a
Fix mozilla test expectations.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11482003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 12:49:27 +00:00
yangguo@chromium.org
d6629c6919
Fix mozilla test failures and expectations.
...
Follow-up for r13160.
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11446063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 12:18:50 +00:00
rossberg@chromium.org
3348b5c2b4
Allow lazy compilation (and thus optimisation) of functions inside eval.
...
For strict-mode eval, this requires _disabling_ lazy parsing of inner functions,
because we need to collect their free variables to do allocation for the
eval scope properly.
R=mstarzinger@chromium.org
BUG=v8:2315
Review URL: https://codereview.chromium.org/11438042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 10:35:50 +00:00
yangguo@chromium.org
3388f92e63
Fix spec violations in methods of Number.prototype.
...
R=svenpanne@chromium.org
BUG=v8:2443
Review URL: https://chromiumcodereview.appspot.com/11465005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 10:20:35 +00:00
danno@chromium.org
39f6c8ef69
Fix nosse2 tests
...
R=jkummerow@chromoum.org
Review URL: https://chromiumcodereview.appspot.com/11439028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 07:09:57 +00:00
mstarzinger@chromium.org
31f1f2de22
Fix candidate eviction in code flusher.
...
This fixes a corner case where a code flushing candidate was evicted
from the candidate list without being revisited by the incremental
marker. An explicit write-barrier makes sure it gets revisited.
R=ulan@chromium.org
BUG=chromium:159140
TEST=cctest/test-heap/Regress159140
Review URL: https://codereview.chromium.org/11451038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-06 16:27:32 +00:00
yangguo@chromium.org
276c790c61
Iterate through all arguments for side effects in Math.min/max.
...
R=svenpanne@chromium.org
BUG=v8:2444
Review URL: https://chromiumcodereview.appspot.com/11444030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-06 13:13:38 +00:00
yangguo@chromium.org
2200972f48
Update test expectations.
...
Test failure has been fixed in r13050.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11450004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-06 13:13:01 +00:00
yangguo@chromium.org
c75ca45000
Improve array to string conversion.
...
BUG=v8:2435
Review URL: https://chromiumcodereview.appspot.com/11348349
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 15:49:22 +00:00
yangguo@chromium.org
6c92aba643
Fix spec violations related to regexp.lastIndex
...
BUG=v8:2437, v8:2438
Review URL: https://chromiumcodereview.appspot.com/11451005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 12:32:25 +00:00
rossberg@chromium.org
6b16d0bcae
Make Object.observe on the global object functional
...
The approach in this change is to handle the unwrapping/wrapping of the global object transparently with respect to the JS implementation of Object.observe. An alternate approach would be to add a runtime method like %IsJSGlobalProxy and %UnwrapJSGlobalProxy, but it seems ugly to give JS (even implementation JS) access to the unwrapped global.
BUG=v8:2409
Review URL: https://codereview.chromium.org/11414094
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 12:03:57 +00:00
rossberg@chromium.org
23850c16b2
Object.observe: notify of __proto__ changes
...
BUG=v8:2409
Review URL: https://codereview.chromium.org/11299260
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 11:47:45 +00:00
danno@chromium.org
f19959cd22
Enable stub generation using Hydrogen/Lithium (again)
...
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure.
Committed: https://code.google.com/p/v8/source/detail?r=13105
Committed: https://code.google.com/p/v8/source/detail?r=13117
Review URL: https://codereview.chromium.org/10701054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 11:04:10 +00:00
mstarzinger@chromium.org
e46b251324
Pass Isolate to MakeWeak(), IsWeak(), and AddObjectGroup().
...
BUG=
TEST=cctest/test-api/ApiObjectGroupsCycle
Review URL: https://codereview.chromium.org/11360082
Patch from Kentaro Hara <haraken@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 10:14:10 +00:00
mstarzinger@chromium.org
0e3fece02d
Pass Isolate to Local<T>::New()
...
Our profiling revealed that Local<T>::New() is one of bottlenecks of DOM bindings.
BUG=
TEST=cctest/test-api/LocalHandle
Review URL: https://codereview.chromium.org/11316331
Patch from Kentaro Hara <haraken@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 09:13:53 +00:00
yurys@chromium.org
cec0745aa2
Introduce callback for resolving global object name while taking heap snapshot
...
Heap profiler currently gets "document" of global objects while taking snapshot (to later retrieve its "URL"). This is unsafe as there may be no current v8 context when the property is requested while corresponding property accessor may make some assumptions about the context stack during its invokation. Several crashes were reported due to this problem:
https://bugs.webkit.org/show_bug.cgi?id=103076
https://crbug.com/162121
https://crbug.com/132727
This patch adds a callback for resolving global object names and avoid the crashes.
Review URL: https://codereview.chromium.org/11415203
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-04 17:17:55 +00:00
mstarzinger@chromium.org
5966276d56
Change deprecated semantics of function template signatures.
...
This changes how FunctionTemplate interprets a Signature that specifies
compatible receivers and arguments. Only the hidden prototype chain will
be considered when searching for compatible receivers. This prevents
JavaScript from modifying the inheritance relationship set up by the
embedder.
R=rossberg@chromium.org
BUG=v8:2268
TEST=cctest/test-api
Review URL: https://codereview.chromium.org/11308197
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-04 13:45:48 +00:00
mstarzinger@chromium.org
b21cf0208f
Fix external exceptions in external try-catch handlers.
...
This tries to propagate exceptions which are externally thrown into
external try-catch handlers before scheduling them. This also allows
embedders to nest external try-catch handlers.
This just relands r11834.
R=svenpanne@chromium.org
BUG=v8:2166
TEST=cctest/test-api/TryCatchNested
Review URL: https://codereview.chromium.org/11299329
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-04 10:45:59 +00:00
yangguo@chromium.org
192d21b5dd
Remove bogus test and add check for OOM in TryCall.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11412318
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-04 09:51:52 +00:00
peter.rybin@gmail.com
be4418bae0
Issue 2429, core implementation and the protocol change
...
Review URL: https://codereview.chromium.org/11421100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 21:47:39 +00:00
peter.rybin@gmail.com
4b3e67070e
Issue 2399 part 1: In debugger allow modifying local variable values
...
Review URL: https://codereview.chromium.org/11415042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 20:29:29 +00:00
yangguo@chromium.org
79643009dd
Fix null dereference after OOM.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11414295
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 17:57:17 +00:00
danno@chromium.org
66f6a8182c
Revert 13117: "Enable stub generation using Hydrogen/Lithium (again)"
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/11415261
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 17:16:51 +00:00
yangguo@chromium.org
702cc25def
Optimize non-ASCII string splitting with single-character search pattern
...
Review URL: https://chromiumcodereview.appspot.com/11299163
Patch from Ben Noordhuis <ben@c9.io>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 16:48:17 +00:00
danno@chromium.org
78b09625d5
Enable stub generation using Hydrogen/Lithium (again)
...
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure.
Committed: https://code.google.com/p/v8/source/detail?r=13105
Review URL: https://codereview.chromium.org/10701054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 15:51:05 +00:00
mstarzinger@chromium.org
66a8fff304
Adapt code flushing tests to new code aging.
...
R=danno@chromium.org
TEST=cctest/test-heap/TestCodeFlushing
Review URL: https://codereview.chromium.org/11434082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 13:38:39 +00:00
rossberg@chromium.org
45f42b04c1
When notifying observers of a truncated array, don't call getters on deleted element indices
...
BUG=v8:2409
Review URL: https://codereview.chromium.org/11414177
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 13:34:08 +00:00
danno@chromium.org
0a3bcc8c05
Revert 13105: "Enable stub generation using Hydrogen/Lithium."
...
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/11414262
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-30 17:45:45 +00:00
danno@chromium.org
c115ff4e33
Enable stub generation using Hydrogen/Lithium.
...
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure.
Review URL: https://codereview.chromium.org/10701054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-30 17:31:30 +00:00
jkummerow@chromium.org
bd69d3d5c3
Revert "Perform CPU sampling by CPU sampling thread only iff processing thread is not running."
...
This reverts r12985.
Review URL: https://codereview.chromium.org/11428103
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-30 10:26:21 +00:00
danno@chromium.org
5a40f006f9
Remove unused private member variables found by clang -Wunused-private-field
...
Review URL: https://codereview.chromium.org/11414207
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-29 15:13:49 +00:00
verwaest@chromium.org
7553f0d68e
CopyPackedSmiToDoubleElements should fill the FixedDoubleArray with holes
...
BUG=v8:2433
Review URL: https://chromiumcodereview.appspot.com/11280223
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-29 08:34:19 +00:00
yangguo@chromium.org
028f85a244
Include more information in --prof log.
...
Main changes:
- include timestamps in profile ticks
- include code kind in code create events
- time execution in external code
- changed plot-timer-events.js to show the code kind being executed
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11428025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-28 11:01:10 +00:00
verwaest@chromium.org
09b1574baa
Make ElementsAccessors more tolerant of varying backing store types
...
This avoids bogus calls to Fixed*Array::cast() when FastElements-backed objects are empty (and thus backed by empty_fixed_array).
Review URL: https://chromiumcodereview.appspot.com/11299190
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-28 08:41:45 +00:00
mstarzinger@chromium.org
b2a7b26e82
Disable stress for some unit test.
...
Some unit tests specifically test scavenges and forcing them to do
global GCs instead makes no sense. The GC stress builder triggers this.
R=yangguo@chromium.org
TEST=cctest/test-api --stress-compaction
Review URL: https://codereview.chromium.org/11421098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-27 15:30:12 +00:00
mstarzinger@chromium.org
77dcc8dac5
Make unit tests that fill new-space work under stress.
...
This makes sure that unit tests that try to fill up the new-space work
on the GC stress buildbots as well.
R=yangguo@chromium.org
TEST=cctest/test-heap --gc-interval=500 --stress-compaction
Review URL: https://codereview.chromium.org/11416200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-27 12:52:51 +00:00
verwaest@chromium.org
1b0e373f09
Avoid double initialization of arrays.
...
Review URL: https://chromiumcodereview.appspot.com/11413179
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-27 12:01:14 +00:00
verwaest@chromium.org
beeb751278
Ensure we do not clobber the register holding the elements backing store.
...
Review URL: https://chromiumcodereview.appspot.com/11316168
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-26 15:58:27 +00:00
verwaest@chromium.org
ebeaad6cb5
Ensure double arrays are filled with holes when extended from variations of empty arrays.
...
BUG=162085
Review URL: https://chromiumcodereview.appspot.com/11414155
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-26 14:29:21 +00:00
jkummerow@chromium.org
c7b18f3a71
Fix test262 expectations for fast implementation of Math.exp()
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/11418153
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-26 13:40:00 +00:00
jkummerow@chromium.org
79563b22c9
Faster implementation of Math.exp()
...
Review URL: https://codereview.chromium.org/11418149
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-26 13:12:35 +00:00
rossberg@chromium.org
5593b956b2
Censor .caller if it is a strict function instead of throwing.
...
For details, see:
http://www.mail-archive.com/es-discuss@mozilla.org/msg19322.html
https://bugs.ecmascript.org/show_bug.cgi?id=310
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/11417140
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-23 15:47:58 +00:00
rossberg@chromium.org
21b7af787f
Fix strict mode test case, so that it succeeds for the right reason.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/11348196
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-23 15:45:03 +00:00
rossberg@chromium.org
085bf78c70
Object.observe: Tests for __define{G,S}etter__.
...
R=adamk@chromium.org ,rafaelw@chromium.org
BUG=
Review URL: https://codereview.chromium.org/11348193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-23 15:43:54 +00:00
danno@chromium.org
6db4bc2f4d
Force small array literals to have FAST_ELEMENTs
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/11414139
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-23 13:23:39 +00:00
yangguo@chromium.org
bebf37799e
Fix JSON.stringify for objects with interceptor handlers.
...
BUG=161028
Review URL: https://chromiumcodereview.appspot.com/11348209
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-23 12:32:24 +00:00
mmassi@chromium.org
a0582112f8
Revert r13025 and r13026 (they introduced a bug on arm and regressed octane crypto).
...
BUG=
Review URL: https://chromiumcodereview.appspot.com/11316151
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-23 10:53:03 +00:00
rossberg@chromium.org
07481867a1
Object.observe: More tests for accessor reconfiguration.
...
R=adamk@chromium.org ,rafaelw@chromium.org
BUG=
Review URL: https://codereview.chromium.org/11280118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-22 10:31:42 +00:00
rossberg@chromium.org
ce05280bfc
Get rid of static module allocation, do it in code.
...
Modules now have their own local scope, represented by their own context.
Module instance objects have an accessor for every export that forwards
access to the respective slot from the module's context. (Exports that are
modules themselves, however, are simple data properties.)
All modules have a _hosting_ scope/context, which (currently) is the
(innermost) enclosing global scope. To deal with recursion, nested modules
are hosted by the same scope as global ones.
For every (global or nested) module literal, the hosting context has an
internal slot that points directly to the respective module context. This
enables quick access to (statically resolved) module members by 2-dimensional
access through the hosting context. For example,
module A {
let x;
module B { let y; }
}
module C { let z; }
allocates contexts as follows:
[header| .A | .B | .C | A | C ] (global)
| | |
| | +-- [header| z ] (module)
| |
| +------- [header| y ] (module)
|
+------------ [header| x | B ] (module)
Here, .A, .B, .C are the internal slots pointing to the hosted module
contexts, whereas A, B, C hold the actual instance objects (note that every
module context also points to the respective instance object through its
extension slot in the header).
To deal with arbitrary recursion and aliases between modules,
they are created and initialized in several stages. Each stage applies to
all modules in the hosting global scope, including nested ones.
1. Allocate: for each module _literal_, allocate the module contexts and
respective instance object and wire them up. This happens in the
PushModuleContext runtime function, as generated by AllocateModules
(invoked by VisitDeclarations in the hosting scope).
2. Bind: for each module _declaration_ (i.e. literals as well as aliases),
assign the respective instance object to respective local variables. This
happens in VisitModuleDeclaration, and uses the instance objects created
in the previous stage.
For each module _literal_, this phase also constructs a module descriptor
for the next stage. This happens in VisitModuleLiteral.
3. Populate: invoke the DeclareModules runtime function to populate each
_instance_ object with accessors for it exports. This is generated by
DeclareModules (invoked by VisitDeclarations in the hosting scope again),
and uses the descriptors generated in the previous stage.
4. Initialize: execute the module bodies (and other code) in sequence. This
happens by the separate statements generated for module bodies. To reenter
the module scopes properly, the parser inserted ModuleStatements.
R=mstarzinger@chromium.org ,svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/11093074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-22 10:25:22 +00:00
svenpanne@chromium.org
f275b36299
Reduced TLS accesses even further.
...
Thread the Isolate through FindCodeInCache, FindCodeInSpecialCache and
SetProperty. Reduced the number of TLS accesses while running the Octane
benchmark down to 19% compared to the beginning of the cleanups.
Review URL: https://codereview.chromium.org/11411033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-22 07:58:59 +00:00