diff options
-rw-r--r-- | src/loader/loader.nim | 9 | ||||
-rw-r--r-- | test/js/data_url.html | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/loader/loader.nim b/src/loader/loader.nim index c9025153..c40c3cad 100644 --- a/src/loader/loader.nim +++ b/src/loader/loader.nim @@ -414,10 +414,17 @@ proc loadDataSend(ctx: LoaderContext; handle: LoaderHandle; s, ct: string) = handle.sendResult(0) handle.sendStatus(200) handle.sendHeaders(newHeaders({"Content-Type": ct})) + let output = handle.output + if s.len == 0: + if output.suspended: + output.istreamAtEnd = true + ctx.outputMap[output.ostream.fd] = output + else: + output.oclose() + return let buffer = newLoaderBuffer(size = s.len) buffer.len = s.len copyMem(buffer.page, unsafeAddr s[0], s.len) - let output = handle.output case ctx.pushBuffer(output, buffer, 0) of pbrUnregister: if output.registered: diff --git a/test/js/data_url.html b/test/js/data_url.html index 5da3f920..292bc974 100644 --- a/test/js/data_url.html +++ b/test/js/data_url.html @@ -1,4 +1,5 @@ <!DOCTYPE html> <div id=abc>Fail</div> +<script src="data:text/plain,"></script> <script src="data:text/javascript,document.getElementById('abc').textContent='Success'"> </script> |