mikhail.naganov@gmail.com
e88d1e475e
Fixed numerous issues that were causing errors in profiler log processing
...
on a real web application loaded in the test shell.
Also implemented output of JSON-encoded call stacks for profiler
prototype.
Review URL: http://codereview.chromium.org/56064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-31 09:06:37 +00:00
lrn@chromium.org
bd8816efb0
Moved String.prototype.match implementation to C++.
...
Some extra runtime assertions added.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-25 12:14:10 +00:00
lrn@chromium.org
c8c5d9820d
Test a few assertions that should hold.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-24 10:16:30 +00:00
lrn@chromium.org
c35bacb2dc
Now compiles when not in debug mode. Whoops.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-20 14:09:48 +00:00
lrn@chromium.org
6fa2f4f0c9
RegExps now restart if their input string changes representation during preemption.
...
Cleaned up the handling of strings moving, so strings moved by GC and strings changing representation are handled equivalently.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-20 13:26:16 +00:00
erik.corry@gmail.com
608a99a90c
Remove all uses of StringShape variables, since that has proven
...
to be error-prone and of little benefit in terms of performance.
Review URL: http://codereview.chromium.org/45010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-17 09:33:06 +00:00
lrn@chromium.org
e2af4529c3
String.replace implemented in C++.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-03-13 10:22:38 +00:00
iposva@chromium.org
c093e94546
- Pass the knowledge whether the old GC is compacting to the GC prologue and epilogue. This allows us to skip frame cooking and uncooking when doing a mark-sweep GC.
...
- Add the ability for the code to refer to its code object by adding a handle to the code object in the MacroAssembler.
Review URL: http://codereview.chromium.org/27133
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-25 16:52:15 +00:00
lrn@chromium.org
f8051275e0
Add test for GC during RegExp.
...
Fix bug found by test.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-20 13:03:54 +00:00
lrn@chromium.org
0b1f3f2134
Issue 231 - Irregexp backtracking stack pointer could become corrupted.
...
http://code.google.com/p/v8/issues/detail?id=231
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-12 13:07:58 +00:00
erik.corry@gmail.com
484ee83dd9
Fix crash-bug in code generation for case independent 16 bit backreferences.
...
Review URL: http://codereview.chromium.org/21042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-04 12:20:27 +00:00
lrn@chromium.org
cf1e1b1b98
Trace contains information about whether we know that we are at the start of input.
...
Choice nodes may know that they are never not at the start of input.
This can remove start_of_input assertions in cases where they are statically known to fail.
The initial loop is unrolled once if the regexp might check for the start of input. Only the first iteration may be at the start, the following loop knows that it isn't.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-02-03 11:43:55 +00:00
lrn@chromium.org
2de5de495f
Irregexp: Backtrack past look-aheads works correctly.
...
Allows backtracking to clear registers instead of pushing and popping
them to restore state.
Redo of 1135 with bug fixed.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-26 14:38:17 +00:00
erik.corry@gmail.com
f6c3ef2d2a
Reverting r1136 due to crashes
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-23 14:33:19 +00:00
lrn@chromium.org
18c2d3ef4e
Clears captures of look-aheads on backtrack.
...
Reduces number of pushes when flushing a trace. Some are converted to clears
in the undo-code instead, and some just ignored if they have no value worth restoring.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-23 13:34:51 +00:00
lrn@chromium.org
0381d3dd18
Irregexp-32 frame-align code uses a register. This is no longer hard-coded to ebx.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-22 09:05:00 +00:00
erik.corry@gmail.com
585e36b40e
Optimization: The quick check should ignore the negative lookahead instead of
...
insisting that it should match.
Review URL: http://codereview.chromium.org/18360
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-20 11:36:28 +00:00
erik.corry@gmail.com
2b77e718fa
Add support for \b and ^ and $ in multiline mode, completing Irregexp
...
features. Switch on Irregexp by default.
Review URL: http://codereview.chromium.org/18193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-19 18:56:47 +00:00
deanm@chromium.org
b7c1200462
Fix a bunch of spelling mistakes :\
...
Review URL: http://codereview.chromium.org/18094
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-01-15 19:08:34 +00:00
christian.plesner.hansen@gmail.com
d6e6508bd7
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
2009-01-14 11:32:23 +00:00
lrn@chromium.org
70af3cc4ba
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
2009-01-13 10:16:02 +00:00
lrn@chromium.org
0fad625991
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
2009-01-13 09:23:26 +00:00
lrn@chromium.org
21d2865757
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
2009-01-12 13:05:23 +00:00
christian.plesner.hansen@gmail.com
4a16e4928a
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
2009-01-08 12:40:47 +00:00
lrn@chromium.org
74b7d4ad00
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
2009-01-02 12:23:17 +00:00
lrn@chromium.org
d7290b6b6e
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
2008-12-19 12:08:29 +00:00
erik.corry@gmail.com
ab2d4bc9bf
* 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
2008-12-19 12:02:34 +00:00
lrn@chromium.org
028e3414f2
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
2008-12-16 14:21:00 +00:00
lrn@chromium.org
3b968e0207
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
2008-12-12 10:49:00 +00:00
lrn@chromium.org
67c26a869f
Minor presentation changes
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-08 13:33:24 +00:00
lrn@chromium.org
5178af89fa
Irregexp is specialized on subject character type.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-08 12:43:01 +00:00
erik.corry@gmail.com
c642237b78
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
2008-12-08 10:33:10 +00:00
erik.corry@gmail.com
ba09ec5e89
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
2008-12-08 09:22:12 +00:00
lrn@chromium.org
ed4e792cd5
Makes irregexp-ia32 feature complete wrt. regexps.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-05 09:18:55 +00:00
lrn@chromium.org
dd9be4ef58
Matching a back-reference must handle unbound start-register (but can assume that if start register is bound, then end register is bound too).
...
After matching a back reference, the character position is advanced past
the match
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-03 13:24:34 +00:00
lrn@chromium.org
0269851619
Fixes (last?) bugs in regexp-ia32 core functionality. All tests run!
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-12-01 09:57:14 +00:00
erik.corry@gmail.com
94ce4d302f
Add an operation that checks whether we are at the start of the string.
...
Review URL: http://codereview.chromium.org/10998
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-28 11:48:22 +00:00
erik.corry@gmail.com
4722a886ec
Implement $ for non-multiline.
...
Review URL: http://codereview.chromium.org/10992
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-28 08:53:53 +00:00
lrn@chromium.org
1a9e303e89
Made char comparisons work
...
Tracer for regexp macro-assembler instructions
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-27 13:54:31 +00:00
erik.corry@gmail.com
ef59fde8de
Fix native code Irregexp on MacOSX.
...
Review URL: http://codereview.chromium.org/10984
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-27 09:27:30 +00:00
erik.corry@gmail.com
75eda4766f
* Complete case independent support in Irregexp.
...
Review URL: http://codereview.chromium.org/12473
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-27 07:27:08 +00:00
lrn@chromium.org
d7e5f97b1e
Made ARM/IA32 handling in Regexp symmetric (although without an ARM implementation yet).
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-26 13:54:08 +00:00
lrn@chromium.org
b8013e590f
Fixed some outstanding formatting issues.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-26 11:29:26 +00:00
lrn@chromium.org
f72d8a4de4
IA32-tests won't be compiled on ARM (and not just not run).
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-25 14:26:13 +00:00
erik.corry@gmail.com
9cc65da3c3
Oh, it has to work on Intel CPUs too?
...
Review URL: http://codereview.chromium.org/12432
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-25 13:23:49 +00:00
lrn@chromium.org
50092cc31e
Tests for RegExpMacroAssemblerIA32.
...
Disabled stack-limit checks.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-25 13:13:02 +00:00
lrn@chromium.org
4eb1913cea
New regexp files are now included in VS project.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-25 12:08:13 +00:00
erik.corry@gmail.com
01456e8bc3
Case independent back references.
...
Reviewed at http://codereview.chromium.org/12406
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-25 11:39:20 +00:00
christian.plesner.hansen@gmail.com
b57b4a15cd
Merge regexp2000 back into bleeding_edge
...
Review URL: http://codereview.chromium.org/12427
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-11-25 11:07:48 +00:00