iska
429f00adb6
Fix project settings after update to Xcode 6.3.1
2015-04-23 00:40:35 +02:00
iska
d08ac2100e
Fix the isEqualTo call in Parser
...
Use isEqual instead
2015-04-21 23:07:57 +02:00
iska
62a6336dce
Merge branch 'release/0.1.0' into develop
2015-04-20 21:51:38 +02:00
iska
95aa60a6e0
Add README file with initial description
...
Although the parsing algorithm is complete the version 0.1.0 is far from ready to be called a "kit".
2015-04-20 21:51:30 +02:00
iska
150d49b010
Add MIT License
2015-04-19 20:33:53 +02:00
iska
5aaa223437
Improve error message for the Tokenizer tests
2015-04-17 00:53:12 +02:00
iska
1af7e9ea89
Reorder test classes and their groups
2015-04-17 00:45:15 +02:00
iska
1829af229a
Add Ordered Dictionary tests
...
- Remove index checks, an exception will be thrown by the underlying array
- Fix indexed subscript method name
- Change behaviour of "setObject:forKey:atIndex:" so that an existing key is moved
2015-04-17 00:43:47 +02:00
iska
27c020371d
Rename NSString category method for clarity and add category tests
2015-04-16 20:37:49 +02:00
iska
575dbc50d4
Add HTML Parser implementation for the <template> tag
...
Also activate the <template> tests
2015-04-16 20:03:18 +02:00
iska
654dffcc92
Add initial implementation for HTML Template & Document Fragment
...
https://html.spec.whatwg.org/multipage/scripting.html#the-template-element
2015-04-16 00:13:15 +02:00
iska
01adbf4437
Fix method name typo in stack of open elements
2015-04-13 00:28:23 +02:00
iska
dbae9dd55f
Organize source code into groups
2015-04-12 19:48:48 +02:00
iska
4ddf8e60fd
Remove the dynamic selector-state-machine from the parser class
...
Instead, use a plain-old switch-case.
Performance boost (along with the character token changes) about 6% (reference to baseline)
2015-04-12 19:45:50 +02:00
iska
c524b25051
Add HTML5 Lib's test detail message to all assertions in the Tree Construction tests
2015-04-12 19:35:53 +02:00
iska
d8a55db4dc
Change the implementation of the character token and string methods to reduce initialization overhead
...
All methods operate on the same NSString instance instead of creating a new character token, e.g. when
trimming or splitting the leading whitespace.
2015-04-12 18:33:10 +02:00
iska
0911e46dba
Add HTMLKit Parser Performance test
...
This tests measures the parsing time of the HTML Living Standard page, about 8.1MB in
size (as of 23 October 2014)
2015-04-12 18:33:01 +02:00
iska
af55cf01cb
Reinitialize the tokenizer when parsing the same input as a fragment case multiple times
...
The tokenizer is a NSEnumerator, thus cannot be reseted, hence the change.
2015-04-11 22:34:07 +02:00
iska
40f4ce4cb1
Remove the dynamic selector-state-machine from the tokenizer class
...
Instead, use a plain-old switch-case. Another 18% performance boost.
This change results in a total performance boost of about 65% (reference to baseline)
2015-04-11 22:31:34 +02:00
iska
4158ef0237
Use a accumulator-character-token in the tokenizer to reduce the initialization overhead
...
Initializing character tokens, and the NSString objects they use, results in a relatively high overhead. The tokenizer
now accumulated all successive characters in on accumulator token until a non-character token is emitted.
This change reduces the execution time of the performance test on the local machine by 48% (reference to baseline)
2015-04-11 22:12:51 +02:00
iska
936c76d142
Remove the superfluous allObjects method from the tokenizer class
...
Being a NSEnumerator, the tokenizer cannot be reset, hence the change in the tests to create a new
instance for each iteration.
2015-04-11 21:47:55 +02:00
iska
8bfccb124f
Use the debug description for Tree Construction tests which dumps a tree structure
2015-04-11 21:44:40 +02:00
iska
0ac909fb66
Add HTML5 Lib Tree Construction tests
...
https://github.com/html5lib/html5lib-tests
2015-04-11 00:51:37 +02:00
iska
067e8c7cc7
Fix insertion mode switch in the "after frameset" phase
2015-04-11 00:45:30 +02:00
iska
68d4eb03ce
Fix tag-name check for "td" & "th" end-tag handling in "in cell" phase
2015-04-11 00:44:20 +02:00
iska
23f8ec35fb
Fix element-in-scope check for end-tag handling in "in body" phase
2015-04-11 00:43:18 +02:00
iska
bf30dd85b9
Fix token-cast when adjusting the foreign attributes for token
2015-04-11 00:42:07 +02:00
iska
2a2a21d1fa
Fix assignment for the character token in the "in table" phase
2015-04-11 00:40:12 +02:00
iska
ca02086636
Change while-loop to a for-loop in the any-other-end-tag in "in body" phase
2015-04-11 00:39:26 +02:00
iska
327f2a6679
Fix character token handling in the "foreign" insertion mode
2015-04-11 00:38:16 +02:00
iska
50761a1444
Fix switch in the "select" start tag in the "in body" insertion mode
2015-04-11 00:37:29 +02:00
iska
db0bb51bc5
Fix the "isindex" attributes handling in the "in body" insertion mode
2015-04-11 00:36:37 +02:00
iska
27817fb7ec
Fix start-tag handling for "object" tags in the "in body" insertion mode
2015-04-11 00:36:02 +02:00
iska
7c1b04e9a4
Fix start-tag handling for the "li", "dd" & "dt" case in the "in body" insertion mode
2015-04-11 00:35:13 +02:00
iska
082d573cf3
Fix "frameset" case in the start-tag handling of the "in body" insertion mode
2015-04-11 00:34:27 +02:00
iska
99ea01a908
Fix character token handling in the "in body" insertion mode
2015-04-11 00:33:43 +02:00
iska
abad8f0a62
Fix "frameset" case in the "after head" insertion mode
2015-04-11 00:33:03 +02:00
iska
8007b4817c
Fix reseting-the-insertion-mode method
2015-04-11 00:32:20 +02:00
iska
280339e2f0
Fix adoption agency algorithm
2015-04-11 00:31:37 +02:00
iska
aa008900c9
Fix the input stream reader method for the CDATA Section state
...
- All carriage returns must be converted to line feeds
- All line feeds following a carriage return must be ignored
https://html.spec.whatwg.org/multipage/syntax.html#preprocessing-the-input-stream
2015-04-11 00:18:39 +02:00
iska
27375e3a47
Fix the default case in the "after after frameset" phase
2015-04-09 21:24:14 +02:00
iska
34e88898f2
Fix inserting comment calls in the "initial" & the "after head" insertion modes
2015-04-09 21:23:25 +02:00
iska
e362bf717f
Add length-check for the character token when ignoring a line-feed character after <textarea>
2015-04-09 21:22:16 +02:00
iska
b6d30da180
Fix initializing tokenizer state in the parser
...
Add check for HTML namespace for the context element
2015-04-09 21:21:34 +02:00
iska
bf821fb70d
Fix MatML attribute adjustment
...
Case was wrong and tagName was checked as key instead of "definitionurl"
2015-04-09 21:20:50 +02:00
iska
c60f308ca5
Fix HTML Element copy method
...
Was missing the namespace copy
2015-04-09 21:20:04 +02:00
iska
2c387c13ef
Add parameterless initializer for the DOCTYPE Token
...
Otherwise the token has an incorrect type when inited via a "new" call
2015-04-08 21:48:12 +02:00
iska
7ca60ea53a
Add nil-check for the input string when initializing the parser
2015-04-08 20:41:40 +02:00
iska
2f58d1364a
Add nil-check in the tokenizer when emitting a nil-string as character token
2015-04-08 20:41:04 +02:00
iska
1b05db8e36
Fix tokenizer's CDATA-Section state
...
The closing "]]>" was not consumed
2015-04-08 20:40:43 +02:00