From 24f1407f1f30993ee8dd35d2f52409bcba839a8f Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Thu, 6 Sep 2012 14:16:20 +0100 Subject: add preamble blocks delinited by [[[ and ]]] Improve separation of binding file handling --- test/data/bindings/htmldocument.bnd | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'test') 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 + +#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"; -- cgit v1.2.3