Fixes#30
Foreign attributes were handled incorrectly because attribute names
were implemented as pure strings without namespace prefix. This change
keeps the attributes as strings and eliminates any handling in regards
to namespaces.
Spec note about attributes:
"If designed today they would just have a name and value."
https://dom.spec.whatwg.org/#attr
Instead of allocating new dictionaries for the scope elements, the scope
checks are just unrolled in-place. Now we have 6 almost identical methods
that differ only in the inline-check-method. Not optimal but minimal
memory and performance penalty.
This should reduce memory consumption and increase the performance
while parsing, see issue #10
Do not use the `allObjects` call on the reverse enumerators in the Parser
and the List of Active Formatting Elements to prevent allocating a new
array of the unenumerated objects.
This should reduce memory consumption while parsing, see issue #10
The data property is longer exposed as a mutable string. Instead all
manipulations must be performed via the provided API in order to ensure
correct updates for the Document’s attached ranges.
See:
https://dom.spec.whatwg.org/#characterdata