sgjesse@chromium.org [Thu, 15 Jan 2009 12:29:05 +0000 (12:29 +0000)]
Reverted r1078 as it was committed by accident without review.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1079
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 15 Jan 2009 12:10:34 +0000 (12:10 +0000)]
Added handles to the mirror objects. When a mirror for an object is created it is assigned a numeric handle. Handles are used to make a 1:1 correspondence between objects and mirrors. Currently the mirrors are cached in a JavaScript array and when creating a mirror this cache is checked to see if a mirror already exists for the object. This cache is cleared when leaving the debugger.
Changed the serialization format to take advantage of these handles. When an object is serialized referenced objects are represented just by their handle id serialized as '{ref:<handle>}'. During serialization the referenced handles are collected and the serializer can provide a serialization of all the referenced objects.
Removed the special handling of array properties. Indexed properties and the length property are now rendered as named properties in the serialization.
Removed the special serialization handling of RegExp properties. The properties 'source', 'global', 'ignoreCase' and 'multiline' are serialized with the rest of the properties.
Changed a lot of tests to handle the changed format.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1078
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 15 Jan 2009 11:31:08 +0000 (11:31 +0000)]
Fix issue 191:
http://code.google.com/p/v8/issues/detail?id=191
Accessor setters should not be called for eval-introduced context
extension objects.
This change fixes the issue, but I think it is time to separate out
the lookup routines for eval-introduced context extension objects.
There is no reason to use the general lookup routines for this. I'll
do that in a separate changelist.
Review URL: http://codereview.chromium.org/18090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1076
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Thu, 15 Jan 2009 08:32:50 +0000 (08:32 +0000)]
Fixed some external references in the ARM code generator to use an ExternalReference wrapper.
Review URL: http://codereview.chromium.org/18266
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1074
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 14 Jan 2009 12:13:26 +0000 (12:13 +0000)]
Fix issue 186:
http://code.google.com/p/v8/issues/detail?id=186
Create a new instance type for context extension objects. Use it to
not use the __proto__ accessor for context extension objects.
Review URL: http://codereview.chromium.org/18044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1072
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 14 Jan 2009 11:48:52 +0000 (11:48 +0000)]
Fixed test failure caused by being more conservative in estimating the
length of expressions containing backreferences. Bad plesner for
forgetting to run the tests before submitting!
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1071
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 14 Jan 2009 11:32:23 +0000 (11:32 +0000)]
Added clearing of captures before entering the body of a loop. This
also revealed a bug or two that had to be fixed.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1070
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 14 Jan 2009 09:20:13 +0000 (09:20 +0000)]
Add failing test for issue 186:
http://code.google.com/p/v8/issues/detail?id=186
The issue is that the extension object is a normal javascript object
on which assignments to __proto__ changes the prototype chain.
Review URL: http://codereview.chromium.org/18221
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1069
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 13 Jan 2009 14:38:44 +0000 (14:38 +0000)]
Refactored the mirror representation of properties. Removed the AssessorMirror and InterceptorPropertyMirror and moved all reflection for properties to PropertyMirror. From a PropertyMirror it can be checked whether a property has getter/setter defined in JavaScript and information on the getter/setter functions are now available. If calling the getter resulted in an exception this is reflected as well.
Properties from interceptors are also reflected through PropertyMirror as the distinction did not make sense seen from a JavaScript debugging perspective. The isNative function on a PropertyMirror can be used to check whether a property is defined natively by the host (or V8).
Simplified the local property lookup in the debug runtime call to just call GetProperty as the property is known to be a local property.
Review URL: http://codereview.chromium.org/17377
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1068
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Tue, 13 Jan 2009 14:38:12 +0000 (14:38 +0000)]
Avoiding the assumption that the pc pointer of RelocInfo points to the word containing the target address. It wasn't true for ARM. (One step closer to serialization on ARM).
Review URL: http://codereview.chromium.org/17376
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1067
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 13 Jan 2009 10:16:02 +0000 (10:16 +0000)]
The "enter" opcode was slow and crashes for large arguments on Windows.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1066
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 13 Jan 2009 09:27:47 +0000 (09:27 +0000)]
Fix benchmarks to not format scores that are really errors.
Uploading for Kasper.
Review URL: http://codereview.chromium.org/17641
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1061
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 13 Jan 2009 09:23:26 +0000 (09:23 +0000)]
Unsigned number can't be negated in the VisualStudio compiler.
Fixed a few earlier review comments that had slipped through.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1060
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Tue, 13 Jan 2009 07:37:53 +0000 (07:37 +0000)]
Introducing a kUninitialized constant used for clearing the function cache.
Review URL: http://codereview.chromium.org/17639
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1057
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Tue, 13 Jan 2009 07:13:33 +0000 (07:13 +0000)]
Do not cache functions until we know they are fully constructed. This is needed in case of a stack overflow during construction.
Review URL: http://codereview.chromium.org/17354
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1056
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 12 Jan 2009 13:05:23 +0000 (13:05 +0000)]
Separately growing stack for irregexp ia32 backtrack stack.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1053
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 12 Jan 2009 11:07:02 +0000 (11:07 +0000)]
Fix comment typo.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1052
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 12 Jan 2009 10:59:58 +0000 (10:59 +0000)]
Allocate as many object-literal properties as possible inobject.
This can lead to large objects which wastes a lot of space if we normalize properties. We therfore clear the inobject properties when normalizing properties. This is done by adjusting the instance size in the new map and overwriting the inobject properties with a filler.
Review URL: http://codereview.chromium.org/17308
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1051
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 8 Jan 2009 12:40:47 +0000 (12:40 +0000)]
Added check that bails out of a repetition when the body is empty.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1047
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 8 Jan 2009 11:44:06 +0000 (11:44 +0000)]
Fixed lint.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1046
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 8 Jan 2009 11:35:34 +0000 (11:35 +0000)]
Added more constness to the api. There are still some methods back
that could be const but aren't, but now at least all the obvious ones
should be.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1045
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 8 Jan 2009 10:40:09 +0000 (10:40 +0000)]
Remove unused code.
Review URL: http://codereview.chromium.org/17410
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1044
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Wed, 7 Jan 2009 23:26:31 +0000 (23:26 +0000)]
Fix for issue 171:
- Make sure to not destroy the instance type by slightly rearranging the code.
- Added regression test.
Review URL: http://codereview.chromium.org/16594
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1042
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 7 Jan 2009 14:24:08 +0000 (14:24 +0000)]
Fixed build with no ENABLE_LOGGING_AND_PROFILING
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1039
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 7 Jan 2009 11:51:03 +0000 (11:51 +0000)]
Allow 2009 as a valid year in the copyright header.
Review URL: http://codereview.chromium.org/16568
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1038
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Wed, 7 Jan 2009 09:58:58 +0000 (09:58 +0000)]
Fix for issue 91 (code.google.com/p/v8/issues/detail?id=91)
Review URL: http://codereview.chromium.org/17232
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1036
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 7 Jan 2009 09:27:30 +0000 (09:27 +0000)]
Factored the generation of JSON serialization from beeing part of the mirror objects into a seperate class. The purpose of this is to make it easier to change the serialization to contain object identification and references.
Added a test case for the script mirror and modified a number of the other mirror tests.
Review URL: http://codereview.chromium.org/16539
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1035
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Tue, 6 Jan 2009 14:53:10 +0000 (14:53 +0000)]
Update version number to fix small small whoopsie I committed when
pushing to trunk.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1033
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Tue, 6 Jan 2009 14:11:19 +0000 (14:11 +0000)]
Preparing push to trunk (0.4.7)
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1030
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Tue, 6 Jan 2009 13:24:52 +0000 (13:24 +0000)]
Added runtime call to the logging infrastructure. Made some changes
to the way regexps are being logged.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1028
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 6 Jan 2009 09:43:18 +0000 (09:43 +0000)]
Fixed double printing of exceptions when enabeling the debugger.
Detect the response to the continue command.
Review URL: http://codereview.chromium.org/17071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1025
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 2 Jan 2009 12:23:17 +0000 (12:23 +0000)]
Recognizes character classes like whitespace and non-newline and generates more efficient code.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1024
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 23 Dec 2008 08:58:56 +0000 (08:58 +0000)]
Update comment and add assert.
Fix typo where underscore is used instead of a dash.
Review URL: http://codereview.chromium.org/16238
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1019
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 22 Dec 2008 12:56:32 +0000 (12:56 +0000)]
Inline array loads in loops directly in the code instead of always
calling a stub. The map to check against is unknown when generating
the code, so we patch the map check in the IC initialization code.
Loop nesting is currently not tracked on ARM. I'll file feature
request bug reports for implementing this on ARM and add the number to
the TODOs before I commit.
Review URL: http://codereview.chromium.org/16409
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1015
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 22 Dec 2008 12:48:14 +0000 (12:48 +0000)]
Some irregexp optimizations around keeping track of when the current character
register contains the next n characters.
Review URL: http://codereview.chromium.org/16410
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1014
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Fri, 19 Dec 2008 13:28:56 +0000 (13:28 +0000)]
Reverting the BOM changes due to security concerns.
Review URL: http://codereview.chromium.org/14890
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1011
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Fri, 19 Dec 2008 13:12:43 +0000 (13:12 +0000)]
Added support in the profiler for creating 'regions' that cover part
of the generated code. These can be used by the profiler to
categorize the ticks that occur within generated code and thereby show
more detailed information about where time is spent in generated code.
For instance, this is what the profiler displayed for a simple regexp
benchmark with irregexp-native before:
[JavaScript]:
total nonlib name
87.2% 87.2% RegExp: (?:\w*\W+)*
This is what we can display now:
[JavaScript]:
total nonlib name
87.2% 87.2% RegExp: (?:\w*\W+)*
- 53.0% 56.7% BranchOrBacktrack
- 14.9% 59.8% CheckCharacterLT
- 13.7% 20.4% CheckStackLimit
- 6.7% 6.7% SafeCall
- 2.7% 7.0% CheckCharacterGT
- 2.4% 2.4% SafeReturn
- 2.1% 2.1% LoadCurrentCharacter
- 1.8% 1.8% PushRegister
- 0.9% 0.9% PopRegister
- 0.9% 0.9% AdvanceRegister
- 0.3% 0.3% PopCurrentPosition
- 0.3% 0.3% CheckGreedyLoop
- 0.0% 20.4% PushBacktrack
- 0.0% 22.3% CheckCharacter
- 0.0% 2.4% IfRegisterLT
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1010
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 19 Dec 2008 12:13:11 +0000 (12:13 +0000)]
Fix ARM build.
Review URL: http://codereview.chromium.org/14887
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1008
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 19 Dec 2008 12:08:29 +0000 (12:08 +0000)]
Instead of jumping over a conditional backtrack, jump to a single instance somewhere else.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1007
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Fri, 19 Dec 2008 12:06:11 +0000 (12:06 +0000)]
Handling byte-order marks as specified in Ecmascript-262 and in compliance with Safari.
Review URL: http://codereview.chromium.org/15075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1006
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 19 Dec 2008 12:02:34 +0000 (12:02 +0000)]
* Generate quick checks based on mask and compare for
the alternatives in a choice node. The quick checks
are conservative in the sense that they only detect
failure with certainty. Checks can do 2 or 4 characters
at a time.
* Inline the quick checks to allow the alternatives to
be checked without branching in the common case where
they fail.
Review URL: http://codereview.chromium.org/14194
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1005
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 18 Dec 2008 15:17:24 +0000 (15:17 +0000)]
Unroll + and ? to reduce loop-related work.
Review URL: http://codereview.chromium.org/14836
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1003
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 18 Dec 2008 15:17:02 +0000 (15:17 +0000)]
Fix lint error.
Review URL: http://codereview.chromium.org/15036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1002
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Dec 2008 14:32:49 +0000 (14:32 +0000)]
Refactored the code for handling debug step in in the runtime system into one function. For constructors this also means that step in will no longer step into the code for the builtins context.
Review URL: http://codereview.chromium.org/15035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1001
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 18 Dec 2008 14:30:53 +0000 (14:30 +0000)]
Removed propagation of information about preceding nodes by expanding
following nodes. Found a better solution.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1000
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Thu, 18 Dec 2008 11:28:13 +0000 (11:28 +0000)]
Fixing a subtle bug in receiver resolution when a thrown and caught function is called from a catch-block.
Second attempt - now with better memory efficiency.
Review URL: http://codereview.chromium.org/14834
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@999
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Dec 2008 10:39:11 +0000 (10:39 +0000)]
Added option --shell to D8 and updated the usage text.
Review URL: http://codereview.chromium.org/14192
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@998
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Dec 2008 10:38:09 +0000 (10:38 +0000)]
Removed tabs from d8.js.
TBR=ager
Review URL: http://codereview.chromium.org/14835
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@997
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Dec 2008 10:06:49 +0000 (10:06 +0000)]
Added command line debugger to D8 shell.
break location [condition]
clear <breakpoint #>
backtrace [from frame #] [to frame #]]
frame <frame #>
step [in | next | out| min [step count]]
print <expression>
source [from line [num lines]]
scripts
continue
help
It is enabled through the option --debugger which is on by default.
Review URL: http://codereview.chromium.org/14509
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@996
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 18 Dec 2008 09:39:18 +0000 (09:39 +0000)]
Fix an issue of a raw pointer being returned after possible allocation.
Review URL: http://codereview.chromium.org/14833
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@995
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Wed, 17 Dec 2008 17:40:02 +0000 (17:40 +0000)]
Fix issue 142:
- Removed the potential for a NULL pointer access in
ContextSwitcher::PreemptionReceived.
- Removed a leak of the semaphore in the ContexSwitcher thread, by removing
the need for this semaphore entirely.
- Added a regression test case which will catch accesses to the ContextSwitcher
singleton after it has been stopped.
Review URL: http://codereview.chromium.org/14483
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@994
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Wed, 17 Dec 2008 13:16:38 +0000 (13:16 +0000)]
Fixed bug in interest propagation caused by following the loop edge
out of a loop choice node before the continuation edge.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@990
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 17 Dec 2008 12:08:27 +0000 (12:08 +0000)]
Changed (1<<31)-1 into INT_MAX.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@989
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 17 Dec 2008 10:59:14 +0000 (10:59 +0000)]
Each RegExtTree node can now report the min and max size of strings it can match.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@988
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 17 Dec 2008 09:53:06 +0000 (09:53 +0000)]
Minor changes, mostly cosmetic, in string search.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@987
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Dec 2008 09:02:31 +0000 (09:02 +0000)]
Removed some unused code to make Linux builders happy.
TBR=ager
Review URL: http://codereview.chromium.org/14189
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@986
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Dec 2008 08:45:42 +0000 (08:45 +0000)]
Refactored the recording of source position in the generated code. The code generator now has two methods
void CodeForStatement(Node* node)
void CodeForSourcePosition(int pos)
The first is used to indicate that code is about to be generated for the given statement and the second is used to indicate that code is about to be generated for the given source position.
Added position information for some statements which was missing whem.
Updated the code generator for ARM to emit source position the same way as for IA-32.
Added an assert to ensure that deferred code stubs will always have a source source position as if it has not it will take whatever source position before which makes no sense.
The passing test on ARM has only been tested using the simulator.
Review URL: http://codereview.chromium.org/14170
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@985
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 16 Dec 2008 14:21:00 +0000 (14:21 +0000)]
Removed rep-cmps{w,b} from CheckCharacters to improve performance.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@984
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Mon, 15 Dec 2008 20:40:12 +0000 (20:40 +0000)]
Add missing files (debug-<architecture>.cc) to the Xcode project.
Review URL: http://codereview.chromium.org/14120
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@983
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 15 Dec 2008 09:15:05 +0000 (09:15 +0000)]
Give an error when setting break points in functions either defined through the API or in functions which are part of the V8 builtins.
BUG=178
Review URL: http://codereview.chromium.org/13785
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@977
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Mon, 15 Dec 2008 08:55:35 +0000 (08:55 +0000)]
Introduced a TempAssign utility because I just couldn't watch this anymore. YMMV.
Review URL: http://codereview.chromium.org/14422
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@976
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 12 Dec 2008 11:40:03 +0000 (11:40 +0000)]
Regexp-IA32 tests doesn't work with snapshots.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@975
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 12 Dec 2008 10:49:00 +0000 (10:49 +0000)]
Preemption code for irregexp-native-ia32. Regexps can not only succeede or
fail, but also report a thrown exception.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@974
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 12 Dec 2008 10:22:56 +0000 (10:22 +0000)]
Quantified look-aheads are sometimes removed entirely, leaving only a
single atom node. A flag was not set in this case, leading the wrapper
code to think the pattern was equal to the atom and use the pattern
in the indexOf operation.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@971
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 11 Dec 2008 13:04:22 +0000 (13:04 +0000)]
Fix lint issue.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@969
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 11 Dec 2008 11:38:02 +0000 (11:38 +0000)]
Prepare pushing new v8 version to trunk (now working on version 0.4.7).
Review URL: http://codereview.chromium.org/13385
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@967
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 11 Dec 2008 11:25:06 +0000 (11:25 +0000)]
Continue running if failing to make a debug event into a JSON event for sending to the debugger.
This partly fixes Chromium issue 5349 (http://code.google.com/p/chromium/issues/detail?id=5349).
Review URL: http://codereview.chromium.org/13384
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@966
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Thu, 11 Dec 2008 11:20:04 +0000 (11:20 +0000)]
Improve mark-compact object grouping interface.
The main goal was to improve O(n^2) behavior when there are many object groups. The old API required the grouping to be done on the v8 side, along with a linear search. The new interface requires the caller to do the grouping, passing V8 entire groups at a time. This removes the group id concept on the v8 side.
- Changed AddObjectToGroup to AddObjectGroup.
- Removed the group id concept from the V8 side.
- Remove a static constructor while I'm here, lazily initialize
the object groups list.
- Cleaned up return by non-const references to return pointers.
Review URL: http://codereview.chromium.org/13341
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@965
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
christian.plesner.hansen@gmail.com [Thu, 11 Dec 2008 11:13:13 +0000 (11:13 +0000)]
- Added lookbehind propagation for the initial node; now, if the
initial node is interested in what precedes it the automaton is
given an initial all-consuming character class that determines it.
- Added verification of some node information invariants. We now
check that if a node expresses interest in what precedes it that
information is available to it after assertion expansion.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@964
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 11 Dec 2008 11:09:51 +0000 (11:09 +0000)]
Make sure that the API does not change templates pass in from the
user. The API should never change templates behind the back of the
user.
Review URL: http://codereview.chromium.org/13741
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@963
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 11 Dec 2008 09:35:44 +0000 (09:35 +0000)]
Add handling of empty stack in the backtrace debug request.
Add accessor function for the exception in an ExceptionEvent.
Review URL: http://codereview.chromium.org/13382
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@961
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 11 Dec 2008 09:01:55 +0000 (09:01 +0000)]
Added test for bug 176 (zero length matches should fail in quantifiers).
Review URL: http://codereview.chromium.org/13381
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@960
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 11 Dec 2008 08:03:24 +0000 (08:03 +0000)]
Changed the debugger break handling to support situations where there are no stack frames. This can happen when an exception is thrown when compiling code.
This is related to Chromium issue 5349 (http://code.google.com/p/chromium/issues/detail?id=5349).
Review URL: http://codereview.chromium.org/13720
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@959
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 10 Dec 2008 13:49:19 +0000 (13:49 +0000)]
A recursive call to the code generator could (conceivably) clobber any
register. Generate code to evaluate both arguments of FastCharCodeAt
before popping either from the stack.
Review URL: http://codereview.chromium.org/13706
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@958
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 10 Dec 2008 08:37:58 +0000 (08:37 +0000)]
Arm codegen could emit const pool in the middle of jump table.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@956
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 10 Dec 2008 08:05:10 +0000 (08:05 +0000)]
Make sure that the generic stubs for keyed load and store and for
dictionary probing respects access check bit.
Review URL: http://codereview.chromium.org/13663
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@955
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Tue, 9 Dec 2008 13:18:33 +0000 (13:18 +0000)]
Removed a few calls to Top::ReportPendingMessages() that caused the messages to be reported prematurely and not at the C++/JS boundary.
Review URL: http://codereview.chromium.org/13287
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@954
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 9 Dec 2008 12:53:59 +0000 (12:53 +0000)]
Refactor the convertion of a target address into a code object from the debugger to the Code class.
Review URL: http://codereview.chromium.org/13285
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@952
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 9 Dec 2008 12:30:05 +0000 (12:30 +0000)]
Fixed lint error.
Review URL: http://codereview.chromium.org/13661
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@950
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 9 Dec 2008 11:24:53 +0000 (11:24 +0000)]
Fixed Linux build by removing unused code.
Review URL: http://codereview.chromium.org/13284
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@948
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 9 Dec 2008 11:12:14 +0000 (11:12 +0000)]
Moved the code generation for debug break stubs from builtins* to debug*. From builtins* all code generation delegate to debug*. Added files debug-ia32.cc and debug-arm.cc for platfoem specific code generation of debugger stubs.
Removed a dead file reference (frames-ia32-inl.h) from the Visual Studio project.
Updated the ARM Visual Studio project to build again by adding all the RegExp files.
Review URL: http://codereview.chromium.org/13657
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@947
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Tue, 9 Dec 2008 10:36:31 +0000 (10:36 +0000)]
Simplify the logic determining whether to report an exception.
Review URL: http://codereview.chromium.org/13283
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@946
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olehougaard [Tue, 9 Dec 2008 10:16:38 +0000 (10:16 +0000)]
Fixing a bug where a try-finally block obscured a try-catch block when registering an external try-catch handler.
Review URL: http://codereview.chromium.org/13658
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@945
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 9 Dec 2008 09:43:16 +0000 (09:43 +0000)]
Fixed compiler warning C4244 when compiling with the ARM simulator in Windows.
Review URL: http://codereview.chromium.org/13282
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@944
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
deanm@chromium.org [Tue, 9 Dec 2008 09:19:02 +0000 (09:19 +0000)]
Make Logger::SuspectReadEvent extract the class name from the object. This makes the lone caller cleaner, and also avoids a tiny bit of work in the default case of not running with --log-suspect.
Review URL: http://codereview.chromium.org/13655
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@943
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 9 Dec 2008 09:17:41 +0000 (09:17 +0000)]
Fix build (someone tell gcc you can't take the address of a static
const int and someone tell MSVC it's OK to define a static const int
in a .cc file).
Review URL: http://codereview.chromium.org/13656
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@942
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 9 Dec 2008 08:30:49 +0000 (08:30 +0000)]
* Have an ASCII and a UC16 interpreter for Irregexp bytecodes -
never have to convert an ASCII string to UC16 for Irregexp.
* Generate slightly different code when we know the subject string
is ASCII.
Review URL: http://codereview.chromium.org/13247
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@941
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 8 Dec 2008 15:11:02 +0000 (15:11 +0000)]
Skip some debugger related tests on ARM for nowas they have different behaviour based on platform and mode. The debugger infrastructure is currently not working on the ARM platform. This also fix the "syntax" error of the previous change to mjsunit.status.
Review URL: http://codereview.chromium.org/13622
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@940
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 8 Dec 2008 13:39:25 +0000 (13:39 +0000)]
Changed expectations on some ARM debugger tests after CL 933.
Review URL: http://codereview.chromium.org/13245
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@939
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 8 Dec 2008 13:33:24 +0000 (13:33 +0000)]
Minor presentation changes
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@938
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 8 Dec 2008 12:43:01 +0000 (12:43 +0000)]
Irregexp is specialized on subject character type.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@937
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 8 Dec 2008 11:23:38 +0000 (11:23 +0000)]
Fix trailing whitespace.
TBR=sgjesse
Review URL: http://codereview.chromium.org/13616
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@936
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 8 Dec 2008 10:33:10 +0000 (10:33 +0000)]
Fixes to IA32 code generator to cope with new
code generation machinery.
Review URL: http://codereview.chromium.org/13244
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@935
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 8 Dec 2008 10:29:03 +0000 (10:29 +0000)]
Make sure to set property attributes in GetProperty in the case of
failed access checks.
Added assert to GetPropertyWithReceiver which was hit by our tests in
debug mode.
Review URL: http://codereview.chromium.org/13242
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@934
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 8 Dec 2008 10:16:57 +0000 (10:16 +0000)]
Moved the builtins used by the debugger to a separate list.
Review URL: http://codereview.chromium.org/13241
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@933
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 8 Dec 2008 09:43:34 +0000 (09:43 +0000)]
Irregexp (bytecodes) don't forget to update current position
on a no-case successful backref.
Review URL: http://codereview.chromium.org/13615
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@932
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 8 Dec 2008 09:22:24 +0000 (09:22 +0000)]
Improve speed of String.replace by around 33% by not constructing
sliced strings for the interstices of the matches. This can be
speeded up further.
Review URL: http://codereview.chromium.org/13614
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@931
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 8 Dec 2008 09:22:12 +0000 (09:22 +0000)]
Irregexp:
* Facility for generating a node several ways. This allows
code to be generated for a node knowing where it is trying
to match relative to the 'current position' and it allows
code to be generated that knows where to backtrack to. Both
allow dramatic reductions in the amount of popping and pushing
on the stack and the number of indirect jumps.
* Generate special backtracking for greedy quantifiers on
constant-length atoms. This allows .* to run in constant
space relative to input string size.
* When we are checking a long sequence of characters or character
classes in the input then we do them right to left and only the
first (rightmost) needs to check for end-of-string.
* Record the pattern in the profile instead of just <CompiledRegExp>
* Nodes no longer contain an on_failure_ node. This was only used
for lookaheads and they are now handled with a choice node instead.
Review URL: http://codereview.chromium.org/12900
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@930
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Fri, 5 Dec 2008 22:27:22 +0000 (22:27 +0000)]
Fix the Xcode build ARM targets.
TBR=mark
Review URL: http://codereview.chromium.org/13187
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@929
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Fri, 5 Dec 2008 21:51:46 +0000 (21:51 +0000)]
- Simplify the code slightly by using Max().
TBR=kasperl
Review URL: http://codereview.chromium.org/13210
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@928
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00