ager@chromium.org
723bed3105
Optimize calls to evals. Most of the time there is no reason to
...
perform a context lookup in the runtime system for the 'eval'
function. Instead load the 'eval' function from the global context in
generated code if it is not shadowed.
Will port to other platforms as a separate change.
Review URL: http://codereview.chromium.org/2666001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 10:19:19 +00:00
vitalyr@chromium.org
6c74d30f83
Fix double to integer conversions in runtime string indexing.
...
Review URL: http://codereview.chromium.org/2577001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-03 11:31:19 +00:00
vitalyr@chromium.org
3ec0b86495
Make StringCharCodeAt runtime function do what it name implies and not
...
just indexed string access.
The difference is that String.prototype.charCodeAt accepts any number
as an index, whereas string[] only accepts array indices.
Review URL: http://codereview.chromium.org/2467006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-03 09:32:07 +00:00
vegorov@chromium.org
fc7c5f789a
Cardmarking writebarrier.
...
Reapply r4715 with fixes reviewed in http://codereview.chromium.org/2276002 .
Review URL: http://codereview.chromium.org/2255004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 12:30:45 +00:00
ricow@chromium.org
5058db86c4
Add support for getOwnPropertyDescriptor on array indices (fixes issue 599).
...
This fix adds support for retriving a property descriptor on elements. The
new version supports both fast and slow case elements. In the fast case
we always default configurable, writable, enumerable to true (we don't have
PropertyDetails for fast elements).
A few new tests are added to get-own-property-descriptor.js, I will
add a lot more to object-define-property when I add support for indices in
Object.defineProperty.
Review URL: http://codereview.chromium.org/2278002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 07:43:43 +00:00
vitalyr@chromium.org
64bc39a726
Fix: make string indexing work with Infinity.
...
NumberToUint32 that I was trying to use maps -0 to +0 (as desired) but
also maps +/-Infinity to +0, which made +/-Infinity a valid string
index. I fixed it by introducing a new runtime function with the right
semantics.
TEST=LayoutTests/fast/js/char-at.html,mjsunit/string-charat.js
Review URL: http://codereview.chromium.org/2223003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-26 16:11:30 +00:00
vegorov@chromium.org
e268fbdaba
Revert r4715.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2274001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-26 09:24:44 +00:00
vegorov@chromium.org
675e711f1c
Cardmarking writebarrier.
...
- New сardmarking write barrier handles large objects and normal objects in a similar fashion (no more additional space for pointer tracking is required, no conditional branches in WB code).
- Changes to enable oldspaces iteration without maps decoding:
-- layout change for FixedArrays: length is stored as a smis (initial patch by
Kevin Millikin)
-- layout change for SharedFunctionInfo: integer fields are stored as smi on
arm, ia32 and rearranged on x64.
-- layout change for String: meaning of LSB bit is fliped (1 now means hash not
computed); on x64 padding is added.
-- layout of maps is _not_ changed. Map space is currently iterated in a special
way.
Review URL: http://codereview.chromium.org/2144006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-25 13:15:16 +00:00
vegorov@chromium.org
2241d2af45
Reverting r4703.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2073018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-21 17:37:47 +00:00
vegorov@chromium.org
8879691793
Cardmarking writebarrier.
...
Reapplication of r4685 (reviewed http://codereview.chromium.org/2101002 ) with minor modifications:
- Fix compilation problems on Win64.
- Improve heap verification pass: search for garbage pointers to new space not only in dirty regions but in all regions.
Review URL: http://codereview.chromium.org/2114015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-21 15:52:38 +00:00
vegorov@chromium.org
955828e437
Reverting r4685, r4686, r4687
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2071020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-20 14:02:51 +00:00
vegorov@chromium.org
b38a0a719a
- Changes to enable oldspaces iteration without maps decoding:
...
-- layout change for FixedArrays: length is stored as a smis (initial patch by Kevin Millikin)
-- layout change for SharedFunctionInfo: integer fields are stored as smi on arm, ia32 and rearranged on x64.
-- layout change for String: meaning of LSB bit is fliped (1 now means hash not computed); on x64 padding is added.
-- layout of maps is _not_ changed. Map space is currently iterated in a special way.
- Cardmarking write barrier. New barrier handles large objects and normal objects in a similar fashion (no more additional space for pointer tracking is required, no conditional branches in WB code).
Review URL: http://codereview.chromium.org/2101002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-20 13:10:38 +00:00
vitalyr@chromium.org
4724826f4a
Refactored custom call IC generators:
...
* All generators are listed in a single place.
* Generators are installed as a separate pass in the bootstrapper.
* Replaced pointers to generator functions with integer ids.
Review URL: http://codereview.chromium.org/1981002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-06 13:21:53 +00:00
antonm@chromium.org
4501cea97b
Throw an exception when wrong arguments are passed into SwapElements.
...
This runtime function should operate on elements and thus 'receiver'
must be JSObject and indices should be numbers.
TBR=lrm@chromium.org ,ricow@chromium.org
Review URL: http://codereview.chromium.org/1960001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-04 17:24:41 +00:00
peter.rybin@gmail.com
5435396701
Make LiveEdit natives fuzzy
...
Review URL: http://codereview.chromium.org/1687022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-04 13:07:36 +00:00
antonm@chromium.org
8e56358e1d
Use ScopedVector instead of dynamically allocated array.
...
This ensures that it'll be released on any control path leaving
the function thanks to desctuctor semantics.
BUG=42925
Review URL: http://codereview.chromium.org/1712025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-30 10:27:25 +00:00
antonm@chromium.org
55e32d2f3b
Introduce faster swapping primitives.
...
Keyed store stub sits high in sorting profiles.
Swapping allows to save us additional type checks as we could both read and
write elmenets (on fast path) without them.
Review URL: http://codereview.chromium.org/1709008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-29 15:14:39 +00:00
oleg@chromium.org
c98c930b1f
Simplify double to number convertion.
...
Review URL: http://codereview.chromium.org/1694004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-29 14:01:37 +00:00
dgozman@chromium.org
8fee5e810a
Added ability to remove prototype from function. In this case, [[Construct]] from function will not be allowed.
...
Added runtime function %FunctionRemovePrototype for this.
Removed prototypes from all builtin functions.
Some sputnik tests marked as fixed.
Added test to check builtins behavior.
Review URL: http://codereview.chromium.org/1722003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-28 12:05:40 +00:00
peter.rybin@gmail.com
80453231fe
LiveEdit: breakpoints updates and fixes for related problems
...
Review URL: http://codereview.chromium.org/1800007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-28 11:38:43 +00:00
erik.corry@gmail.com
3206d70dec
Fix search-for-string and replace global to avoid hangs
...
and spurious exceptions.
Review URL: http://codereview.chromium.org/1687013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-27 11:45:08 +00:00
peter.rybin@gmail.com
af63e61605
Support multi-chunk differences
...
Review URL: http://codereview.chromium.org/1672006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-21 16:59:58 +00:00
antonm@chromium.org
0710de75c0
Fix one off error.
...
Proper condition to start eviction is when next possible index is equal
to cache length.
Review URL: http://codereview.chromium.org/1709001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-21 11:13:53 +00:00
lrn@chromium.org
1e46286091
Add missing check to StringBuilderConcat runtime function.
...
Review URL: http://codereview.chromium.org/1578036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-20 13:10:18 +00:00
peter.rybin@gmail.com
8fdc7a5ae1
LiveEdit: calculate a real script difference
...
Review URL: http://codereview.chromium.org/1652008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-19 16:08:26 +00:00
antonm@chromium.org
a713b27428
Introduce fast native caches and use it in String.search.
...
Review URL: http://codereview.chromium.org/1563005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-14 14:46:15 +00:00
lrn@chromium.org
7bca61c11d
Fix build problems on Windows 64-bit by casting.
...
Gave the root register a name for reference.
Review URL: http://codereview.chromium.org/1539033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-13 11:59:37 +00:00
lrn@chromium.org
285d5bc48a
Native construction of RegExp result objects, with in-object index and input.
...
Avoid cloning using CloneRegExpResult for results that are just arrays.
Made a more direct path for string.match with string argument.
Review URL: http://codereview.chromium.org/1645001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-13 09:31:03 +00:00
antonm@chromium.org
400b1be449
Faster invocation of custom comparator function.
...
Review URL: http://codereview.chromium.org/1623004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-12 07:05:24 +00:00
peter.rybin@gmail.com
4e6a738e63
LiveEdit: update breakpoint positions for non-changed functions
...
Review URL: http://codereview.chromium.org/1090003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-08 12:37:10 +00:00
sgjesse@chromium.org
c0976e9276
Add number string cache lookup for heap numbers to generatred code (on top of the already existing smi lookup)
...
Added a number to string runtime function which does not try to do a cache lookup as the number is known to not be in the cahce.
Review URL: http://codereview.chromium.org/1602010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-07 11:13:05 +00:00
peter.rybin@gmail.com
be5bb26e38
LiveEdit: implement frame dropping
...
Review URL: http://codereview.chromium.org/1118007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-06 17:58:28 +00:00
serya@chromium.org
eb04a6a95f
JS implementation of isFinite.
...
Review URL: http://codereview.chromium.org/1608003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-06 10:40:25 +00:00
serya@chromium.org
9877ea8b90
Parsing some kinds of integers and junk values in Runtime_NumberToString. For that values the string is converted into int and then into SMI. It lets to avoid floating point operations.
...
Committed: http://code.google.com/p/v8/source/detail?r=4331
Review URL: http://codereview.chromium.org/1572004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-05 08:00:28 +00:00
serya@chromium.org
93477c22d3
StringToInt rewritten. This version doesn't allocate memory for long decimals and uses percise rounding if radix 10 or a power of 2 (in other cases rounding error still may occur). Handling special values moved from Runtime_StringParseInt into StringToInt in order to make it consistent with StringToDouble.
...
Committed: http://code.google.com/p/v8/source/detail?r=4329
Review URL: http://codereview.chromium.org/1529004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-31 17:19:05 +00:00
serya@chromium.org
4db3400782
Parsing some kinds of integers and junk values in Runtime_NumberToString. For that values the string is converted into int and then into SMI. It lets to avoid floating point operations.
...
Review URL: http://codereview.chromium.org/1572004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-31 12:00:57 +00:00
serya@chromium.org
704eca9aca
Reverting r4329 due to failure in webkit tests.
...
Review URL: http://codereview.chromium.org/1579004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-31 11:13:42 +00:00
serya@chromium.org
dcd96d1fa0
StringToInt rewritten. This version doesn't allocate memory for long decimals and uses percise rounding if radix 10 or a power of 2 (in other cases rounding error still may occur). Handling special values moved from Runtime_StringParseInt into StringToInt in order to make it consistent with StringToDouble.
...
Review URL: http://codereview.chromium.org/1529004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-31 10:11:33 +00:00
vitalyr@chromium.org
c51c67d9c0
Make link happy.
...
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/1558005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-30 14:02:40 +00:00
lrn@chromium.org
ce1d3ca80a
Fix bug in string replace with nonparticipating captures.
...
Review URL: http://codereview.chromium.org/1565004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-30 13:26:13 +00:00
lrn@chromium.org
845fd15dd6
Pre-create properties on JSRegExp objects
...
Initialize properties in single runtime call.
Review URL: http://codereview.chromium.org/1350003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-26 14:19:47 +00:00
lrn@chromium.org
498b074bd0
Run string replace regexp with function in C++ code loop.
...
Reuses the result array to save on allocation.
Matches Safari's behavior.
Review URL: http://codereview.chromium.org/1109010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-25 12:57:58 +00:00
erik.corry@gmail.com
3672624b45
Fix pop push optimization to work with partial snapshots (correct
...
registration of external references in Proxy objects).
I moved the declaration of the two functions to stub-cache.h
because with all the types they use it's hard to declare them
anywhere else. But the actual definition is still in runtime.cc
near to the place where they are used.
Review URL: http://codereview.chromium.org/1079012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-23 14:33:42 +00:00
kasperl@chromium.org
7d6a3b433f
Merge the partial_snapshots branch back into bleeding_edge. For
...
now, the custom call generator stuff is disabled.
Review URL: http://codereview.chromium.org/1094014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-23 11:40:38 +00:00
iposva@chromium.org
a1ec99c05d
- Remove function boilerplate objects and use SharedFunctionInfos in
...
their place.
- Add one field to the SharedFunctionInfo to remember the number of
literals used in this function.
Review URL: http://codereview.chromium.org/669240
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-23 06:04:44 +00:00
ager@chromium.org
103db91e12
Add parens to DateYMDFromTimeSlow to clearify.
...
BUG=649
Review URL: http://codereview.chromium.org/1132002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-19 08:00:52 +00:00
oleg@chromium.org
825a5d741f
Improve Math.round(). Fix the bug in r4146. Further improve performance by checking the exponent instead of comparing doubles. Add several tests for numbers near the limits of SMI and several tests from WebKit.
...
Review URL: http://codereview.chromium.org/1008004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-18 13:00:57 +00:00
vitalyr@chromium.org
494ba3a4c8
Fix windows build again: one more memchr call.
...
Review URL: http://codereview.chromium.org/1109001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-18 09:38:30 +00:00
vitalyr@chromium.org
c3972d21fb
Fix windows build.
...
On windows memchr returns const void* instead of void*.
Review URL: http://codereview.chromium.org/1074003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-18 09:27:15 +00:00
vitalyr@chromium.org
b148282b56
String search performance improvements:
...
* Using memchr for first/only char lookup is faster than hand-coded
loop. It processes one machine word per iteration so it helps even
more on x64.
* Tweaked badness computation in simple search. We pay only for the
first char memchr scans, not for all of them.
Review URL: http://codereview.chromium.org/1100002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-18 09:01:08 +00:00
erik.corry@gmail.com
dda96b61c6
Fix formatting around * and &.
...
Review URL: http://codereview.chromium.org/1000007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-17 14:53:16 +00:00
fschneider@chromium.org
38d6470fca
Revert r4146. Add a special case in Math.round for a SMI result. Also change the imp...
...
TBR=ager@chromium.org ,
Review URL: http://codereview.chromium.org/1042006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-17 09:58:28 +00:00
oleg@chromium.org
78f19f1ae9
Add a special case in Math.round for a SMI result. Also change the implementation for non-SMI case.
...
Review URL: http://codereview.chromium.org/981002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-16 13:23:41 +00:00
vitalyr@chromium.org
6a10a837c0
Add heuristic for flattening strings before comparing them.
...
Also switched to using CompareChars instead of memcmp since it's
faster than gcc's builtin and on par with msvc's builtin.
Review URL: http://codereview.chromium.org/991002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-16 12:30:04 +00:00
lrn@chromium.org
11dca3ae12
Fix build problem on arm compiler.
...
Review URL: http://codereview.chromium.org/975005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-16 09:10:11 +00:00
peter.rybin@gmail.com
ad876956c0
LiveEdit: patch positions in function
...
Review URL: http://codereview.chromium.org/914003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-15 21:06:51 +00:00
lrn@chromium.org
d8aed420a9
Converted String.prototype.split with string to C++.
...
Review URL: http://codereview.chromium.org/875001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-15 15:27:11 +00:00
antonm@chromium.org
c2dc316138
Add Array.concat builtin for the most common case.
...
Review URL: http://codereview.chromium.org/954001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-15 10:52:38 +00:00
antonm@chromium.org
7f1eda50cc
Implement a custom call compiler for Array.pop.
...
Review URL: http://codereview.chromium.org/870007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-12 13:45:31 +00:00
oleg@chromium.org
5f75b01bb1
Rewrite the function that converts timestamp to year, month and day in C++.
...
Review URL: http://codereview.chromium.org/811006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-12 13:01:32 +00:00
antonm@chromium.org
de070ccfa6
First take on custom call generators.
...
Review URL: http://codereview.chromium.org/669061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-11 16:24:31 +00:00
ager@chromium.org
ef371f3f24
Do not waste space for the fast-case elements backing storage for
...
object-literals with few elements but large element indices.
We can decide at parse time whether the created object literal should
have fast-case of slow-case elements.
Remove unused runtime function.
Review URL: http://codereview.chromium.org/805004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-11 10:34:29 +00:00
sgjesse@chromium.org
e5f27966dc
Add fuzzing support for inline runtime functions
...
The inline runtime functions are now included in the fuzzing of the natives. The chack for the expected number of arguments passed have been moved to the parser which will generate a syntax error if a runtime function (either C++ or inline) is called with a different number of arguments than expected.
Review URL: http://codereview.chromium.org/573056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-11 09:27:12 +00:00
serya@chromium.org
4fd99d23cc
Math.abs rewrited to not use Runtime.
...
Review URL: http://codereview.chromium.org/799006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-11 08:31:15 +00:00
peter.rybin@gmail.com
9c9451eff3
Check that function being patched has no activations on any thread stack
...
Review URL: http://codereview.chromium.org/668246
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-09 21:45:24 +00:00
peter.rybin@gmail.com
77d63cc29e
Basic implementation of liveedit feature
...
Review URL: http://codereview.chromium.org/652027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-05 22:08:58 +00:00
sgjesse@chromium.org
df4471c8f3
Fix stack tweaking in array allocation
...
When Array(0) or new Array(0) is handled by the generated code it is handled
by the same code as Array() and new Array(). For this to work the stack is
tweaked to remove the argument of value 0. However the argc was still passed
as 1 if a call to the runtime system was made.
When the stack is tweaked argc is also changed to 0.
BUG=634
TEST=test/mjsunittest/mjsunit/regress/regress-634.js
Review URL: http://codereview.chromium.org/668155
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-05 13:43:53 +00:00
vitalyr@chromium.org
48cc7ed3b0
Fixed filling of char array in StringToArray.
...
Review URL: http://codereview.chromium.org/669159
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-05 13:33:33 +00:00
vitalyr@chromium.org
9ce2f728d5
Removed dangerous Factory::NewUninitializedFixedArray.
...
This was used in runtime StringToArray function which I simplified
keeping its performance for ascii strings.
Review URL: http://codereview.chromium.org/669156
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-05 12:30:59 +00:00
vitalyr@chromium.org
05a74e8131
Add runtime function for string to array conversion.
...
Review URL: http://codereview.chromium.org/669060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-04 14:03:08 +00:00
vitalyr@chromium.org
6e32048eda
Fast case conversion for ascii strings.
...
Review URL: http://codereview.chromium.org/660455
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-03 16:40:29 +00:00
oleg@chromium.org
d49a5db0a4
Fix broken test in WebKit test suite and add the test in question to V8 tests.
...
Review URL: http://codereview.chromium.org/661466
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-03 14:19:04 +00:00
vitalyr@chromium.org
9f681fa9d6
Small API improvements:
...
* Added Get and Set taking uint32_t for faster and more convenient
access to elements.
* Added less verbose casting for handles. Now instead of
v8::Local<v8::String>::Cast(args[0])
one can write
args[0].As<v8::String>().
Review URL: http://codereview.chromium.org/660243
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-02 18:47:03 +00:00
oleg@chromium.org
99e67e0e77
Prevent "control reaches end of non-void function" warning from gcc on Mac.
...
Review URL: http://codereview.chromium.org/660379
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-02 14:44:01 +00:00
oleg@chromium.org
5e0763efd5
Revert change to EquivalentTime in date.js. The checks that I've removed in the last changed were essential after all.
...
Review URL: http://codereview.chromium.org/660375
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-02 14:19:34 +00:00
oleg@chromium.org
b021997f81
Rewrite MakeDay function from JS to C++.
...
Review URL: http://codereview.chromium.org/661366
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-02 13:29:26 +00:00
antonm@chromium.org
d4cb1ba3c5
Faster moving FixedArray elements around.
...
Review URL: http://codereview.chromium.org/660245
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-01 15:33:30 +00:00
bak@chromium.org
4766a592ce
- Pushed source code for functions into old space.
...
- Renamed TryFlattenIfNotFlat to TryFlatten.
Review URL: http://codereview.chromium.org/661181
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-26 14:37:33 +00:00
ricow@chromium.org
496868722f
Added fast support for Math.pow. This simply calculates the result using the
...
same method as the old powi version in runtime.cc and also checks if
the exponent is 0.5 or -0.5 in which case we calculate the square root or
reciprocal value of the square root.
Review URL: http://codereview.chromium.org/660072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-26 10:24:58 +00:00
ager@chromium.org
d2061c07c8
Fix presubmit error.
...
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/661090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-25 18:26:36 +00:00
ager@chromium.org
4a9d4b7bd5
Fix the mac debug build. Apparently g++ on Mac cannot figure out that there
...
is a return in each branch of an if-else.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/661088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3956 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-25 18:19:12 +00:00
oleg@chromium.org
a6940ef0a8
Optimize three Number2Integer functions in runtime.cc: remove the check that was already done in JavaScript, add simpler code in case we are getting a SMI
...
result.
Code review: http://codereview.chromium.org/660084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-25 16:46:37 +00:00
vitalyr@chromium.org
945673574e
Improve string runtime compare performance for flat strings.
...
Review URL: http://codereview.chromium.org/650058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-25 12:49:23 +00:00
lrn@chromium.org
3135110af8
IA32: Native access to TranscendentalCache for sin/cos.
...
Review URL: http://codereview.chromium.org/652041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-23 10:29:02 +00:00
vitalyr@chromium.org
91a2fb7ace
Land patch by Oleg Eterevsky (oleg@chromium.org).
...
Original review: http://codereview.chromium.org/646010/show
Change the implementation of lastIndexOf method of String. Convert the
strings in question to Vector<char> or Vector<uc16> and execute simple
search algorithm on them.
The difference in speed on 500k character string is about 10x.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/650036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-19 17:11:47 +00:00
vitalyr@chromium.org
c03db75853
Some string optimizations:
...
* Inlined checks for strings and regexps.
* Rewrote split for the non-regexp case.
* Implemented one-char case for lastIndexOf.
Review URL: http://codereview.chromium.org/596122
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-19 13:07:37 +00:00
ricow@chromium.org
24011207c6
Removed asserts on attributes when setting elements. Will file a bug on not handling elements correctly when using Object.defineProperty
...
Review URL: http://codereview.chromium.org/651025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-19 12:16:00 +00:00
ager@chromium.org
806c15e4b5
Remove the LookupResult IsValid method because it is confusing.
...
Replaced IsValid by IsPropertyOrTransition and used IsProperty in most
of the places where IsValid was used before. Most of the time when
inspecting a lookup result we really want to know if there is a real
property present. Only for stores are we interested in transitions.
BUG=http://crbug.com/20104
TEST=cctest/test-api/NamedInterceptorMapTransitionRead
Review URL: http://codereview.chromium.org/647015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-18 15:10:35 +00:00
ricow@chromium.org
0d6fe0a44f
Added access check to SetNormalizedProperty which is used from runtime DefineOrRedefineDataProperty.
...
Review URL: http://codereview.chromium.org/647010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-18 13:13:21 +00:00
sgjesse@chromium.org
ecf4b9fc76
Refactor the check for generating inline constructors
...
Moved all the logic to a function on SharedFunctionInfo (including the flag check) to make things more readable.
Changed the check for setter to do a lookup for a named setter for each of the properties assigned in the constructor.
Added tests using accessors and interseptors set through the API.
Added fast case objects to the mjsunit test.
TEST=test/mjsunit/setter-on-constructor-prototype.js
TEST=test/cctest/test-api/SetterOnConstructorPrototype
TEST=test/cctest/test-api/InterceptorOnConstructorPrototype
Review URL: http://codereview.chromium.org/619006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-18 09:07:03 +00:00
mikhail.naganov@gmail.com
39e63f0aec
Implement tagging of profiler log event blocks.
...
This change allows to associate integer tags with blocks of profiler
log events, and repeat calls to 'ResumeProfiler' / 'PauseProfiler' in
order to establsh nested (not necessary properly nested) blocks. By
supporting this, we will be able to match WebInspector's CPU profiler
abilities in DevTools.
I also refactored some testing code.
Review URL: http://codereview.chromium.org/619004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-17 13:23:46 +00:00
sgjesse@chromium.org
1684b2d9ac
Remove duplicate function from runtime.
...
Review URL: http://codereview.chromium.org/620003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-17 11:26:00 +00:00
kmillikin@chromium.org
3c0d77f32e
Fix stack corruption when calling non-function.
...
Fix for issue 603.
Revision r3484 removed the property name from the call stack for
call ICs. When a non-function was called via a call IC and
Function.prototype.call, an extra value was left on the stack that the
caller could not know to clean up.
Fix is to change the JS builtin used for calling non-functions. It
now gets the callee as receiver, rather than iterating stack frames
and finding it on the expression stack of its JS caller.
Review URL: http://codereview.chromium.org/604064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-17 08:26:50 +00:00
sgjesse@chromium.org
1c2b2ac9c6
Fix construction of simple objects with setters on prototype
...
Simple objects which are constructed without calling the actual constructor function did not take setters defined on prototype chain of the new object into account.
Constructing objects this way is now not done if there are setters involved on the prototype chain of the new object.
This only fixes the case where the setter is found when the first object from a constructor is created. If the prototype chain is changed new objects will on take any change to setters into account.
TEST=test/mjsunit/setter-on-constructor-prototype.js
Review URL: http://codereview.chromium.org/606062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-17 06:28:33 +00:00
ager@chromium.org
a9e174f8ea
Make sure that the inline_new flag guards all the optimizations for
...
constructors that only contain simple this assignments.
Make sure that constructors with declarations are not treated as
constructors with only simple this property assignments.
Review URL: http://codereview.chromium.org/601081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 15:14:34 +00:00
ricow@chromium.org
f119ecbc7a
Added checked convert of object to DefineOrRedefineAccessorProperty.
...
Review URL: http://codereview.chromium.org/570040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-05 07:19:09 +00:00
sgjesse@chromium.org
4bf7a6c037
Fixed another presubmit error
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/572011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-04 20:43:59 +00:00
ricow@chromium.org
a28143c77c
Added extra tests to the DefineOrRedefineAccessorProperty and
...
DefineOrRedefineDataProperty to avoid invalid input.
Added tests to object-define-property.js to test that it does not crash
on invalid input.
Review URL: http://codereview.chromium.org/572005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-04 19:43:56 +00:00
ricow@chromium.org
4f179b09ba
Added IsProperty() check to result in DefineOrRedefineAccessor - if no check
...
this causes the debug check to fails since type() asserts that the
lookup_type != NOT_FOUND. This does not change any functionality since we
explicitly checked if it was one of the three types that we need to delete.
Also changed defineProperties in v8natives to actually return the object
being defined (as specified by spec)
Review URL: http://codereview.chromium.org/572003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-04 11:28:03 +00:00
ricow@chromium.org
f74a08d8ee
Added Object.defineProperty + needed internal functionality:
...
DefineOwnProperty (changed to allow for redefinition of existing property)
SameValue
Extra info on propertydescriptor
GetProperty
HasProperty
Currently the DefineOrRedefineAccessorProperty deletes the existing
property on the object if it is a dataproperty (FIELD or NORMAL) and
adds a new one. This can potentially be optimized.
Review URL: http://codereview.chromium.org/555149
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-03 13:10:03 +00:00