Lines Matching full:wrec
2127 Replace WREC with YARR + YARR_JIT for the Qt port. This is only
2129 replacement for the WREC usage. Still including the wrec headers
2131 that header it protected by "#if ENABLE(WREC)".
2308 Enable YARR, and disable WREC for GTK+.
7878 With great sadness and a heavy heart I switch us back from YARR to WREC in
7941 Enable YARR_JIT by default (where supported), replacing WREC.
8679 the JIT, whilst faster than WREC, is presently incomplete and does not
9683 and WREC. (Empirical testing says that we can easily compile a 1MB regular
9703 * wrec/WREC.cpp:
9704 (JSC::WREC::Generator::compileRegExp): Match PCRE's maximum pattern size,
10459 * wrec/WREC.cpp:
10460 (JSC::WREC::Generator::compileRegExp):
10971 6.6% progression on x86 Linux with JIT and WREC on SunSpider if using SSE2 capable machine.
11574 When WREC was ported to x86-64 it stuck with the same register allocation as x86.
11575 This requires registers to be reordered on entry into WREC generated code, since
11580 * wrec/WRECGenerator.cpp:
11581 (JSC::WREC::Generator::generateEnter):
11582 (JSC::WREC::Generator::generateReturnSuccess):
11583 (JSC::WREC::Generator::generateReturnFailure):
11584 * wrec/WRECGenerator.h:
11867 * wrec/WRECGenerator.cpp:
11868 (JSC::WREC::Generator::generateEnter):
11869 (JSC::WREC::Generator::generateIncrementIndex):
11870 (JSC::WREC::Generator::generateLoadCharacter):
11871 (JSC::WREC::Generator::generateJumpIfNotEndOfInput):
11872 (JSC::WREC::Generator::generateBackreferenceQuantifier):
11873 (JSC::WREC::Generator::generateNonGreedyQuantifier):
11874 (JSC::WREC::Generator::generateGreedyQuantifier):
11875 (JSC::WREC::Generator::generatePatternCharacterPair):
11876 (JSC::WREC::Generator::generatePatternCharacter):
11877 (JSC::WREC::Generator::generateCharacterClassInvertedRange):
11878 (JSC::WREC::Generator::generateCharacterClassInverted):
11879 (JSC::WREC::Generator::generateAssertionBOL):
11880 (JSC::WREC::Generator::generateAssertionEOL):
11881 (JSC::WREC::Generator::generateAssertionWordBoundary):
11882 (JSC::WREC::Generator::generateBackreference):
11921 In certain circumstances when WREC::Generator::generateCharacterClassInvertedRange invokes
11923 match in the current character class. As WREC uses a binary search this out of sequence
11927 * wrec/WRECGenerator.cpp:
11928 (JSC::WREC::Generator::generateCharacterClassInvertedRange):
13021 * wrec/WRECParser.cpp:
13022 (JSC::WREC::Parser::consumeEscape): Mimic a Firefox quirk when parsing
13029 * wrec/WRECParser.cpp:
13030 (JSC::WREC::Parser::parseParentheses): Removed unreachable code.
13045 * wrec/WRECParser.cpp:
13046 (JSC::WREC::Parser::parseParentheses): Fall back on PCRE for the rare
15527 * wrec/CharacterClassConstructor.cpp: Change "kjs_pcre_" function
15529 (JSC::WREC::CharacterClassConstructor::put):
15530 (JSC::WREC::CharacterClassConstructor::flush):
16442 * wrec/WRECGenerator.cpp:
17060 Re-enable WREC on 64-bit.
17406 * wrec/WRECGenerator.cpp:
17407 (JSC::WREC::Generator::generateNonGreedyQuantifier):
17408 (JSC::WREC::Generator::generateGreedyQuantifier):
17587 * wrec/WRECGenerator.cpp:
17588 (JSC::WREC::Generator::generateEnter):
17637 Added WREC support for an assertion followed by a quantifier. Fixed
17640 * wrec/WRECParser.cpp:
17641 (JSC::WREC::Parser::parseParentheses): Throw away the quantifier, since
17651 In preparation for compiling WREC without PCRE:
17653 Further relaxed WREC's parsing to be more web-compatible. Fixed PCRE to
17656 Changed JavaScriptCore to report syntax errors detected by WREC, rather
17657 than falling back on PCRE any time WREC sees an error.
17664 (JSC::RegExp::RegExp): Only fall back on PCRE if WREC has not reported
17667 * wrec/WREC.cpp:
17668 (JSC::WREC::Generator::compileRegExp): Fixed some error reporting to
17671 * wrec/WRECParser.cpp: Added error messages that match PCRE.
17673 (JSC::WREC::Parser::consumeGreedyQuantifier):
17674 (JSC::WREC::Parser::parseParentheses):
17675 (JSC::WREC::Parser::parseCharacterClass):
17676 (JSC::WREC::Parser::parseNonCharacterEscape): Updated the above functions to
17679 (JSC::WREC::Parser::consumeEscape): Relaxed parsing of \c \N \u \x \B
17682 (JSC::WREC::Parser::parseAlternative): Distinguish between a malformed
17685 (JSC::WREC::Parser::consumeParenthesesType): Updated to use the new setError API.
17687 * wrec/WRECParser.h:
17688 (JSC::WREC::Parser::error):
17689 (JSC::WREC::Parser::syntaxError):
17690 (JSC::WREC::Parser::parsePattern):
17691 (JSC::WREC::Parser::reset):
17692 (JSC::WREC::Parser::setError): Store error messages instead of error codes,
17796 * wrec/Escapes.h:
17797 (JSC::WREC::Escape::):
17798 (JSC::WREC::Escape::Escape): Eliminated Escape::None because it was
17801 * wrec/Quantifier.h:
17802 (JSC::WREC::Quantifier::Quantifier):
17803 * wrec/WRECGenerator.cpp:
17804 (JSC::WREC::Generator::generateNonGreedyQuantifier):
17805 (JSC::WREC::Generator::generateGreedyQuantifier): Renamed "noMaxSpecified"
17808 * wrec/WRECParser.cpp:
17809 (JSC::WREC::Parser::consumeGreedyQuantifier): Re-wrote {n,m} parsing rules
17814 (JSC::WREC::Parser::parseCharacterClass):
17815 (JSC::WREC::Parser::parseNonCharacterEscape): Eliminated Escape::None,
17818 (JSC::WREC::Parser::consumeEscape): Don't treat ASCII and _ escapes
17821 * wrec/WRECParser.h:
17822 (JSC::WREC::Parser::SavedState::SavedState):
17823 (JSC::WREC::Parser::SavedState::restore): Added a state backtracker,
17831 Refactored WREC parsing so that only one piece of code needs to know
17837 * wrec/WREC.cpp: Reduced the regular expression size limit. Now that
17838 WREC handles ']' properly, it compiles fast/js/regexp-charclass-crash.html,
17842 expression size. WREC doesn't have a way to calculate an expected
17845 * wrec/WRECParser.cpp:
17846 (JSC::WREC::parsePatternCharacterSequence): Nixed this function because
17850 (JSC::WREC::PatternCharacterSequence::PatternCharacterSequence):
17851 (JSC::WREC::PatternCharacterSequence::size):
17852 (JSC::WREC::PatternCharacterSequence::append):
17853 (JSC::WREC::PatternCharacterSequence::flush): Helper object for generating
17856 (JSC::WREC::Parser::parseNonCharacterEscape): Renamed to reflect the fact
17859 (JSC::WREC::Parser::parseAlternative): Moved pattern character sequence
17863 * wrec/WRECParser.h: Updated for renames.
18001 Fixed a bug where WREC would allow a quantifier whose minimum was
18004 * wrec/Quantifier.h:
18005 (JSC::WREC::Quantifier::Quantifier): ASSERT that the quantifier is not
18008 * wrec/WRECParser.cpp:
18009 (JSC::WREC::Parser::consumeGreedyQuantifier): Verify that the minimum
18132 Fix non-WREC builds
18256 * wrec/WREC.cpp:
18257 (JSC::WREC::Generator::compileRegExp):
18258 * wrec/WRECGenerator.h:
18445 * wrec/WRECGenerator.cpp:
18446 (JSC::WREC::Generator::generateEnter):
18447 (JSC::WREC::Generator::generateNonGreedyQuantifier):
18448 (JSC::WREC::Generator::generateGreedyQuantifier):
18449 (JSC::WREC::Generator::generatePatternCharacterPair):
18450 (JSC::WREC::Generator::generatePatternCharacter):
18451 (JSC::WREC::Generator::generateCharacterClassInvertedRange):
18452 (JSC::WREC::Generator::generateCharacterClassInverted):
18453 (JSC::WREC::Generator::generateAssertionBOL):
18454 (JSC::WREC::Generator::generateAssertionWordBoundary):
18576 * wrec/WREC.cpp:
18577 (JSC::WREC::Generator::compileRegExp):
18578 * wrec/WRECGenerator.cpp:
18579 (JSC::WREC::Generator::generateEnter):
18580 (JSC::WREC::Generator::generateBackreferenceQuantifier):
18581 (JSC::WREC::Generator::generateNonGreedyQuantifier):
18582 (JSC::WREC::Generator::generateGreedyQuantifier):
18583 (JSC::WREC::Generator::generatePatternCharacter):
18584 (JSC::WREC::Generator::generateCharacterClassInvertedRange):
18585 (JSC::WREC::Generator::generateCharacterClassInverted):
18586 (JSC::WREC::Generator::generateCharacterClass):
18587 (JSC::WREC::Generator::generateParenthesesAssertion):
18588 (JSC::WREC::Generator::generateParenthesesInvertedAssertion):
18589 (JSC::WREC::Generator::generateParenthesesNonGreedy):
18590 (JSC::WREC::Generator::generateParenthesesResetTrampoline):
18591 (JSC::WREC::Generator::generateAssertionBOL):
18592 (JSC::WREC::Generator::generateAssertionEOL):
18593 (JSC::WREC::Generator::generateAssertionWordBoundary):
18594 (JSC::WREC::Generator::generateBackreference):
18595 (JSC::WREC::Generator::terminateAlternative):
18596 (JSC::WREC::Generator::terminateDisjunction):
18597 * wrec/WRECParser.h:
18659 in WREC.
18661 * wrec/WRECGenerator.cpp:
18662 (JSC::WREC::Generator::generateParenthesesAssertion):
18663 (JSC::WREC::Generator::generateParenthesesInvertedAssertion): Split the
18667 * wrec/WRECGenerator.h:
18668 (JSC::WREC::Generator::): Moved an enum to the top of the class definition,
18671 * wrec/WRECParser.cpp:
18672 (JSC::WREC::Parser::parseParentheses):
18673 (JSC::WREC::Parser::consumeParenthesesType):
18674 * wrec/WRECParser.h:
18675 (JSC::WREC::Parser::): Added support for parsing (?=) and (?!).
18770 * wrec/WRECGenerator.cpp:
18771 (JSC::WREC::Generator::generateGreedyQuantifier): Clarified label
18774 * wrec/WRECParser.h:
18775 (JSC::WREC::Parser::parseAlternative): Added a version of parseAlternative
18858 * wrec/WREC.cpp:
18859 (JSC::WREC::Generator::compileRegExp): Test the saved value of index
18868 * wrec/WRECGenerator.cpp:
18869 (JSC::WREC::Generator::generateIncrementIndex): Added support for
18873 (JSC::WREC::Generator::generatePatternCharacterSequence):
18874 (JSC::WREC::Generator::generatePatternCharacterPair): This is the
18878 (JSC::WREC::Generator::generatePatternCharacter): Changed to use isASCII,
18881 * wrec/WRECGenerator.h:
18962 * wrec/WREC.cpp:
18963 (JSC::WREC::Generator::compileRegExp):
18964 * wrec/WRECGenerator.h:
18965 (JSC::WREC::Generator::Generator):
18966 * wrec/WRECParser.h:
18967 (JSC::WREC::Parser::Parser):
19063 * wrec/WREC.cpp:
19064 (JSC::WREC::Generator::compileRegExp):
19065 * wrec/WRECGenerator.cpp:
19066 (JSC::WREC::Generator::generateJumpIfEndOfInput):
19196 * wrec/Escapes.h: Added. Set of classes for representing an escaped
19199 * wrec/Quantifier.h:
19200 (JSC::WREC::Quantifier::Quantifier): Simplified this constructor slightly,
19203 * wrec/WRECGenerator.cpp:
19204 (JSC::WREC::Generator::generatePatternCharacterSequence):
19205 * wrec/WRECGenerator.h: Added an interface for generating a sequence
19208 * wrec/WRECParser.cpp:
19209 (JSC::WREC::Parser::consumeGreedyQuantifier):
19210 (JSC::WREC::Parser::consumeQuantifier): Renamed "parse" to "consume" in
19213 (JSC::WREC::Parser::parsePatternCharacterSequence): New function for
19216 (JSC::WREC::Parser::parseCharacterClassQuantifier):
19217 (JSC::WREC::Parser::parseBackreferenceQuantifier): Renamed "parse" to
19220 (JSC::WREC::Parser::parseCharacterClass): Refactored to use the common
19223 (JSC::WREC::Parser::parseEscape): Refactored to use the common
19226 (JSC::WREC::Parser::consumeEscape): Factored escaped token processing
19229 (JSC::WREC
19232 * wrec/WRECParser.h:
19233 (JSC::WREC::Parser::consumeOctal): Refactored to use a helper function
19267 Disable WREC for x86_64 since memory allocated by the system allocator is not marked executable,
19328 Enable WREC on PLATFORM(X86_64). This change predominantly requires changes to the
19329 WREC::Generator::generateEnter method to support the x86-64 ABI, and addition of
19356 * wrec/WREC.h:
19357 * wrec/WRECGenerator.cpp:
19358 (JSC::WREC::Generator::generateEnter):
19359 (JSC::WREC::Generator::generateReturnSuccess):
19360 (JSC::WREC::Generator::generateReturnFailure):
19466 and change WREC to make use of this class, rather than directly accessing
19469 This patch also allows WREC to be compiled without the rest of the JIT enabled.
19521 * wrec/WREC.cpp:
19522 (JSC::WREC::Generator::compileRegExp):
19523 * wrec/WREC.h:
19524 * wrec/WRECFunctors.cpp:
19525 (JSC::WREC::GeneratePatternCharacterFunctor::generateAtom):
19526 (JSC::WREC::GenerateCharacterClassFunctor::generateAtom):
19527 (JSC::WREC::GenerateBackreferenceFunctor::generateAtom):
19528 (JSC::WREC::GenerateParenthesesNonGreedyFunctor::generateAtom):
19529 * wrec/WRECFunctors.h:
19530 (JSC::WREC::GenerateParenthesesNonGreedyFunctor::GenerateParenthesesNonGreedyFunctor):
19531 * wrec/WRECGenerator.cpp:
19532 (JSC::WREC::Generator::generateEnter):
19533 (JSC::WREC::Generator::generateReturnSuccess):
19534 (JSC::WREC::Generator::generateSaveIndex):
19535 (JSC::WREC::Generator::generateIncrementIndex):
19536 (JSC::WREC::Generator::generateLoadCharacter):
19537 (JSC::WREC::Generator::generateJumpIfEndOfInput):
19538 (JSC::WREC::Generator::generateJumpIfNotEndOfInput):
19539 (JSC::WREC::Generator::generateReturnFailure):
19540 (JSC::WREC::Generator::generateBacktrack1):
19541 (JSC::WREC::Generator::generateBacktrackBackreference):
19542 (JSC::WREC::Generator::generateBackreferenceQuantifier):
19543 (JSC::WREC::Generator::generateNonGreedyQuantifier):
19544 (JSC::WREC::Generator::generateGreedyQuantifier):
19545 (JSC::WREC::Generator::generatePatternCharacter):
19546 (JSC::WREC::Generator::generateCharacterClassInvertedRange):
19547 (JSC::WREC::Generator::generateCharacterClassInverted):
19548 (JSC::WREC::Generator::generateCharacterClass):
19549 (JSC::WREC::Generator::generateParentheses):
19550 (JSC::WREC::Generator::generateParenthesesNonGreedy):
19551 (JSC::WREC::Generator::generateParenthesesResetTrampoline):
19552 (JSC::WREC::Generator::generateAssertionBOL):
19553 (JSC::WREC::Generator::generateAssertionEOL):
19554 (JSC::WREC::Generator::generateAssertionWordBoundary):
19555 (JSC::WREC::Generator::generateBackreference):
19556 (JSC::WREC::Generator::terminateAlternative):
19557 (JSC::WREC::Generator::terminateDisjunction):
19558 * wrec/WRECGenerator.h:
19559 (JSC::WREC::Generator::Generator):
19560 * wrec/WRECParser.cpp:
19561 (JSC::WREC::Parser::parsePatternCharacterQualifier):
19562 (JSC::WREC::Parser::parseCharacterClassQuantifier):
19563 (JSC::WREC::Parser::parseBackreferenceQuantifier):
19564 (JSC::WREC::Parser::parseParentheses):
19565 (JSC::WREC::Parser::parseCharacterClass):
19566 (JSC::WREC::Parser::parseOctalEscape):
19567 (JSC::WREC::Parser::parseEscape):
19568 (JSC::WREC::Parser::parseTerm):
19569 (JSC::WREC::Parser::parseDisjunction):
19570 * wrec/WRECParser.h:
19571 (JSC::WREC::Parser::Parser):
19572 (JSC::WREC::Parser::parsePattern):
19573 (JSC::WREC::Parser::parseAlternative):
19773 * wrec/WREC.cpp:
19774 (JSC::WREC::compileRegExp):
19775 * wrec/WRECGenerator.cpp:
19776 (JSC::WREC::Generator::generateJumpIfEndOfInput):
19777 (JSC::WREC::Generator::generateJumpIfNotEndOfInput):
19778 * wrec/WRECGenerator.h:
19779 * wrec/WRECParser.h:
19780 (JSC::WREC::Parser::error):
19781 (JSC::WREC::Parser::parsePattern):
19789 * wrec/WRECGenerator.cpp:
19790 (JSC::WREC::Generator::generateEnter):
19791 (JSC::WREC::Generator::generateReturnSuccess):
19792 (JSC::WREC::Generator::generateSaveIndex):
19793 (JSC::WREC::Generator::generateIncrementIndex):
19794 (JSC::WREC::Generator::generateLoopIfNotEndOfInput):
19795 (JSC::WREC::Generator::generateReturnFailure):
19801 Made a bunch of WREC::Parser functions private, and added an explicit
19804 * wrec/WRECParser.h:
19805 (JSC::WREC::Parser::Parser):
19806 (JSC::WREC::Parser::generator):
19807 (JSC::WREC::Parser::ignoreCase):
19808 (JSC::WREC::Parser::multiline):
19809 (JSC::WREC::Parser::recordSubpattern):
19810 (JSC::WREC::Parser::numSubpatterns):
19811 (JSC::WREC::Parser::parsePattern):
19812 (JSC::WREC::Parser::parseAlternative):
19813 (JSC::WREC::Parser::reset):
19901 * wrec/WRECGenerator.cpp:
19912 * wrec/WRECGenerator.cpp:
19913 (JSC::WREC::Generator::generateLoadCharacter):
19914 (JSC::WREC::Generator::generatePatternCharacter):
19915 (JSC::WREC::Generator::generateCharacterClass):
19916 (JSC::WREC::Generator::generateAssertionEOL):
19917 (JSC::WREC::Generator::generateAssertionWordBoundary):
19918 * wrec/WRECGenerator.h:
19965 Moved all assembly from WREC.cpp into WRECGenerator helper functions.
19982 * wrec/WREC.cpp:
19983 (JSC::WREC::compileRegExp):
19984 * wrec/WRECGenerator.cpp:
19985 (JSC::WREC::Generator::generateEnter):
19986 (JSC::WREC::Generator::generateReturnSuccess):
19987 (JSC::WREC::Generator::generateSaveIndex):
19988 (JSC::WREC::Generator::generateIncrementIndex):
19989 (JSC::WREC::Generator::generateLoopIfNotEndOfInput):
19990 (JSC::WREC::Generator::generateReturnFailure):
19991 * wrec/WRECGenerator.h:
19992 * wrec/WRECParser.h:
19993 (JSC::WREC::Parser::ignoreCase):
19994 (JSC::WREC::Parser::generator):
20021 Renamed wrec => generator.
20023 * wrec/WRECFunctors.cpp:
20024 (JSC::WREC::GeneratePatternCharacterFunctor::generateAtom):
20025 (JSC::WREC::GeneratePatternCharacterFunctor::backtrack):
20026 (JSC::WREC::GenerateCharacterClassFunctor::generateAtom):
20027 (JSC::WREC::GenerateCharacterClassFunctor::backtrack):
20028 (JSC::WREC::GenerateBackreferenceFunctor::generateAtom):
20029 (JSC::WREC::GenerateBackreferenceFunctor::backtrack):
20030 (JSC::WREC::GenerateParenthesesNonGreedyFunctor::generateAtom):
20123 * wrec/WREC.cpp:
20124 (JSC::WREC::compileRegExp):
20125 * wrec/WRECGenerator.cpp:
20126 (JSC::WREC::Generator::generateNonGreedyQuantifier):
20127 (JSC::WREC::Generator::generateGreedyQuantifier):
20128 (JSC::WREC::Generator::generateCharacterClassInverted):
20129 (JSC::WREC::Generator::generateParentheses):
20130 (JSC::WREC::Generator::generateParenthesesResetTrampoline):
20131 (JSC::WREC::Generator::generateAssertionBOL):
20132 (JSC::WREC::Generator::generateAssertionEOL):
20133 (JSC::WREC::Generator::generateAssertionWordBoundary):
20134 (JSC::WREC::Generator::terminateAlternative):
20135 (JSC::WREC::Generator::terminateDisjunction):
20136 * wrec/WRECParser.cpp:
20137 * wrec/WRECParser.h:
20138 (JSC::WREC::Parser::consumeHex):
20300 A little more WREC refactoring.
20302 Removed the "Register" suffix from register names in WREC, and renamed:
20307 Added a top-level parsePattern function to the WREC parser, which
20314 * wrec/WREC.cpp:
20315 (JSC::WREC::compileRegExp):
20316 * wrec/WRECGenerator.cpp:
20317 (JSC::WREC::Generator::generateBacktrack1):
20318 (JSC::WREC::Generator::generateBacktrackBackreference):
20319 (JSC::WREC::Generator::generateBackreferenceQuantifier):
20320 (JSC::WREC::Generator::generateNonGreedyQuantifier):
20321 (JSC::WREC::Generator::generateGreedyQuantifier):
20322 (JSC::WREC::Generator::generatePatternCharacter):
20323 (JSC::WREC::Generator::generateCharacterClassInvertedRange):
20324 (JSC::WREC::Generator::generateCharacterClassInverted):
20325 (JSC::WREC::Generator::generateCharacterClass):
20326 (JSC::WREC::Generator::generateParentheses):
20327 (JSC::WREC::Generator::generateParenthesesResetTrampoline):
20328 (JSC::WREC::Generator::generateAssertionBOL):
20329 (JSC::WREC::Generator::generateAssertionEOL):
20330 (JSC::WREC::Generator::generateAssertionWordBoundary):
20331 (JSC::WREC::Generator::generateBackreference):
20332 (JSC::WREC::Generator::generateDisjunction):
20333 (JSC::WREC::Generator::terminateDisjunction):
20334 * wrec/WRECGenerator.h:
20335 * wrec/WRECParser.h:
20336 (JSC::WREC::Parser::parsePattern):
20497 * wrec/WREC.cpp:
20498 (JSC::WREC::compileRegExp):
20499 * wrec/WRECGenerator.cpp:
20500 (JSC::WREC::Generator::generateBackreferenceQuantifier):
20501 (JSC::WREC::Generator::generateNonGreedyQuantifier):
20502 (JSC::WREC::Generator::generateGreedyQuantifier):
20503 (JSC::WREC::Generator::generatePatternCharacter):
20504 (JSC::WREC::Generator::generateCharacterClassInvertedRange):
20505 (JSC::WREC::Generator::generateCharacterClassInverted):
20506 (JSC::WREC::Generator::generateCharacterClass):
20507 (JSC::WREC::Generator::generateParentheses):
20508 (JSC::WREC::Generator::generateParenthesesNonGreedy):
20509 (JSC::WREC::Generator::generateParenthesesResetTrampoline):
20510 (JSC::WREC::Generator::generateAssertionBOL):
20511 (JSC::WREC::Generator::generateAssertionEOL):
20512 (JSC::WREC::Generator::generateAssertionWordBoundary):
20513 (JSC::WREC::Generator::generateBackreference):
20514 (JSC::WREC::Generator::generateDisjunction):
20566 * wrec/WREC.cpp:
20567 (JSC::WREC::compileRegExp): Instead of checking for a NULL output vector,
20568 ASSERT that the output vector is not NULL. (The rest of WREC is not
20581 Removed the "Error_" and "TempError_" prefixes from WREC error types.
20583 Refactored the WREC parser so it doesn't need a "setError" function,
20644 * wrec/WREC.cpp:
20645 (JSC::WREC::compileRegExp):
20646 * wrec/WRECParser.cpp:
20647 (JSC::WREC::Parser::parseGreedyQuantifier):
20648 (JSC::WREC::Parser::parseParentheses):
20649 (JSC::WREC::Parser::parseCharacterClass):
20650 (JSC::WREC::Parser::parseEscape):
20651 * wrec/WRECParser.h:
20652 (JSC::WREC::Parser::):
20653 (JSC::WREC::Parser::atEndOfPattern):
20668 * wrec/WRECFunctors.h:
20669 * wrec/WRECGenerator.h:
20670 * wrec/WRECParser.h:
20685 * wrec/Quantifier.h:
20699 Split WREC classes out into individual files, with a few modifications
20708 * wrec/CharacterClass.cpp: Copied from wrec/CharacterClassConstructor.cpp.
20709 (JSC::WREC::CharacterClass::newline):
20710 (JSC::WREC::CharacterClass::digits):
20711 (JSC::WREC::CharacterClass::spaces):
20712 (JSC::WREC::CharacterClass::wordchar):
20713 (JSC::WREC::CharacterClass::nondigits):
20714 (JSC::WREC::CharacterClass::nonspaces):
20715 (JSC::WREC::CharacterClass::nonwordchar):
20716 * wrec/CharacterClass.h: Copied from wrec/CharacterClassConstructor.h.
20717 * wrec/CharacterClassConstructor.cpp:
20718 (JSC::WREC::CharacterClassConstructor::addSortedRange):
20719 (JSC::WREC::CharacterClassConstructor::append):
20720 * wrec/CharacterClassConstructor.h:
20721 * wrec/Quantifier.h: Copied from wrec/WREC.h.
20722 * wrec/WREC.cpp:
20723 (JSC::WREC::compileRegExp):
20724 * wrec/WREC.h:
20725 * wrec/WRECFunctors.cpp: Copied from wrec/WREC.cpp.
20726 * wrec/WRECFunctors.h: Copied from wrec/WREC.cpp.
20727 (JSC::WREC::GenerateAtomFunctor::~GenerateAtomFunctor):
20728 (JSC::WREC::GeneratePatternCharacterFunctor::GeneratePatternCharacterFunctor):
20729 (JSC::WREC::GenerateCharacterClassFunctor::GenerateCharacterClassFunctor):
20730 (JSC::WREC::GenerateBackreferenceFunctor::GenerateBackreferenceFunctor):
20731 (JSC::WREC::GenerateParenthesesNonGreedyFunctor::GenerateParenthesesNonGreedyFunctor):
20732 * wrec/WRECGenerator.cpp: Copied from wrec/WREC.cpp.
20733 (JSC::WREC::Generator::generatePatternCharacter):
20734 (JSC::WREC::Generator::generateCharacterClassInvertedRange):
20735 (JSC::WREC::Generator::generateCharacterClassInverted):
20736 (JSC::WREC::Generator::generateCharacterClass):
20737 (JSC::WREC::Generator::generateParentheses):
20738 (JSC::WREC::Generator::generateAssertionBOL):
20739 (JSC::WREC::Generator::generateAssertionEOL):
20740 (JSC::WREC::Generator::generateAssertionWordBoundary):
20741 * wrec/WRECGenerator.h: Copied from wrec/WREC.h.
20742 * wrec/WRECParser.cpp: Copied from wrec/WREC.cpp.
20743 (JSC::WREC::Parser::parseGreedyQuantifier):
20744 (JSC::WREC::Parser::parseCharacterClassQuantifier):
20745 (JSC::WREC::Parser::parseParentheses):
20746 (JSC::WREC::Parser::parseCharacterClass):
20747 (JSC::WREC::Parser::parseEscape):
20748 (JSC::WREC::Parser::parseTerm):
20749 * wrec/WRECParser.h: Copied from wrec/WREC.h.
20750 (JSC::WREC::Parser::):
20751 (JSC::WREC::Parser::Parser):
20752 (JSC::WREC::Parser::setError):
20753 (JSC::WREC::Parser::error):
20754 (JSC::WREC::Parser::recordSubpattern):
20755 (JSC::WREC::Parser::numSubpatterns):
20756 (JSC::WREC::Parser::ignoreCase):
20757 (JSC::WREC::Parser::multiline):
21009 * wrec/WREC.cpp:
21299 * wrec/WREC.h:
21479 * wrec/WREC.h:
21540 * wrec/WREC.cpp:
21541 (JSC::WREC::compileRegExp):
21547 Renamed WREC => JSC::WREC, removing JSC:: prefix in a lot of places.
21548 Renamed WRECFunction => WREC::CompiledRegExp, and deployed this type
21556 * wrec/CharacterClassConstructor.cpp:
21557 * wrec/CharacterClassConstructor.h:
21558 * wrec/WREC.cpp:
21559 (JSC::WREC::compileRegExp):
21560 * wrec/WREC.h:
21561 (JSC::WREC::Generator::Generator):
21562 (JSC::WREC::Parser::Parser):
21563 (JSC::WREC::Parser::parseAlternative):
21746 * wrec/WREC.cpp:
21747 (WREC::compileRegExp):
21748 * wrec/WREC.h:
21761 WREC => JSC::WREC, removing JSC:: prefix in a lot of places
21764 WRECFunction => WREC::RegExpFunction
21996 * wrec/CharacterClassConstructor.cpp:
21997 * wrec/CharacterClassConstructor.h:
21998 * wrec/WREC.cpp:
21999 (JSC::WREC::compileRegExp):
22000 * wrec/WREC.h:
22001 (JSC::WREC::Generator::Generator):
22002 (JSC::WREC::Parser::):
22003 (JSC::WREC::Parser::Parser):
22004 (JSC::WREC::Parser::parseAlternative):
22392 - fix non-WREC build
22394 * runtime/RegExp.cpp: Put "using namespace WREC" inside #if ENABLE(WREC).
22412 Moved all WREC-related code into WREC.cpp and put it in a WREC namespace.
22413 Removed the WREC prefix from class names.
22422 * wrec/CharacterClassConstructor.cpp:
22423 * wrec/CharacterClassConstructor.h:
22424 * wrec/WREC.cpp:
22425 (WREC::GenerateParenthesesNonGreedyFunctor::GenerateParenthesesNonGreedyFunctor):
22426 (WREC::GeneratePatternCharacterFunctor::generateAtom):
22427 (WREC::GeneratePatternCharacterFunctor::backtrack):
22428 (WREC::GenerateCharacterClassFunctor::generateAtom):
22429 (WREC::GenerateCharacterClassFunctor::backtrack):
22430 (WREC::GenerateBackreferenceFunctor::generateAtom):
22431 (WREC::GenerateBackreferenceFunctor::backtrack):
22432 (WREC::GenerateParenthesesNonGreedyFunctor::generateAtom):
22433 (WREC::GenerateParenthesesNonGreedyFunctor::backtrack):
22434 (WREC::Generator::generateBacktrack1):
22435 (WREC::Generator::generateBacktrackBackreference):
22436 (WREC::Generator::generateBackreferenceQuantifier):
22437 (WREC::Generator::generateNonGreedyQuantifier):
22438 (WREC::Generator::generateGreedyQuantifier):
22439 (WREC::Generator::generatePatternCharacter):
22440 (WREC::Generator::generateCharacterClassInvertedRange):
22441 (WREC::Generator::generateCharacterClassInverted):
22442 (WREC::Generator::generateCharacterClass):
22443 (WREC::Generator::generateParentheses):
22444 (WREC::Generator::generateParenthesesNonGreedy):
22445 (WREC::Generator::generateParenthesesResetTrampoline):
22446 (WREC::Generator::generateAssertionBOL):
22447 (WREC::Generator::generateAssertionEOL):
22448 (WREC::Generator::generateAssertionWordBoundary):
22449 (WREC::Generator::generateBackreference):
22450 (WREC::Generator::generateDisjunction):
22451 (WREC::Generator::terminateDisjunction):
22452 (WREC::Parser::parseGreedyQuantifier):
22453 (WREC::Parser::parseQuantifier):
22454 (WREC::Parser::parsePatternCharacterQualifier):
22455 (WREC::Parser::parseCharacterClassQuantifier):
22456 (WREC::Parser::parseBackreferenceQuantifier):
22457 (WREC::Parser::parseParentheses):
22458 (WREC::Parser::parseCharacterClass):
22459 (WREC::Parser::parseOctalEscape):
22460 (WREC::Parser::parseEscape):
22461 (WREC::Parser::parseTerm):
22462 (WREC::Parser::parseDisjunction):
22463 (WREC::compileRegExp):
22464 * wrec/WREC.h:
22465 (WREC::Generator::Generator):
22466 (WREC::Parser::Parser):
22467 (WREC::Parser::parseAlternative):
22476 * wrec/WREC.cpp:
22477 * wrec/WREC.h:
22540 * wrec/WREC.cpp:
25219 * wrec/CharacterClassConstructor.h:
25220 * wrec/WREC.h:
25481 * wrec/WREC.h:
26002 matches Darwin/MSVC fixing CTI/WREC on Linux.
28716 Make WREC require CTI because it won't actually compile otherwise.
29481 Prepare to enable CTI/WREC on supported architectures.
29486 Note that CTI/WREC no longer requires CTI_ARGUMENT on Linux so we
29496 source files after modification to X86Assembler.h, CTI.h, WREC.h,
29810 * wrec/WREC.cpp:
29811 * wrec/WREC.h:
30052 * wrec/WREC.cpp:
30053 * wrec/WREC.h:
30287 * wrec/WREC.cpp:
30288 * wrec/WREC.h:
31422 * wrec/CharacterClassConstructor.cpp:
31425 * wrec/CharacterClassConstructor.h:
31427 * wrec/WREC.cpp:
31431 * wrec/WREC.h:
34185 PCRE. This change was already made in WREC, and it fixes one of the
34990 * wrec/CharacterClassConstructor.cpp: Added.
35004 * wrec/CharacterClassConstructor.h: Added.
35021 * wrec/CharacterClassConstructor.cpp: Added.
35035 * wrec/CharacterClassConstructor.h: Added.
35039 * wrec/WREC.cpp:
35063 * wrec/WREC.cpp:
35312 * wrec/WREC.h:
35390 * wrec/WREC.cpp:
35396 * wrec/WREC.h:
35515 * wrec/WREC.cpp:
35537 Clean up the WREC code some more.
35541 * wrec/WREC.cpp:
35568 * wrec/WREC.h:
35605 Clean up WREC a bit to bring it closer to our coding style guidelines.
35607 * wrec/WREC.cpp:
35624 * wrec/WREC.h:
35647 * wrec/WREC.cpp:
35770 * wrec/WREC.h:
35776 Fix the build with CTI enabled but WREC disabled.
36225 * wrec/WREC.cpp:
36226 * wrec/WREC.h:
36246 * wrec/WREC.cpp:
36252 * wrec/WREC.h:
36319 - refactor WREC to share more of the JIT infrastructure with CTI
36359 * wrec/WREC.cpp:
36398 * wrec/WREC.h:
36485 Disable WREC and CTI on platforms that we have not yet had a chance to test with.
36557 * wrec/WREC.cpp:
36559 * wrec/WREC.h:
36625 just working on WREC, as it does not make any calls so reduces
36641 * wrec/WREC.cpp:
36646 * wrec/WREC.h:
36683 * wrec/WREC.h:
36694 * wrec/WREC.cpp:
36695 * wrec/WREC.h:
36726 Fixed an #if to support using WREC without CTI.
36795 by wrapping more code with ENABLE(CTI), ENABLE(WREC), and PLATFORM(X86)
36811 * wrec/WREC.cpp:
36812 * wrec/WREC.h:
36813 * wtf/Platform.h: Only enable CTI and WREC on x86. Add an extra define to
36907 * wrec/WREC.cpp:
36923 Switch WREC on by default.
36936 * wrec/WREC.cpp:
36940 * wrec/WREC.h:
36949 * kjs/regexp.cpp: Always pass a non-null offset vector to the wrec function.
36957 * wrec/WREC.cpp:
36959 * wrec/WREC.h:
36969 * wrec/WREC.cpp:
36972 * wrec/WREC.h:
36981 * wrec/WREC.cpp:
36991 * wrec/WREC.cpp:
36994 * wrec/WREC.h:
37001 Fixes two mozilla tests with WREC enabled.
37003 * wrec/WREC.cpp:
37011 Fixes two mozilla tests with WREC enabled.
37013 * wrec/WREC.cpp:
37100 * wrec/WREC.cpp:
37102 * wrec/WREC.h:
37109 Fix several issues within ecma_3/RegExp/perlstress-001.js with WREC enabled.
37111 * wrec/WREC.cpp:
37217 * wrec/WREC.cpp:
37220 * wrec/WREC.h:
37243 * wrec/WREC.cpp:
37245 * wrec/WREC.h:
37253 * wrec/WREC.cpp:
37257 * wrec/WREC.h:
37333 Fix js1_2/regexp/word_boundary.js and four other Mozilla tests with WREC enabled.
37335 * wrec/WREC.cpp:
37346 Fix a hang in ecma_3/RegExp/15.10.2-1.js with WREC enabled.
37350 * wrec/WREC.cpp:
37354 * wrec/WREC.h:
37606 * wrec/WREC.h: Ditto.
37771 * wrec: Added.
37772 * wrec/WREC.cpp: Added.
37773 * wrec/WREC.h: Added.