summaryrefslogtreecommitdiff
path: root/js
AgeCommit message (Collapse)Author
2014-10-02Char code optimizations in block parsers.John MacFarlane
2014-10-02Eliminated unnecessary variable.John MacFarlane
2014-10-02Changed peek() to return char code.John MacFarlane
Test char codes instead of strings. Small optimization (about 1% speed boost).
2014-09-30Unescape entities as well as backslashes in titles, URLs.John MacFarlane
This way URLs with entities will be properly percent encoded as in the C implementation.
2014-09-30unescape URI before escaping.John MacFarlane
If we already have %-encoded characters in the URI, we want to preserve them.
2014-09-30Added entity decoding.John MacFarlane
AST now contains parses entities as Str objects with unicode characters, not as 'Entity'. (Like the new C parser.)
2014-09-29Rename unescape -> unescapeBS to avoid confusion with built-in.John MacFarlane
2014-09-29Escape URIs.John MacFarlane
2014-09-29Use charAt for browser compatibility.John MacFarlane
2014-09-26Only memoize during inline parsing.John MacFarlane
This cuts the performance hit. With memoization, we get roughly constant behavior in the fuzztest. Without it, not.
2014-09-26Restored memoization code.John MacFarlane
2014-09-26Used last_emphasis_closer to avoid unneeded scans for closer.John MacFarlane
This doesn't seem to help much.
2014-09-26Removed memoization code.John MacFarlane
2014-09-26Simple fallback if we don't match emphasis.John MacFarlane
The other approach led to wrong results on: *hi _there*
2014-09-24Fixed bug that causes hang on bare `<` inside link label.John MacFarlane
2014-09-17Use helper functions to simplify code.John MacFarlane
2014-09-16Revert "Re-added backtracking and memoization."John MacFarlane
This reverts commit ac8529c9f55da7fdc1186e3f34313cf411de6e71.
2014-09-16Re-added backtracking and memoization.John MacFarlane
Gives better results for things like **foo*
2014-09-16Small performance tweaks.John MacFarlane
2014-09-16Fixed bug in parsing `* **a** b*` etc.John MacFarlane
2014-09-16New parseEmphasis algorithm.John MacFarlane
- State machine for emphasis parsing. - This would require some adjustments to the spec and spec examples. - It currently blows the stack on `tricky'. - Memoization code has been commented out. - Inline parsers return arrays.
2014-09-11Fixed performance regression from eccc23dc8d.John MacFarlane
2014-09-11Fixed typo.John MacFarlane
starting
2014-09-11jshint improvements.John MacFarlane
2014-09-11Reindented source with js2-mode.John MacFarlane
2014-09-11Clarified code logic for last_emphasis_closer.John MacFarlane
2014-09-11Add check for null in last_emphasis_closer.John MacFarlane
2014-09-11Renamed last_closer -> last_emphasis_closer.John MacFarlane
2014-09-11Added last_closer to Inline object.John MacFarlane
This helps us avoid unneeded backtracking in pathological input of the form: *a **a *a **a *a etc. If we get to position k without finding a closing delimiter, then backtrack to 1, we can assume we won't find a closing delimiter when parsing forward again. This could no doubt be polished up, e.g. by making it sensitive to the kind of delimiter.
2014-09-11Fixed bug.John MacFarlane
2014-09-11Special-case ***xx*** as strong/em.John MacFarlane
2014-09-11Simplified parseEmphasis.John MacFarlane
2014-09-11Handle case with 4+ delimiters in a row.John MacFarlane
Spec says to skip these.
2014-09-11Fixed reMain regex for better performance.John MacFarlane
2014-09-11Fixed rewind on parseLabel.John MacFarlane
14 test failures now, all with emphasis. IN most of all of these cases, the examples in the spec seem to be mistakes, given what the spec says. More troubling, performance is down from around 220 to 83. This needs investigation.
2014-09-11Completed conversion to memoized strategy.John MacFarlane
Test suite runs, but many failures.
2014-09-11Cleanup.John MacFarlane
2014-09-11Did parseAutolink.John MacFarlane
2014-09-11Did parseHtmLTag.John MacFarlane
2014-09-11Did parseEntity.John MacFarlane
2014-09-11Did parseBackticks.John MacFarlane
2014-09-11Finished parseEmphasis.John MacFarlane
This seems to work properly. We now get proper results for `***hi**`.
2014-09-11parseEmphasis: added Strong and shell for triples.John MacFarlane
2014-09-11Shell of parseEmphasis.John MacFarlane
2014-09-11Did parseBackslash (used to be parseEscaped).John MacFarlane
2014-09-11New strategy: did parseNewlines, parseString.John MacFarlane
2014-09-11stmd.js: Added memoization of inline parsing.John MacFarlane
2014-09-09Dingus: use bind('keyup paste cut mouseup'...John MacFarlane
Modifies #98. (Generic 'change' by itself wasn't enough.)
2014-09-09Use generic 'change' to trigger parseAndRender.John MacFarlane
Modifies #98.
2014-09-07Fixed #48.John MacFarlane
- Fixed js and C code. - Added two test cases to spec.