summaryrefslogtreecommitdiff
path: root/test/data/bindings/htmldocument.bnd
blob: 55a8ac797e88e7ddc7c2f4c7050b1ccd9cefc283 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/* test binding to generate htmldocument */

webidlfile "eventtarget.idl";
webidlfile "node.idl";
webidlfile "document.idl";
webidlfile "htmldocument.idl";

hdrcomment "Part of NetSurf Project";
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";