test: use Worker scope in WPT

Previously, we use the Window scope by default in our WPT test
runner. When one of the test fails, the WPT harness would try to
use document.getElementsByTagName() etc. to display the failure,
which is not going to work for us.

This patch switches the scope to DedicatedWorker and use our
Worker implementation as a global - this does not test the Worker
implementation per se, just tells the WPT harness to pass the results
back to us via the callbacks we installed and not try to access
a document.

We may still need to use a Window scope when we try to run
.window.js tests in the future, but for now we only run .any.js
tests so it's fine to use a worker scope by default.

PR-URL: https://github.com/nodejs/node/pull/24410
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
Joyee Cheung 2018-11-17 05:30:06 +08:00 committed by Rich Trott
parent 566a694bbc
commit 2742f3869a
3 changed files with 5 additions and 3 deletions

View File

@ -280,7 +280,9 @@ class WPTRunner {
sandbox.self = sandbox;
// TODO(joyeecheung): we are not a window - work with the upstream to
// add a new scope for us.
sandbox.document = {}; // Pretend we are Window
const { Worker } = require('worker_threads');
sandbox.DedicatedWorker = Worker; // Pretend we are a Worker
return context;
}

View File

@ -1,6 +1,6 @@
'use strict';
// Flags: --expose-internals
// Flags: --expose-internals --experimental-worker
require('../common');
const { WPTRunner } = require('../common/wpt');

View File

@ -1,6 +1,6 @@
'use strict';
// Flags: --expose-internals
// Flags: --expose-internals --experimental-worker
require('../common');
const { WPTRunner } = require('../common/wpt');