diff --git a/src/ecmascript/see/document.c b/src/ecmascript/see/document.c index 8705849b..49bc455e 100644 --- a/src/ecmascript/see/document.c +++ b/src/ecmascript/see/document.c @@ -212,11 +212,17 @@ js_document_write_do(struct SEE_interpreter *interp, struct SEE_object *self, struct string *ret = g->ret; if (argc >= 1 && ret) { - unsigned char *code = SEE_value_to_unsigned_char(interp, argv[0]); + int i = 0; - if (code) { - add_to_string(ret, code); - mem_free(code); + for (; i < argc; ++i) { + unsigned char *code; + + code = SEE_value_to_unsigned_char(interp, argv[i]); + + if (code) { + add_to_string(ret, code); + mem_free(code); + } } if (newline) diff --git a/src/ecmascript/spidermonkey/document.c b/src/ecmascript/spidermonkey/document.c index 896daacf..cef2aa23 100644 --- a/src/ecmascript/spidermonkey/document.c +++ b/src/ecmascript/spidermonkey/document.c @@ -212,9 +212,14 @@ document_write_do(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, struct string *ret = interpreter->ret; if (argc >= 1 && ret) { - unsigned char *code = jsval_to_string(ctx, &argv[0]); + int i = 0; + + for (; i < argc; ++i) { + unsigned char *code = jsval_to_string(ctx, &argv[i]); + + add_to_string(ret, code); + } - add_to_string(ret, code); if (newline) add_char_to_string(ret, '\n'); } diff --git a/test/ecmascript/document_write.html b/test/ecmascript/document_write.html index 2721529a..02856d60 100644 --- a/test/ecmascript/document_write.html +++ b/test/ecmascript/document_write.html @@ -3,7 +3,8 @@ history.html
onload.html