summaryrefslogtreecommitdiff
path: root/test/data/bindings/htmldocument.bnd
diff options
context:
space:
mode:
authorVincent Sanders <vincent.sanders@collabora.co.uk>2012-09-06 14:16:20 +0100
committerVincent Sanders <vincent.sanders@collabora.co.uk>2012-09-06 14:16:20 +0100
commit24f1407f1f30993ee8dd35d2f52409bcba839a8f (patch)
treeba7557d3753e2e96e1642af38a58170aff141c07 /test/data/bindings/htmldocument.bnd
parentc1db25526a6990263e9703634401178975cf9d61 (diff)
downloadnsgenbind-24f1407f1f30993ee8dd35d2f52409bcba839a8f.tar.gz
nsgenbind-24f1407f1f30993ee8dd35d2f52409bcba839a8f.tar.bz2
add preamble blocks delinited by [[[ and ]]]
Improve separation of binding file handling
Diffstat (limited to 'test/data/bindings/htmldocument.bnd')
-rw-r--r--test/data/bindings/htmldocument.bnd43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/data/bindings/htmldocument.bnd b/test/data/bindings/htmldocument.bnd
index d370be0..55a8ac7 100644
--- a/test/data/bindings/htmldocument.bnd
+++ b/test/data/bindings/htmldocument.bnd
@@ -10,4 +10,47 @@ hdrcomment "multi"
"line"
"comment";
+hdrcomment "IDL http://www.whatwg.org/specs/web-apps/current-work/#the-document-object";
+
+preamble [[[
+
+#include <dom/dom.h>
+
+#include "utils/config.h"
+#include "utils/log.h"
+
+#include "javascript/jsapi.h"
+
+static JSBool JSAPI_NATIVE(write, JSContext *cx, uintN argc, jsval *vp)
+{
+ JSString* u16_txt;
+ char *txt;
+ unsigned long length;
+ struct jsclass_document_priv *document;
+
+ document = JS_GetInstancePrivate(cx, JS_THIS_OBJECT(cx,vp), &JSCLASS_OBJECT, NULL);
+ if (document == NULL) {
+ return JS_FALSE;
+ }
+
+ if (!JS_ConvertArguments(cx, argc, JSAPI_ARGV(cx, vp), "S", &u16_txt)) {
+ return JS_FALSE;
+ }
+
+ JSString_to_char(u16_txt, txt, length);
+
+ LOG(("content %p parser %p writing %s",
+ document->htmlc, document->htmlc->parser, txt));
+ if (document->htmlc->parser != NULL) {
+ dom_hubbub_parser_insert_chunk(document->htmlc->parser, (uint8_t *)txt, length);
+ }
+ JSAPI_SET_RVAL(cx, vp, JSVAL_VOID);
+
+ foo[23] = bar[n +[x]];
+
+ return JS_TRUE;
+}
+
+]]]
+
interface "Document";