diff --git a/benchmarks/dom/creation.sky b/benchmarks/dom/creation.sky index 0f05fe9df89..7076a7e064a 100644 --- a/benchmarks/dom/creation.sky +++ b/benchmarks/dom/creation.sky @@ -44,7 +44,7 @@ function createElement(tagName) { function createText(text) { texts++; - return document.createTextNode(text); + return new Text(text); } function createElements(root, depth) { diff --git a/benchmarks/layout/simple-blocks.sky b/benchmarks/layout/simple-blocks.sky index 094f763b103..61657b24162 100644 --- a/benchmarks/layout/simple-blocks.sky +++ b/benchmarks/layout/simple-blocks.sky @@ -15,9 +15,9 @@ var content = document.getElementById('content'); var out = []; for (var i = 0; i < 1000; i++) { var div = document.createElement('div'); - div.appendChild(document.createElement('span')).appendChild(document.createTextNode('foo')); - div.appendChild(document.createTextNode(' ')); - div.appendChild(document.createElement('span')).appendChild(document.createTextNode('bar')); + div.appendChild(document.createElement('span')).appendChild(new Text('foo')); + div.appendChild(new Text(' ')); + div.appendChild(document.createElement('span')).appendChild(new Text('bar')); content.appendChild(div); } diff --git a/engine/core/dom/Document.cpp b/engine/core/dom/Document.cpp index 41cddb15143..50071581812 100644 --- a/engine/core/dom/Document.cpp +++ b/engine/core/dom/Document.cpp @@ -517,11 +517,6 @@ PassRefPtr Document::createDocumentFragment() return DocumentFragment::create(*this); } -PassRefPtr Document::createTextNode(const String& data) -{ - return Text::create(*this, data); -} - PassRefPtr Document::createEditingTextNode(const String& text) { return Text::createEditingText(*this, text); @@ -545,7 +540,7 @@ PassRefPtr Document::importNode(Node* importedNode, bool deep, ExceptionSt { switch (importedNode->nodeType()) { case TEXT_NODE: - return createTextNode(toText(importedNode)->data()); + return Text::create(*this, toText(importedNode)->data()); case ELEMENT_NODE: { Element* oldElement = toElement(importedNode); RefPtr newElement = createElement(oldElement->tagQName(), false); diff --git a/engine/core/dom/Document.h b/engine/core/dom/Document.h index 27df6466cdb..5f8591b9eec 100644 --- a/engine/core/dom/Document.h +++ b/engine/core/dom/Document.h @@ -174,7 +174,6 @@ public: PassRefPtr createElement(const AtomicString& name, ExceptionState&); PassRefPtr createDocumentFragment(); - PassRefPtr createTextNode(const String& data); PassRefPtr importNode(Node* importedNode, bool deep, ExceptionState&); PassRefPtr createElement(const QualifiedName&, bool createdByParser); diff --git a/engine/core/dom/Document.idl b/engine/core/dom/Document.idl index fcdfbcd4f30..65535d5cc0f 100644 --- a/engine/core/dom/Document.idl +++ b/engine/core/dom/Document.idl @@ -30,7 +30,6 @@ typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext; [CustomElementCallbacks, PerWorldBindings, RaisesException] Element createElement(DOMString tagName); DocumentFragment createDocumentFragment(); - Text createTextNode(DOMString data); [CustomElementCallbacks, RaisesException, TypeChecking=Interface] Node importNode(Node node, optional boolean deep = false); diff --git a/engine/core/dom/Node.cpp b/engine/core/dom/Node.cpp index 4ebaf10edf2..c6986da84f8 100644 --- a/engine/core/dom/Node.cpp +++ b/engine/core/dom/Node.cpp @@ -919,7 +919,7 @@ void Node::setTextContent(const String& text) // Note: This API will not insert empty text nodes: // http://dom.spec.whatwg.org/#dom-node-textcontent if (!text.isEmpty()) - container->appendChild(document().createTextNode(text), ASSERT_NO_EXCEPTION); + container->appendChild(Text::create(document(), text), ASSERT_NO_EXCEPTION); return; } case DOCUMENT_NODE: diff --git a/engine/core/editing/InsertLineBreakCommand.cpp b/engine/core/editing/InsertLineBreakCommand.cpp index 70d4205e5d1..5aa547b6e9f 100644 --- a/engine/core/editing/InsertLineBreakCommand.cpp +++ b/engine/core/editing/InsertLineBreakCommand.cpp @@ -70,7 +70,7 @@ void InsertLineBreakCommand::doApply() pos = positionOutsideTabSpan(pos); RefPtr nodeToInsert = nullptr; - nodeToInsert = document().createTextNode("\n"); + nodeToInsert = Text::create(document(), "\n"); // FIXME: Need to merge text nodes when inserting just after or before text. @@ -111,7 +111,7 @@ void InsertLineBreakCommand::doApply() if (textNode->inDocument()) insertTextIntoNode(textNode, 0, nonBreakingSpaceString()); else { - RefPtr nbspNode = document().createTextNode(nonBreakingSpaceString()); + RefPtr nbspNode = Text::create(document(), nonBreakingSpaceString()); insertNodeAt(nbspNode.get(), positionBeforeTextNode); endingPosition = firstPositionInNode(nbspNode.get()); } diff --git a/engine/core/html/HTMLTitleElement.cpp b/engine/core/html/HTMLTitleElement.cpp index ca7e43229a6..e2419cc48a0 100644 --- a/engine/core/html/HTMLTitleElement.cpp +++ b/engine/core/html/HTMLTitleElement.cpp @@ -86,7 +86,7 @@ void HTMLTitleElement::setText(const String &value) m_ignoreTitleUpdatesWhenChildrenChange = false; if (!value.isEmpty()) - appendChild(document().createTextNode(value.impl()), IGNORE_EXCEPTION); + appendChild(Text::create(document(), value.impl()), IGNORE_EXCEPTION); } } diff --git a/tests/editing/delete_block_contents.sky b/tests/editing/delete_block_contents.sky index 9fb308533d9..f1ab1f4e36c 100644 --- a/tests/editing/delete_block_contents.sky +++ b/tests/editing/delete_block_contents.sky @@ -9,9 +9,9 @@ describe("height of an editable block", function() { var elem = document.getElementById("test"); var originalHeight = elem.offsetHeight; var d = elem.appendChild(document.createElement('div')); - d.appendChild(document.createTextNode('aaa')); + d.appendChild(new Text('aaa')); d = elem.appendChild(document.createElement('div')); - d.appendChild(document.createTextNode('bbb')); + d.appendChild(new Text('bbb')); var newHeight = elem.offsetHeight; while (elem.firstChild) { diff --git a/tests/mutation-observer/delivery-order.sky b/tests/mutation-observer/delivery-order.sky index 2a1f65a951e..bf056d1aa27 100644 --- a/tests/mutation-observer/delivery-order.sky +++ b/tests/mutation-observer/delivery-order.sky @@ -28,7 +28,7 @@ describe('MutationObserver', function() { observers[6].observe(div, {characterData: true, subtree: true}); observers[8].observe(div, {attributes: true}); div.setAttribute('foo', 'bar'); - div.appendChild(document.createTextNode('hello')); + div.appendChild(new Text('hello')); div.firstChild.textContent = 'goodbye'; setTimeout(function() { assert.deepEqual(order, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]); diff --git a/tests/mutation-observer/mutation-callback-non-element-crash.sky b/tests/mutation-observer/mutation-callback-non-element-crash.sky index a6c4ff401d4..89450e7fb10 100644 --- a/tests/mutation-observer/mutation-callback-non-element-crash.sky +++ b/tests/mutation-observer/mutation-callback-non-element-crash.sky @@ -9,7 +9,7 @@ function mutationCallback(mutations, observer) { var mutationObserver = new MutationObserver(mutationCallback); var body = document.getElementById("body"); mutationObserver.observe(body, {childList: true}); -body.appendChild(document.createTextNode("PASS. We didn't crash")); +body.appendChild(new Text("PASS. We didn't crash")); diff --git a/tests/mutation-observer/mutation-record-nullity.sky b/tests/mutation-observer/mutation-record-nullity.sky index f32da640927..a3dfe00380b 100644 --- a/tests/mutation-observer/mutation-record-nullity.sky +++ b/tests/mutation-observer/mutation-record-nullity.sky @@ -7,7 +7,7 @@ describe('Non-relevant properties on mutation records should be null, except for var observer = new MutationObserver(function() {}); it('on characterData records', function() { - var text = document.createTextNode('something'); + var text = new Text('something'); observer.observe(text, {characterData: true}); text.data = 'something else'; var record = observer.takeRecords()[0]; diff --git a/tests/mutation-observer/observe-characterdata.sky b/tests/mutation-observer/observe-characterdata.sky index 21f2de6cea3..df264d94bce 100644 --- a/tests/mutation-observer/observe-characterdata.sky +++ b/tests/mutation-observer/observe-characterdata.sky @@ -41,7 +41,7 @@ describe('MutationObserver on character data', function() { // ...observer.disconnect() should prevent further delivery of mutations. assert.equal(mutations, null); - charDataNode = document.createTextNode(''); + charDataNode = new Text(''); observer.observe(charDataNode, { characterData: true }); charDataNode.textContent = 'foo'; charDataNode.textContent = 'bar'; diff --git a/tests/mutation-observer/observe-options-character-data.sky b/tests/mutation-observer/observe-options-character-data.sky index 2c37510ae77..698abe0732f 100644 --- a/tests/mutation-observer/observe-options-character-data.sky +++ b/tests/mutation-observer/observe-options-character-data.sky @@ -5,7 +5,7 @@ describe('Test MutationObserver.observe', function() { it('should respect character data options', function() { var observer = new MutationObserver(function() {}); - var text = document.createTextNode('0'); + var text = new Text('0'); observer.observe(text, {characterDataOldValue: true}); text.data = '1'; diff --git a/tests/mutation-observer/shadow-dom.sky b/tests/mutation-observer/shadow-dom.sky index f2d1f49b288..9be869decd9 100644 --- a/tests/mutation-observer/shadow-dom.sky +++ b/tests/mutation-observer/shadow-dom.sky @@ -7,7 +7,7 @@ describe('MutationObservers', function() { it('should handle shadow dom', function() { function mutate(element) { element.setAttribute('data-foo', 'bar'); - element.insertBefore(document.createTextNode('hello'), element.firstChild); + element.insertBefore(new Text('hello'), element.firstChild); element.firstChild.textContent = 'goodbye'; element.removeChild(element.firstChild); }