chromium/third_party/blink/web_tests/http/tests/dom/dom-resolveNode-executionContext.js

(async function(testRunner) {
  const {page, session, dp} = await testRunner.startBlank('Tests that DOM.resolveNode can resolve into isolated worlds.');

  await dp.Runtime.enable();
  await dp.Page.enable();
  await session.evaluate(() => document.body.dontFindThis = true);

  // Get reference to document.body in default context.
  const mainWorldNode = (await dp.Runtime.evaluate({expression: 'document.body'})).result.result.objectId;
  const {backendNodeId} = (await dp.DOM.describeNode({objectId: mainWorldNode})).result.node;

  // Resolve reference in a new isolated world.
  const frameId = (await dp.Page.getResourceTree()).result.frameTree.frame.id;
  const isolatedContext = (await dp.Page.createIsolatedWorld({frameId, worldName: 'Test world'})).result.executionContextId;
  const isolatedObjectId = (await dp.DOM.resolveNode({backendNodeId, executionContextId: isolatedContext})).result.object.objectId;

  testRunner.log(await dp.Runtime.callFunctionOn({
    functionDeclaration: `function(){
      if ('dontFindThis' in this)
        return 'FAILED.';
      return this === document.body ? 'SUCCESS' : 'FAILURE';
    }`,
    returnByValue: true,
    objectId: isolatedObjectId,
  }));
  testRunner.completeTest();
})