Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–6335 unchanged (6335 lines)
6336 await act(async () => {
6337 await promiseForContext;
6338 });
6339
6340 expect(getVisibleChildren(container)).toEqual('Hi');
6341 });
6342
6343 it('useActionState hydrates without a mismatch', async () => {
6344 // This is testing an implementation detail: useActionState emits comment
6345 // nodes into the SSR stream, so this checks that they are handled correctly
6346 // during hydration.
6347
6348 async function action(state) {
…lines 6349–10642 unchanged (4294 lines)

After

…lines 1–6336 unchanged (6336 lines)
6337 await promiseForContext;
6338 });
6339
6340 expect(getVisibleChildren(container)).toEqual('Hi');
6341 });
6342
6343 it('should correctly handle different promises in React.use() across lazy components', async () => {
6344 let promise1;
6345 let promise2;
6346 let promiseLazy;
6347
6348 function Component1() {
6349 promise1 ??= new Promise(r => setTimeout(() => r('value1'), 50));
6350 const data = React.use(promise1);
6351 return (
6352 <div>
6353 {data}
6354 <Component2Lazy />
6355 </div>
6356 );
6357 }
6358
6359 function Component2() {
6360 promise2 ??= new Promise(r => setTimeout(() => r('value2'), 50));
6361 const data = React.use(promise2);
6362 return <div>{data}</div>;
6363 }
6364
6365 const Component2Lazy = React.lazy(async () => {
6366 promiseLazy ??= new Promise(r => setTimeout(r, 50));
6367 await promiseLazy;
6368 return {default: Component2};
6369 });
6370
6371 function App() {
6372 return <Component1 />;
6373 }
6374
6375 await act(async () => {
6376 const {pipe} = renderToPipeableStream(<App />);
6377 pipe(writable);
6378 });
6379
6380 // Wait for promise to resolve
6381 await act(async () => {
6382 await promise1;
6383 });
6384 await act(async () => {
6385 await promiseLazy;
6386 });
6387 await act(async () => {
6388 await promise2;
6389 });
6390
6391 // Verify both components received the correct values
6392 expect(getVisibleChildren(container)).toEqual(
6393 <div>
6394 value1
6395 <div>value2</div>
6396 </div>,
6397 );
6398 });
6399
6400 it('useActionState hydrates without a mismatch', async () => {
6401 // This is testing an implementation detail: useActionState emits comment
6402 // nodes into the SSR stream, so this checks that they are handled correctly
6403 // during hydration.
6404
…lines 6405–10699 unchanged (4295 lines)

Before

ERROR
comment "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *"...
expression_statement
string
' "'"
string_fragment "use strict"
' "'"
; ";"
import_statement (+24 nodes collapsed)
lexical_declaration
let "let"
variable_declarator
identifier "JSDOM"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "Stream"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "Scheduler"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "React"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "ReactDOM"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "ReactDOMClient"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "ReactDOMFizzServer"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "ReactDOMFizzStatic"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "Suspense"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "SuspenseList"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "assertConsoleErrorDev"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "useSyncExternalStore"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "useSyncExternalStoreWithSelector"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "use"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "useActionState"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "PropTypes"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "textCache"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "writable"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "CSPnonce"
= "="
null "null"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "container"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "buffer"
= "="
string
' "'"
' "'"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "hasErrored"
= "="
false "false"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "fatalError"
= "="
undefined "undefined"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "renderOptions"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "waitFor"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "waitForAll"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "assertLog"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "waitForPaint"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "clientAct"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "streamingContainer"
; ";"
function_declaration (+64 nodes collapsed)
identifier "describe"
( "("
string
' "'"
string_fragment "ReactDOMFizzServer"
' "'"
, ","
formal_parameters
( "("
) ")"
=> "=>"
{ "{"
expression_statement (+846 nodes collapsed)
function_declaration (+169 nodes collapsed)
function_declaration (+44 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "bodyStartMatch"
= "="
regex
/ "/"
regex_pattern "<body(?:>| .*?>)"
/ "/"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "headStartMatch"
= "="
regex
/ "/"
regex_pattern "<head(?:>| .*?>)"
/ "/"
; ";"
function_declaration (+1099 nodes collapsed)
function_declaration (+144 nodes collapsed)
function_declaration (+146 nodes collapsed)
function_declaration (+229 nodes collapsed)
function_declaration
function "function"
identifier "Text"
formal_parameters
( "("
object_pattern
{ "{"
shorthand_property_identifier_pattern "text"
} "}"
) ")"
statement_block
{ "{"
return_statement
return "return"
identifier "text"
; ";"
} "}"
function_declaration (+22 nodes collapsed)
function_declaration (+43 nodes collapsed)
function_declaration (+35 nodes collapsed)
expression_statement (+539 nodes collapsed)
expression_statement (+589 nodes collapsed)
expression_statement (+748 nodes collapsed)
expression_statement (+380 nodes collapsed)
expression_statement (+836 nodes collapsed)
expression_statement (+399 nodes collapsed)
expression_statement (+302 nodes collapsed)
expression_statement (+621 nodes collapsed)
expression_statement (+544 nodes collapsed)
expression_statement (+630 nodes collapsed)
expression_statement (+195 nodes collapsed)
expression_statement (+439 nodes collapsed)
expression_statement (+605 nodes collapsed)
comment "// @gate enableSuspenseList"
expression_statement (+634 nodes collapsed)
expression_statement (+653 nodes collapsed)
expression_statement (+789 nodes collapsed)
identifier "it"
( "("
string
' "'"
string_fragment "can resolve async content in esoteric parents"
' "'"
, ","
async "async"
formal_parameters
( "("
) ")"
=> "=>"
{ "{"
function_declaration (+34 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+154 nodes collapsed)
expression_statement (+43 nodes collapsed)
expression_statement (+41 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+39 nodes collapsed)
expression_statement (+131 nodes collapsed)
expression_statement
call_expression
identifier "it"
arguments
( "("
string
' "'"
string_fragment "can resolve async content in table parents"
' "'"
, ","
arrow_function
async "async"
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
function_declaration (+43 nodes collapsed)
function_declaration (+43 nodes collapsed)
function_declaration (+34 nodes collapsed)
function_declaration (+110 nodes collapsed)
expression_statement (+43 nodes collapsed)
expression_statement (+58 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+73 nodes collapsed)
expression_statement (+367 nodes collapsed)
function_declaration (+66 nodes collapsed)
expression_statement (+474 nodes collapsed)
comment "// @gate !disableLegacyContext"
expression_statement (+549 nodes collapsed)
expression_statement (+460 nodes collapsed)
expression_statement (+465 nodes collapsed)
expression_statement (+750 nodes collapsed)
expression_statement (+274 nodes collapsed)
expression_statement (+430 nodes collapsed)
comment "// The selector implementation uses the lazy ref initializat"...
expression_statement (+473 nodes collapsed)
expression_statement (+467 nodes collapsed)
expression_statement (+312 nodes collapsed)
expression_statement (+312 nodes collapsed)
expression_statement (+602 nodes collapsed)
expression_statement (+473 nodes collapsed)
comment "// Disabled because of a WWW late mutations regression."
comment "// We may want to re-enable this if we figure out why."
comment "// @gate FIXME"
expression_statement (+609 nodes collapsed)
comment "// Disabled because of a WWW late mutations regression."
comment "// We may want to re-enable this if we figure out why."
comment "// @gate FIXME"
expression_statement (+772 nodes collapsed)
comment "// Disabled because of a WWW late mutations regression."
comment "// We may want to re-enable this if we figure out why."
comment "// @gate FIXME"
expression_statement (+779 nodes collapsed)
expression_statement (+701 nodes collapsed)
expression_statement (+367 nodes collapsed)
expression_statement (+428 nodes collapsed)
expression_statement (+245 nodes collapsed)
comment "// @gate enableAsyncIterableChildren"
expression_statement (+289 nodes collapsed)
comment "// @gate enableAsyncIterableChildren"
expression_statement (+331 nodes collapsed)
expression_statement (+108 nodes collapsed)
expression_statement (+578 nodes collapsed)
expression_statement (+585 nodes collapsed)
expression_statement (+312 nodes collapsed)
expression_statement (+229 nodes collapsed)
comment "// bugfix: https://github.com/facebook/react/issues/27286"
expression_statement (+153 nodes collapsed)
comment "// https://github.com/facebook/react/issues/27540"
comment "// This test is not actually asserting much because there is"...
comment "// Node implementation of Fizz. The close leads to an abort "...
comment "// method has an opportunity to schedule a write. We should "...
comment "// to fail if the underyling issue of writing after stream c"...
expression_statement (+206 nodes collapsed)
expression_statement (+424 nodes collapsed)
expression_statement (+359 nodes collapsed)
expression_statement (+211 nodes collapsed)
expression_statement (+206 nodes collapsed)
expression_statement (+209 nodes collapsed)
expression_statement (+408 nodes collapsed)
expression_statement (+443 nodes collapsed)
expression_statement (+1035 nodes collapsed)
expression_statement (+513 nodes collapsed)
expression_statement (+574 nodes collapsed)
expression_statement (+806 nodes collapsed)
expression_statement (+293 nodes collapsed)
comment "// @gate enableFizzExternalRuntime"
expression_statement (+232 nodes collapsed)
comment "// @gate shouldUseFizzExternalRuntime"
expression_statement (+183 nodes collapsed)
comment "// @gate shouldUseFizzExternalRuntime"
expression_statement (+217 nodes collapsed)
expression_statement (+609 nodes collapsed)
expression_statement (+650 nodes collapsed)
expression_statement (+419 nodes collapsed)
expression_statement (+505 nodes collapsed)
expression_statement (+553 nodes collapsed)
expression_statement (+749 nodes collapsed)
expression_statement (+744 nodes collapsed)
expression_statement (+384 nodes collapsed)
expression_statement (+440 nodes collapsed)
expression_statement (+422 nodes collapsed)
expression_statement (+306 nodes collapsed)
expression_statement (+3647 nodes collapsed)
expression_statement (+2055 nodes collapsed)
expression_statement (+338 nodes collapsed)
expression_statement (+262 nodes collapsed)
expression_statement (+414 nodes collapsed)
expression_statement (+714 nodes collapsed)
expression_statement (+193 nodes collapsed)
expression_statement (+174 nodes collapsed)
expression_statement (+131 nodes collapsed)
expression_statement (+104 nodes collapsed)
expression_statement (+146 nodes collapsed)
expression_statement (+354 nodes collapsed)
expression_statement (+476 nodes collapsed)
expression_statement (+906 nodes collapsed)
expression_statement (+215 nodes collapsed)
expression_statement (+246 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+353 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+351 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+414 nodes collapsed)
expression_statement (+356 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+376 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+979 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+1024 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+1049 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+880 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+622 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+668 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+509 nodes collapsed)
comment "// @gate enableHalt"
expression_statement (+690 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+690 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+535 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+693 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+456 nodes collapsed)
expression_statement (+141 nodes collapsed)
expression_statement (+421 nodes collapsed)
expression_statement (+454 nodes collapsed)
expression_statement (+454 nodes collapsed)
expression_statement (+429 nodes collapsed)
expression_statement (+325 nodes collapsed)
expression_statement (+230 nodes collapsed)
expression_statement (+291 nodes collapsed)
comment "// @gate __DEV__"
expression_statement (+191 nodes collapsed)
comment "// @gate __DEV__"
expression_statement (+346 nodes collapsed)
expression_statement (+179 nodes collapsed)
expression_statement (+261 nodes collapsed)
expression_statement (+558 nodes collapsed)
expression_statement (+622 nodes collapsed)
expression_statement (+558 nodes collapsed)
expression_statement (+689 nodes collapsed)
expression_statement (+866 nodes collapsed)
expression_statement (+905 nodes collapsed)
expression_statement (+671 nodes collapsed)
expression_statement (+1018 nodes collapsed)
expression_statement (+551 nodes collapsed)
expression_statement (+728 nodes collapsed)
expression_statement (+773 nodes collapsed)
expression_statement (+773 nodes collapsed)
expression_statement (+507 nodes collapsed)
expression_statement (+1165 nodes collapsed)
expression_statement (+840 nodes collapsed)
expression_statement (+592 nodes collapsed)
expression_statement (+291 nodes collapsed)
expression_statement (+286 nodes collapsed)
expression_statement (+209 nodes collapsed)
expression_statement (+226 nodes collapsed)
expression_statement (+325 nodes collapsed)
expression_statement (+441 nodes collapsed)
expression_statement (+395 nodes collapsed)
} "}"
) ")"
; ";"

After

ERROR
comment "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *"...
expression_statement
string
' "'"
string_fragment "use strict"
' "'"
; ";"
import_statement (+24 nodes collapsed)
lexical_declaration
let "let"
variable_declarator
identifier "JSDOM"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "Stream"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "Scheduler"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "React"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "ReactDOM"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "ReactDOMClient"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "ReactDOMFizzServer"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "ReactDOMFizzStatic"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "Suspense"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "SuspenseList"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "assertConsoleErrorDev"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "useSyncExternalStore"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "useSyncExternalStoreWithSelector"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "use"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "useActionState"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "PropTypes"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "textCache"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "writable"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "CSPnonce"
= "="
null "null"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "container"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "buffer"
= "="
string
' "'"
' "'"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "hasErrored"
= "="
false "false"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "fatalError"
= "="
undefined "undefined"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "renderOptions"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "waitFor"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "waitForAll"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "assertLog"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "waitForPaint"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "clientAct"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "streamingContainer"
; ";"
function_declaration (+64 nodes collapsed)
identifier "describe"
( "("
string
' "'"
string_fragment "ReactDOMFizzServer"
' "'"
, ","
formal_parameters
( "("
) ")"
=> "=>"
{ "{"
expression_statement (+846 nodes collapsed)
function_declaration (+169 nodes collapsed)
function_declaration (+44 nodes collapsed)
lexical_declaration
const "const"
variable_declarator
identifier "bodyStartMatch"
= "="
regex
/ "/"
regex_pattern "<body(?:>| .*?>)"
/ "/"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "headStartMatch"
= "="
regex
/ "/"
regex_pattern "<head(?:>| .*?>)"
/ "/"
; ";"
function_declaration (+1099 nodes collapsed)
function_declaration (+144 nodes collapsed)
function_declaration (+146 nodes collapsed)
function_declaration (+229 nodes collapsed)
function_declaration
function "function"
identifier "Text"
formal_parameters
( "("
object_pattern
{ "{"
shorthand_property_identifier_pattern "text"
} "}"
) ")"
statement_block
{ "{"
return_statement
return "return"
identifier "text"
; ";"
} "}"
function_declaration (+22 nodes collapsed)
function_declaration (+43 nodes collapsed)
function_declaration (+35 nodes collapsed)
expression_statement (+539 nodes collapsed)
expression_statement (+589 nodes collapsed)
expression_statement (+748 nodes collapsed)
expression_statement (+380 nodes collapsed)
expression_statement (+836 nodes collapsed)
expression_statement (+399 nodes collapsed)
expression_statement (+302 nodes collapsed)
expression_statement (+621 nodes collapsed)
expression_statement (+544 nodes collapsed)
expression_statement (+630 nodes collapsed)
expression_statement (+195 nodes collapsed)
expression_statement (+439 nodes collapsed)
expression_statement (+605 nodes collapsed)
comment "// @gate enableSuspenseList"
expression_statement (+634 nodes collapsed)
expression_statement (+653 nodes collapsed)
expression_statement (+789 nodes collapsed)
identifier "it"
( "("
string
' "'"
string_fragment "can resolve async content in esoteric parents"
' "'"
, ","
async "async"
formal_parameters
( "("
) ")"
=> "=>"
{ "{"
function_declaration (+34 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+32 nodes collapsed)
function_declaration (+154 nodes collapsed)
expression_statement (+43 nodes collapsed)
expression_statement (+41 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+39 nodes collapsed)
expression_statement (+131 nodes collapsed)
expression_statement
call_expression
identifier "it"
arguments
( "("
string
' "'"
string_fragment "can resolve async content in table parents"
' "'"
, ","
arrow_function
async "async"
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
function_declaration (+43 nodes collapsed)
function_declaration (+43 nodes collapsed)
function_declaration (+34 nodes collapsed)
function_declaration (+110 nodes collapsed)
expression_statement (+43 nodes collapsed)
expression_statement (+58 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+28 nodes collapsed)
expression_statement (+73 nodes collapsed)
expression_statement (+367 nodes collapsed)
function_declaration (+66 nodes collapsed)
expression_statement (+474 nodes collapsed)
comment "// @gate !disableLegacyContext"
expression_statement (+549 nodes collapsed)
expression_statement (+460 nodes collapsed)
expression_statement (+465 nodes collapsed)
expression_statement (+750 nodes collapsed)
expression_statement (+274 nodes collapsed)
expression_statement (+430 nodes collapsed)
comment "// The selector implementation uses the lazy ref initializat"...
expression_statement (+473 nodes collapsed)
expression_statement (+467 nodes collapsed)
expression_statement (+312 nodes collapsed)
expression_statement (+312 nodes collapsed)
expression_statement (+602 nodes collapsed)
expression_statement (+473 nodes collapsed)
comment "// Disabled because of a WWW late mutations regression."
comment "// We may want to re-enable this if we figure out why."
comment "// @gate FIXME"
expression_statement (+609 nodes collapsed)
comment "// Disabled because of a WWW late mutations regression."
comment "// We may want to re-enable this if we figure out why."
comment "// @gate FIXME"
expression_statement (+772 nodes collapsed)
comment "// Disabled because of a WWW late mutations regression."
comment "// We may want to re-enable this if we figure out why."
comment "// @gate FIXME"
expression_statement (+779 nodes collapsed)
expression_statement (+701 nodes collapsed)
expression_statement (+367 nodes collapsed)
expression_statement (+428 nodes collapsed)
expression_statement (+245 nodes collapsed)
comment "// @gate enableAsyncIterableChildren"
expression_statement (+289 nodes collapsed)
comment "// @gate enableAsyncIterableChildren"
expression_statement (+331 nodes collapsed)
expression_statement (+108 nodes collapsed)
expression_statement (+578 nodes collapsed)
expression_statement (+585 nodes collapsed)
expression_statement (+312 nodes collapsed)
expression_statement (+229 nodes collapsed)
comment "// bugfix: https://github.com/facebook/react/issues/27286"
expression_statement (+153 nodes collapsed)
comment "// https://github.com/facebook/react/issues/27540"
comment "// This test is not actually asserting much because there is"...
comment "// Node implementation of Fizz. The close leads to an abort "...
comment "// method has an opportunity to schedule a write. We should "...
comment "// to fail if the underyling issue of writing after stream c"...
expression_statement (+206 nodes collapsed)
expression_statement (+424 nodes collapsed)
expression_statement (+359 nodes collapsed)
expression_statement (+211 nodes collapsed)
expression_statement (+206 nodes collapsed)
expression_statement (+209 nodes collapsed)
expression_statement (+408 nodes collapsed)
expression_statement (+443 nodes collapsed)
expression_statement (+1035 nodes collapsed)
expression_statement (+513 nodes collapsed)
expression_statement (+574 nodes collapsed)
expression_statement (+806 nodes collapsed)
expression_statement (+293 nodes collapsed)
comment "// @gate enableFizzExternalRuntime"
expression_statement (+232 nodes collapsed)
comment "// @gate shouldUseFizzExternalRuntime"
expression_statement (+183 nodes collapsed)
comment "// @gate shouldUseFizzExternalRuntime"
expression_statement (+217 nodes collapsed)
expression_statement (+609 nodes collapsed)
expression_statement (+650 nodes collapsed)
expression_statement (+419 nodes collapsed)
expression_statement (+505 nodes collapsed)
expression_statement (+553 nodes collapsed)
expression_statement (+749 nodes collapsed)
expression_statement (+744 nodes collapsed)
expression_statement (+384 nodes collapsed)
expression_statement (+440 nodes collapsed)
expression_statement (+422 nodes collapsed)
expression_statement (+306 nodes collapsed)
expression_statement (+3647 nodes collapsed)
expression_statement (+2055 nodes collapsed)
expression_statement (+338 nodes collapsed)
expression_statement (+262 nodes collapsed)
expression_statement (+414 nodes collapsed)
expression_statement (+714 nodes collapsed)
expression_statement (+193 nodes collapsed)
expression_statement (+174 nodes collapsed)
expression_statement (+131 nodes collapsed)
expression_statement (+104 nodes collapsed)
expression_statement (+146 nodes collapsed)
expression_statement
call_expression
identifier "it"
arguments
( "("
string
' "'"
string_fragment "should correctly handle different promises in React.use() ac"...
' "'"
, ","
arrow_function
async "async"
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
lexical_declaration
let "let"
variable_declarator
identifier "promise1"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "promise2"
; ";"
lexical_declaration
let "let"
variable_declarator
identifier "promiseLazy"
; ";"
function_declaration
function "function"
identifier "Component1"
formal_parameters
( "("
) ")"
statement_block
{ "{"
expression_statement
augmented_assignment_expression
identifier "promise1"
??= "??="
new_expression
new "new"
identifier "Promise"
arguments
( "("
arrow_function
identifier "r"
=> "=>"
call_expression
identifier "setTimeout"
arguments
( "("
arrow_function
formal_parameters
( "("
) ")"
=> "=>"
call_expression
identifier "r"
arguments
( "("
string
' "'"
string_fragment "value1"
' "'"
) ")"
, ","
number "50"
) ")"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "data"
= "="
call_expression
member_expression
identifier "React"
. "."
property_identifier "use"
arguments
( "("
identifier "promise1"
) ")"
; ";"
return_statement
return "return"
parenthesized_expression
( "("
jsx_element
jsx_opening_element
< "<"
identifier "div"
> ">"
jsx_expression
{ "{"
identifier "data"
} "}"
jsx_self_closing_element
< "<"
identifier "Component2Lazy"
/> "/>"
jsx_closing_element
</ "</"
identifier "div"
> ">"
) ")"
; ";"
} "}"
function_declaration
function "function"
identifier "Component2"
formal_parameters
( "("
) ")"
statement_block
{ "{"
expression_statement
augmented_assignment_expression
identifier "promise2"
??= "??="
new_expression
new "new"
identifier "Promise"
arguments
( "("
arrow_function
identifier "r"
=> "=>"
call_expression
identifier "setTimeout"
arguments
( "("
arrow_function
formal_parameters
( "("
) ")"
=> "=>"
call_expression
identifier "r"
arguments
( "("
string
' "'"
string_fragment "value2"
' "'"
) ")"
, ","
number "50"
) ")"
) ")"
; ";"
lexical_declaration
const "const"
variable_declarator
identifier "data"
= "="
call_expression
member_expression
identifier "React"
. "."
property_identifier "use"
arguments
( "("
identifier "promise2"
) ")"
; ";"
return_statement
return "return"
jsx_element
jsx_opening_element
< "<"
identifier "div"
> ">"
jsx_expression
{ "{"
identifier "data"
} "}"
jsx_closing_element
</ "</"
identifier "div"
> ">"
; ";"
} "}"
lexical_declaration
const "const"
variable_declarator
identifier "Component2Lazy"
= "="
call_expression
member_expression
identifier "React"
. "."
property_identifier "lazy"
arguments
( "("
arrow_function
async "async"
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
augmented_assignment_expression
identifier "promiseLazy"
??= "??="
new_expression
new "new"
identifier "Promise"
arguments
( "("
arrow_function
identifier "r"
=> "=>"
call_expression
identifier "setTimeout"
arguments
( "("
identifier "r"
, ","
number "50"
) ")"
) ")"
; ";"
expression_statement
await_expression
await "await"
identifier "promiseLazy"
; ";"
return_statement
return "return"
object
{ "{"
pair
property_identifier "default"
: ":"
identifier "Component2"
} "}"
; ";"
} "}"
) ")"
; ";"
function_declaration
function "function"
identifier "App"
formal_parameters
( "("
) ")"
statement_block
{ "{"
return_statement
return "return"
jsx_self_closing_element
< "<"
identifier "Component1"
/> "/>"
; ";"
} "}"
expression_statement
await_expression
await "await"
call_expression
identifier "act"
arguments
( "("
arrow_function
async "async"
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
lexical_declaration
const "const"
variable_declarator
object_pattern
{ "{"
shorthand_property_identifier_pattern "pipe"
} "}"
= "="
call_expression
identifier "renderToPipeableStream"
arguments
( "("
jsx_self_closing_element
< "<"
identifier "App"
/> "/>"
) ")"
; ";"
expression_statement
call_expression
identifier "pipe"
arguments
( "("
identifier "writable"
) ")"
; ";"
} "}"
) ")"
; ";"
comment "// Wait for promise to resolve"
expression_statement
await_expression
await "await"
call_expression
identifier "act"
arguments
( "("
arrow_function
async "async"
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
await_expression
await "await"
identifier "promise1"
; ";"
} "}"
) ")"
; ";"
expression_statement
await_expression
await "await"
call_expression
identifier "act"
arguments
( "("
arrow_function
async "async"
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
await_expression
await "await"
identifier "promiseLazy"
; ";"
} "}"
) ")"
; ";"
expression_statement
await_expression
await "await"
call_expression
identifier "act"
arguments
( "("
arrow_function
async "async"
formal_parameters
( "("
) ")"
=> "=>"
statement_block
{ "{"
expression_statement
await_expression
await "await"
identifier "promise2"
; ";"
} "}"
) ")"
; ";"
comment "// Verify both components received the correct values"
expression_statement
call_expression
member_expression
call_expression
identifier "expect"
arguments
( "("
call_expression
identifier "getVisibleChildren"
arguments
( "("
identifier "container"
) ")"
) ")"
. "."
property_identifier "toEqual"
arguments
( "("
jsx_element
jsx_opening_element
< "<"
identifier "div"
> ">"
jsx_text "\n value1\n "
jsx_element
jsx_opening_element
< "<"
identifier "div"
> ">"
jsx_text "value2"
jsx_closing_element
</ "</"
identifier "div"
> ">"
jsx_closing_element
</ "</"
identifier "div"
> ">"
, ","
) ")"
; ";"
} "}"
) ")"
; ";"
expression_statement (+354 nodes collapsed)
expression_statement (+476 nodes collapsed)
expression_statement (+906 nodes collapsed)
expression_statement (+215 nodes collapsed)
expression_statement (+246 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+353 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+351 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+414 nodes collapsed)
expression_statement (+356 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+376 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+979 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+1024 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+1049 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+880 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+622 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+668 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+509 nodes collapsed)
comment "// @gate enableHalt"
expression_statement (+690 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+690 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+535 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+693 nodes collapsed)
comment "// @gate enablePostpone"
expression_statement (+456 nodes collapsed)
expression_statement (+141 nodes collapsed)
expression_statement (+421 nodes collapsed)
expression_statement (+454 nodes collapsed)
expression_statement (+454 nodes collapsed)
expression_statement (+429 nodes collapsed)
expression_statement (+325 nodes collapsed)
expression_statement (+230 nodes collapsed)
expression_statement (+291 nodes collapsed)
comment "// @gate __DEV__"
expression_statement (+191 nodes collapsed)
comment "// @gate __DEV__"
expression_statement (+346 nodes collapsed)
expression_statement (+179 nodes collapsed)
expression_statement (+261 nodes collapsed)
expression_statement (+558 nodes collapsed)
expression_statement (+622 nodes collapsed)
expression_statement (+558 nodes collapsed)
expression_statement (+689 nodes collapsed)
expression_statement (+866 nodes collapsed)
expression_statement (+905 nodes collapsed)
expression_statement (+671 nodes collapsed)
expression_statement (+1018 nodes collapsed)
expression_statement (+551 nodes collapsed)
expression_statement (+728 nodes collapsed)
expression_statement (+773 nodes collapsed)
expression_statement (+773 nodes collapsed)
expression_statement (+507 nodes collapsed)
expression_statement (+1165 nodes collapsed)
expression_statement (+840 nodes collapsed)
expression_statement (+592 nodes collapsed)
expression_statement (+291 nodes collapsed)
expression_statement (+286 nodes collapsed)
expression_statement (+209 nodes collapsed)
expression_statement (+226 nodes collapsed)
expression_statement (+325 nodes collapsed)
expression_statement (+441 nodes collapsed)
expression_statement (+395 nodes collapsed)
} "}"
) ")"
; ";"