text: function message_from_port(port) {
    return new Promise(resolve => {
      port.onmessage = e => resolve(e.data);
    });
  }
  
  promise_test(async t => {
    const run_result = 'worker_OK';
    const blob_contents = 'self.postMessage("' + run_result + '");';
    const blob = new Blob([blob_contents]);
    const url = URL.createObjectURL(blob);
  
    const worker = new Worker(url);
    const reply = await message_from_port(worker);
    assert_equals(reply, run_result);
  }, 'Creating a dedicated worker from a blob URL works.');
  
  promise_test(async t => {
    const run_result = 'worker_OK';
    const blob_contents = 'self.postMessage("' + run_result + '");';
    const blob = new Blob([blob_contents]);
    const url = URL.createObjectURL(blob);
  
    const worker = new Worker(url);
    URL.revokeObjectURL(url);
    const reply = await message_from_port(worker);
    assert_equals(reply, run_result);
  }, 'Creating a dedicated worker from a blob URL works immediately before revoking.');
  