// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. window.add_result_callback(({ message, name, stack, status }) => { const data = new TextEncoder().encode( `${JSON.stringify({ name, status, message, stack })}\n`, ); let bytesWritten = 0; while (bytesWritten < data.byteLength) { bytesWritten += Deno.stderr.writeSync(data.subarray(bytesWritten)); } }); window.add_completion_callback((_tests, harnessStatus) => { const data = new TextEncoder().encode( `#$#$#${JSON.stringify(harnessStatus)}\n`, ); let bytesWritten = 0; while (bytesWritten < data.byteLength) { bytesWritten += Deno.stderr.writeSync(data.subarray(bytesWritten)); } // TODO(cjihrig): Restore the prototype of globalThis to be an EventTarget // again. There are WPTs that change the prototype, which causes brand // checking to fail. Once the globalThis prototype is frozen properly, this // line can be removed. Object.setPrototypeOf(globalThis, EventTarget.prototype); Deno.exit(harnessStatus.status === 0 ? 0 : 1); });