Bug 869006 - Comment should be consructable. r=Ms2ger

This commit is contained in:
Andrea Marchesini 2013-05-13 09:22:30 -04:00
parent a4498570d0
commit edbf1b9d24
5 changed files with 56 additions and 0 deletions

View File

@ -60,6 +60,19 @@ Comment::List(FILE* out, int32_t aIndent) const
}
#endif
/* static */ already_AddRefed<Comment>
Comment::Constructor(const GlobalObject& aGlobal, const nsAString& aData,
ErrorResult& aRv)
{
nsCOMPtr<nsPIDOMWindow> window = do_QueryInterface(aGlobal.Get());
if (!window || !window->GetDoc()) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
}
return window->GetDoc()->CreateComment(aData);
}
JSObject*
Comment::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aScope)
{

View File

@ -66,6 +66,10 @@ public:
}
#endif
static already_AddRefed<Comment>
Constructor(const GlobalObject& aGlobal, const nsAString& aData,
ErrorResult& aRv);
protected:
virtual JSObject* WrapNode(JSContext *aCx,
JS::Handle<JSObject*> aScope) MOZ_OVERRIDE;

View File

@ -625,6 +625,7 @@ MOCHITEST_FILES_C= \
badMessageEvent2.eventsource \
badMessageEvent2.eventsource^headers^ \
test_object.html \
test_bug869006.html \
$(NULL)
# OOP tests don't work on Windows (bug 763081) or native-fennec

View File

@ -0,0 +1,37 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=869006
-->
<head>
<meta charset="utf-8">
<title>Test for Bug 869006</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=869006">Mozilla Bug 869006</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 869006 **/
var c = new Comment();
ok(c, "Comment has been created without content");
is(c.data, "", "Comment.data is ok");
c = new Comment('foo');
ok(c, "Comment has been created");
is(c.data, "foo", "Comment.data is ok");
document.appendChild(c);
ok(true, "Comment has been added to the document");
</script>
</pre>
</body>
</html>

View File

@ -10,5 +10,6 @@
* liability, trademark and document use rules apply.
*/
[Constructor(optional DOMString data = "")]
interface Comment : CharacterData {
};