mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Cleanup previous dep collection
This commit is contained in:
@@ -28,7 +28,6 @@ const {
|
||||
eliminateRedundantPhi,
|
||||
inferReferenceEffects,
|
||||
inferMutableRanges,
|
||||
inferReactiveScopeDependencies,
|
||||
inferReactiveScopeVariables,
|
||||
inferReactiveScopes,
|
||||
leaveSSA,
|
||||
@@ -55,7 +54,6 @@ type CompilerOutput = {
|
||||
inferMutableRangesOutput: string;
|
||||
inferReactiveScopeVariablesOutput: string;
|
||||
inferReactiveScopesOutput: string;
|
||||
inferReactiveScopeDependenciesOutput: string;
|
||||
reactiveFunctionOutput: string;
|
||||
leaveSSAOutput: string;
|
||||
codegenOutput: string;
|
||||
@@ -99,9 +97,6 @@ function compile(source: string): CompilerOutput | CompilerError {
|
||||
inferReactiveScopes(ir);
|
||||
const inferReactiveScopesOutput = printHIR(ir.body);
|
||||
|
||||
inferReactiveScopeDependencies(ir);
|
||||
const inferReactiveScopeDependenciesOutput = printHIR(ir.body);
|
||||
|
||||
const reactiveFunction = buildReactiveFunction(ir);
|
||||
const reactiveFunctionOutput = printReactiveFunction(reactiveFunction);
|
||||
|
||||
@@ -131,7 +126,6 @@ function compile(source: string): CompilerOutput | CompilerError {
|
||||
eliminateRedundantPhiOutput,
|
||||
inferReferenceEffectsOutput,
|
||||
inferMutableRangesOutput,
|
||||
inferReactiveScopeDependenciesOutput,
|
||||
inferReactiveScopeVariablesOutput,
|
||||
inferReactiveScopesOutput,
|
||||
reactiveFunctionOutput,
|
||||
@@ -205,11 +199,6 @@ function Output({ store, setTabsOpen, tabsOpen }: Props) {
|
||||
output={compilerOutput.inferReactiveScopesOutput}
|
||||
></TextTabContent>
|
||||
),
|
||||
InferReactiveScopeDependencies: (
|
||||
<TextTabContent
|
||||
output={compilerOutput.inferReactiveScopeDependenciesOutput}
|
||||
></TextTabContent>
|
||||
),
|
||||
ReactiveFunctions: (
|
||||
<TextTabContent
|
||||
output={compilerOutput.reactiveFunctionOutput}
|
||||
|
||||
@@ -15,7 +15,6 @@ export type TabTypes =
|
||||
| "InferMutableRanges"
|
||||
| "InferReactiveScopeVariables"
|
||||
| "InferReactiveScopes"
|
||||
| "InferReactiveScopeDependencies"
|
||||
| "ReactiveFunctions"
|
||||
| "LeaveSSA"
|
||||
| "JS"
|
||||
|
||||
@@ -1,248 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import { assertExhaustive, retainWhere } from "../Common/utils";
|
||||
import {
|
||||
BlockId,
|
||||
HIRFunction,
|
||||
Identifier,
|
||||
Instruction,
|
||||
InstructionId,
|
||||
InstructionValue,
|
||||
makeInstructionId,
|
||||
Place,
|
||||
ReactiveScope,
|
||||
} from "./HIR";
|
||||
import { BlockTerminal, Visitor, visitTree } from "./HIRTreeVisitor";
|
||||
import { eachInstructionValueOperand } from "./visitors";
|
||||
|
||||
export function inferReactiveScopeDependencies(fn: HIRFunction) {
|
||||
// TODO: visitTree is more of a transformer visitor, consider adding a new tree visitor
|
||||
// that only visits and replacing this usage
|
||||
const visitor = new ScopeDependenciesVisitor(fn);
|
||||
visitTree(fn, visitor);
|
||||
}
|
||||
|
||||
export function instructionInScope(
|
||||
instrId: InstructionId,
|
||||
scope: ReactiveScope
|
||||
) {
|
||||
return instrId >= scope.range.start && instrId < scope.range.end;
|
||||
}
|
||||
|
||||
class ScopeDependenciesVisitor
|
||||
implements Visitor<void, void, void, void, InstructionValue, void, void>
|
||||
{
|
||||
#kinds: Map<Identifier, DeclKind> = new Map();
|
||||
#identifiers: Map<Identifier, InstructionId> = new Map();
|
||||
// Scopes that are currently active at this point in the traversal
|
||||
#activeScopes: Set<ReactiveScope> = new Set();
|
||||
|
||||
get #lastActiveScope(): ReactiveScope | null {
|
||||
const scopes = [...this.#activeScopes];
|
||||
return scopes[scopes.length - 1];
|
||||
}
|
||||
|
||||
constructor(fn: HIRFunction) {
|
||||
if (fn.id !== null) {
|
||||
this.#identifiers.set(fn.id, makeInstructionId(0));
|
||||
this.#kinds.set(fn.id, DeclKind.Const);
|
||||
}
|
||||
for (const param of fn.params) {
|
||||
this.#identifiers.set(param.identifier, makeInstructionId(0));
|
||||
this.#kinds.set(param.identifier, DeclKind.Dynamic);
|
||||
}
|
||||
}
|
||||
|
||||
#recordActiveScope(scope: ReactiveScope) {
|
||||
this.#activeScopes.add(scope);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prune any scopes that are out of range
|
||||
*/
|
||||
#visitId(id: InstructionId): void {
|
||||
const scopes = [...this.#activeScopes];
|
||||
retainWhere(scopes, (pending) => pending.range.end > id);
|
||||
this.#activeScopes = new Set(scopes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a dependency on the terminal operand to the last active scope
|
||||
*/
|
||||
#addTerminalDependency(operand: Place): void {
|
||||
const activeScope = this.#lastActiveScope;
|
||||
if (activeScope != null) {
|
||||
const identId = this.#identifiers.get(operand.identifier);
|
||||
if (identId !== undefined && identId < activeScope.range.start) {
|
||||
activeScope.dependencies.add(operand);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
visitTerminal(
|
||||
terminal: BlockTerminal<void, InstructionValue, void, void>
|
||||
): void {
|
||||
switch (terminal.kind) {
|
||||
case "if":
|
||||
case "switch":
|
||||
case "for":
|
||||
case "while": {
|
||||
if (typeof terminal?.test?.kind !== "string") {
|
||||
console.log(terminal);
|
||||
}
|
||||
for (const operand of eachInstructionValueOperand(terminal.test)) {
|
||||
this.#addTerminalDependency(operand);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "return":
|
||||
case "throw": {
|
||||
if (terminal.value != null) {
|
||||
for (const operand of eachInstructionValueOperand(terminal.value)) {
|
||||
this.#addTerminalDependency(operand);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "continue":
|
||||
case "break": {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
assertExhaustive(terminal, `unhandled terminal ${terminal}`);
|
||||
}
|
||||
}
|
||||
|
||||
visitTerminalId(id: InstructionId): void {
|
||||
this.#visitId(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* We don't need to map to a different representation, so just return the value directly
|
||||
*/
|
||||
visitValue(value: InstructionValue, id: InstructionId): InstructionValue {
|
||||
return value;
|
||||
}
|
||||
|
||||
visitInstruction(instr: Instruction, _value: InstructionValue): void {
|
||||
this.#visitId(instr.id);
|
||||
const { lvalue, value } = instr;
|
||||
if (lvalue !== null && lvalue.place.memberPath === null) {
|
||||
if (!this.#identifiers.has(lvalue.place.identifier)) {
|
||||
this.#identifiers.set(lvalue.place.identifier, instr.id);
|
||||
}
|
||||
}
|
||||
|
||||
const activeScopes: Set<ReactiveScope> = new Set();
|
||||
const dependencies: Array<Place> = [];
|
||||
if (lvalue != null) {
|
||||
if (
|
||||
lvalue.place.identifier.scope !== null &&
|
||||
lvalue.place.memberPath === null &&
|
||||
instructionInScope(instr.id, lvalue.place.identifier.scope)
|
||||
) {
|
||||
activeScopes.add(lvalue.place.identifier.scope);
|
||||
} else {
|
||||
dependencies.push(lvalue.place);
|
||||
}
|
||||
}
|
||||
for (const operand of eachInstructionValueOperand(value)) {
|
||||
if (
|
||||
operand.identifier.scope !== null &&
|
||||
instructionInScope(instr.id, operand.identifier.scope)
|
||||
) {
|
||||
activeScopes.add(operand.identifier.scope);
|
||||
} else {
|
||||
dependencies.push(operand);
|
||||
}
|
||||
}
|
||||
|
||||
for (const scope of activeScopes) {
|
||||
this.#recordActiveScope(scope);
|
||||
}
|
||||
|
||||
if (dependencies.length > 0) {
|
||||
const scope = this.#lastActiveScope;
|
||||
if (scope != null) {
|
||||
for (const dep of dependencies) {
|
||||
const identId = this.#identifiers.get(dep.identifier);
|
||||
if (identId !== undefined && identId < scope.range.start) {
|
||||
scope.dependencies.add(dep);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enterBlock(): void {}
|
||||
enterValueBlock(): void {}
|
||||
enterInitBlock(block: void): void {}
|
||||
visitImplicitTerminal(): void | null {}
|
||||
visitCase(test: InstructionValue, block: void): void {}
|
||||
appendBlock(block: void, item: void, label?: BlockId | undefined): void {}
|
||||
appendValueBlock(block: void, item: void): void {}
|
||||
appendInitBlock(block: void, item: void): void {}
|
||||
leaveBlock(block: void): void {}
|
||||
leaveValueBlock(block: void, value: InstructionValue): InstructionValue {
|
||||
return value;
|
||||
}
|
||||
leaveInitBlock(block: void): void {}
|
||||
}
|
||||
|
||||
enum DeclKind {
|
||||
Const = "Const",
|
||||
Dynamic = "Dynamic",
|
||||
}
|
||||
|
||||
function visitOperand(
|
||||
operand: Place,
|
||||
dependencies: Set<Place>,
|
||||
declarations: Map<Identifier, DeclKind>
|
||||
): void {
|
||||
const kind = declarations.get(operand.identifier);
|
||||
if (kind === undefined) {
|
||||
// TODO: global, ignore
|
||||
return;
|
||||
} else if (kind === DeclKind.Const) {
|
||||
// constant, dont need to add a dep
|
||||
return;
|
||||
} else {
|
||||
for (const dep of dependencies) {
|
||||
// not the same identifier
|
||||
if (dep.identifier !== operand.identifier) {
|
||||
continue;
|
||||
}
|
||||
const depPath = dep.memberPath;
|
||||
// existing dep covers all paths
|
||||
if (depPath === null) {
|
||||
return;
|
||||
}
|
||||
const operandPath = operand.memberPath;
|
||||
// existing dep is for a path, this operand covers all paths so swap them
|
||||
if (operandPath === null) {
|
||||
dependencies.delete(dep);
|
||||
dependencies.add(operand);
|
||||
return;
|
||||
}
|
||||
// both the operand and dep have paths, determine if the existing path
|
||||
// is a subset of the new path
|
||||
let commonPathIndex = 0;
|
||||
while (
|
||||
commonPathIndex < operandPath.length &&
|
||||
commonPathIndex < depPath.length &&
|
||||
operandPath[commonPathIndex] === depPath[commonPathIndex]
|
||||
) {
|
||||
commonPathIndex++;
|
||||
}
|
||||
if (commonPathIndex === depPath.length) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
dependencies.add(operand);
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,6 @@ import { leaveSSA } from "../HIR/LeaveSSA";
|
||||
import codegen from "./Codegen";
|
||||
import { HIRFunction } from "./HIR";
|
||||
import { inferMutableRanges } from "./InferMutableRanges";
|
||||
import { inferReactiveScopeDependencies } from "./InferReactiveScopeDependencies";
|
||||
import { inferReactiveScopes } from "./InferReactiveScopes";
|
||||
import { inferReactiveScopeVariables } from "./InferReactiveScopeVariables";
|
||||
import { inferTypes } from "./InferTypes";
|
||||
@@ -83,11 +82,6 @@ export default function (
|
||||
logHIRFunction("inferReactiveScopes", ir);
|
||||
}
|
||||
|
||||
if (flags.inferReactiveScopeDependencies) {
|
||||
inferReactiveScopeDependencies(ir);
|
||||
logHIRFunction("inferReactiveScopeDependencies", ir);
|
||||
}
|
||||
|
||||
if (flags.codegen) {
|
||||
return {
|
||||
ast: codegen(ir),
|
||||
|
||||
@@ -25,7 +25,6 @@ import {
|
||||
Terminal,
|
||||
Type,
|
||||
} from "./HIR";
|
||||
import { eachReactiveScope } from "./visitors";
|
||||
|
||||
export type Options = {
|
||||
indent: number;
|
||||
@@ -34,7 +33,6 @@ export type Options = {
|
||||
export function printFunction(fn: HIRFunction): string {
|
||||
const output = [];
|
||||
output.push(printHIR(fn.body));
|
||||
output.push(printReactiveScopes(fn.body));
|
||||
return output.join("\n");
|
||||
}
|
||||
|
||||
@@ -358,25 +356,3 @@ export function printAliases(aliases: DisjointSet<Identifier>): string {
|
||||
|
||||
return items.join("\n");
|
||||
}
|
||||
|
||||
export function printReactiveScopes(ir: HIR) {
|
||||
const output = [];
|
||||
for (const scope of eachReactiveScope(ir)) {
|
||||
let shouldOutput = false;
|
||||
const line = [
|
||||
`scope${scope.id} [${scope.range.start}:${scope.range.end}]:`,
|
||||
];
|
||||
if (scope.dependencies.size > 0) {
|
||||
shouldOutput = true;
|
||||
line.push(
|
||||
`${Array.from(scope.dependencies)
|
||||
.map((p) => " - dependency: " + printPlace(p))
|
||||
.join("\n")}`
|
||||
);
|
||||
}
|
||||
if (shouldOutput) {
|
||||
output.push(line.join("\n"));
|
||||
}
|
||||
}
|
||||
return output.join("\n");
|
||||
}
|
||||
|
||||
@@ -35,10 +35,6 @@ bb1:
|
||||
predecessor blocks: bb0 bb2
|
||||
[6] Call mutate a$4_@0.push(read props$3.d)
|
||||
[7] Return freeze a$4_@0:TFunction
|
||||
scope0 [1:7]:
|
||||
- dependency: read props$3.a
|
||||
- dependency: read props$3.d
|
||||
- dependency: read props$3.c
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -20,7 +20,6 @@ bb0:
|
||||
[3] Const mutate $6:TPrimitive = Binary read x$5:TPrimitive + read x$5:TPrimitive
|
||||
[4] Const mutate $7:TPrimitive = Binary read $6:TPrimitive + read x$5:TPrimitive
|
||||
[5] Return read $7:TPrimitive
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -24,7 +24,6 @@ bb0:
|
||||
[5] Reassign mutate x$7_@0.y[1:7] = read y$6_@0:TObject
|
||||
[6] Call mutate mutate$4:TFunction(mutate x$7_@0.y.z)
|
||||
[7] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -23,10 +23,6 @@ bb0:
|
||||
[4] Const mutate x$6_@2:TObject[4:6] = Object { }
|
||||
[5] Reassign mutate x$6_@2.y[4:6] = read y$5_@1:TObject
|
||||
[6] Return freeze x$6_@2:TObject
|
||||
scope1 [2:4]:
|
||||
- dependency: read z$4_@0
|
||||
scope2 [4:6]:
|
||||
- dependency: read y$5_@1:TObject
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -48,8 +48,6 @@ bb2:
|
||||
[13] read b$9_@0:TObject
|
||||
[14] read c$10_@0:TObject
|
||||
[15] Return freeze a$8_@0:TObject
|
||||
scope0 [1:12]:
|
||||
- dependency: read cond$7
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -107,7 +105,6 @@ function foo$0(cond$7) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -28,7 +28,6 @@ bb0:
|
||||
[6] Const mutate $10:TPrimitive = 1
|
||||
[7] Const mutate x$11:TPrimitive = Binary read x$9:TPrimitive >>> read $10:TPrimitive
|
||||
[8] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -68,7 +67,6 @@ bb0:
|
||||
[3] Const mutate $6:TPrimitive = 2
|
||||
[4] Reassign mutate a$4_@0.b.c[0:5] = Binary read a$4_@0.b.c * read $6:TPrimitive
|
||||
[5] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -20,7 +20,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -52,12 +51,6 @@ bb0:
|
||||
[7] Const mutate $14:TPrimitive = "div"
|
||||
[8] Const mutate $15_@2 = JSX <read $14:TPrimitive a={read a$10_@0:TObject} b={freeze b$11_@0:TObject} ></read $14:TPrimitive>
|
||||
[9] Return read $15_@2
|
||||
scope1 [5:6]:
|
||||
- dependency: read $12:TPrimitive
|
||||
scope2 [8:9]:
|
||||
- dependency: read $14:TPrimitive
|
||||
- dependency: read a$10_@0:TObject
|
||||
- dependency: freeze b$11_@0:TObject
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -34,7 +34,6 @@ bb7:
|
||||
bb1:
|
||||
predecessor blocks: bb6 bb4 bb0
|
||||
[6] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -100,22 +100,6 @@ bb2:
|
||||
[40] Const mutate $73 = "\n "
|
||||
[41] Const mutate $74_@5 = JSX <read $67:TPrimitive>{read $68}{read $71_@4}{read $72}{freeze renderedItems$32_@0:TFunction}{read $73}</read $67:TPrimitive>
|
||||
[42] Return read $74_@5
|
||||
scope2 [6:7]:
|
||||
- dependency: read $34:TPrimitive
|
||||
- dependency: read maxItems$31:TProp
|
||||
scope3 [24:25]:
|
||||
- dependency: read $49:TPrimitive
|
||||
scope4 [38:39]:
|
||||
- dependency: read $69:TPrimitive
|
||||
- dependency: freeze count$66:TProp
|
||||
- dependency: read $70
|
||||
scope5 [41:42]:
|
||||
- dependency: read $67:TPrimitive
|
||||
- dependency: read $68
|
||||
- dependency: read $71_@4
|
||||
- dependency: read $72
|
||||
- dependency: freeze renderedItems$32_@0:TFunction
|
||||
- dependency: read $73
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -89,10 +89,6 @@ bb1:
|
||||
predecessor blocks: bb0
|
||||
[6] Call mutate a_DEBUG$5_@0.push(read props$4.d)
|
||||
[7] Return freeze a_DEBUG$5_@0:TFunction
|
||||
scope0 [1:7]:
|
||||
- dependency: read props$4.a
|
||||
- dependency: read props$4.b
|
||||
- dependency: read props$4.d
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -145,11 +141,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[6] Call mutate a$4_@0.push(read props$3.d)
|
||||
[7] Return freeze a$4_@0:TFunction
|
||||
scope0 [1:7]:
|
||||
- dependency: read props$3.a
|
||||
- dependency: read props$3.c
|
||||
- dependency: read props$3.b
|
||||
- dependency: read props$3.d
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -202,11 +193,6 @@ bb1:
|
||||
predecessor blocks: bb0
|
||||
[7] Call mutate a$5_@0.push(read props$4.d)
|
||||
[8] Return freeze a$5_@0:TFunction
|
||||
scope0 [1:8]:
|
||||
- dependency: read props$4.a
|
||||
- dependency: read props$4.c
|
||||
- dependency: read props$4.b
|
||||
- dependency: read props$4.d
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -261,11 +247,6 @@ bb1:
|
||||
predecessor blocks: bb0
|
||||
[6] Call mutate a$4_@0.push(read props$3.d)
|
||||
[7] Return freeze a$4_@0:TFunction
|
||||
scope0 [1:7]:
|
||||
- dependency: read props$3.a
|
||||
- dependency: read props$3.c
|
||||
- dependency: read props$3.b
|
||||
- dependency: read props$3.d
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -319,10 +300,6 @@ bb1:
|
||||
predecessor blocks: bb0 bb2
|
||||
[6] Call mutate a$4_@0.push(read props$3.d)
|
||||
[7] Return freeze a$4_@0:TFunction
|
||||
scope0 [1:7]:
|
||||
- dependency: read props$3.a
|
||||
- dependency: read props$3.d
|
||||
- dependency: read props$3.c
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -53,9 +53,6 @@ bb3:
|
||||
predecessor blocks: bb4 bb1
|
||||
[9] Const mutate $16_@2 = JSX <read Foo$4 a={freeze a$7_@0:TFunction} b={freeze b$8_@0:TFunction} ></read Foo$4>
|
||||
[10] Return read $16_@2
|
||||
scope2 [9:10]:
|
||||
- dependency: freeze a$7_@0:TFunction
|
||||
- dependency: freeze b$8_@0:TFunction
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -123,9 +120,6 @@ bb3:
|
||||
predecessor blocks: bb4 bb1
|
||||
[10] Const mutate $19_@2 = JSX <read Foo$6 a={freeze a$9_@0:TFunction} b={freeze b$10_@0:TFunction} ></read Foo$6>
|
||||
[11] Return read $19_@2
|
||||
scope2 [10:11]:
|
||||
- dependency: freeze a$9_@0:TFunction
|
||||
- dependency: freeze b$10_@0:TFunction
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -176,7 +170,6 @@ function Component$0(props$8) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -200,7 +193,6 @@ function Foo$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -20,7 +20,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -52,12 +51,6 @@ bb0:
|
||||
[7] Const mutate $14:TPrimitive = "div"
|
||||
[8] Const mutate $15_@2 = JSX <read $14:TPrimitive a={read a$10_@0} b={freeze b$11_@0:TObject} ></read $14:TPrimitive>
|
||||
[9] Return read $15_@2
|
||||
scope1 [5:6]:
|
||||
- dependency: read $12:TPrimitive
|
||||
scope2 [8:9]:
|
||||
- dependency: read $14:TPrimitive
|
||||
- dependency: read a$10_@0
|
||||
- dependency: freeze b$11_@0:TObject
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -42,13 +42,6 @@ bb4:
|
||||
bb3:
|
||||
predecessor blocks: bb4 bb1
|
||||
[12] Return
|
||||
scope0 [1:3]:
|
||||
- dependency: read a$6
|
||||
scope1 [5:12]:
|
||||
- dependency: read x$8_@0:TFunction
|
||||
- dependency: read x$8_@0.length
|
||||
- dependency: read b$7:TFunction
|
||||
- dependency: read b$7:TFunction
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -42,14 +42,6 @@ bb4:
|
||||
bb3:
|
||||
predecessor blocks: bb4 bb1
|
||||
[10] Return freeze items2$10_@1:TFunction
|
||||
scope0 [1:10]:
|
||||
- dependency: read z$8
|
||||
- dependency: read x$6
|
||||
- dependency: read x$6
|
||||
- dependency: read y$7
|
||||
scope1 [3:7]:
|
||||
- dependency: read y$7
|
||||
- dependency: read x$6
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -46,10 +46,6 @@ bb7:
|
||||
predecessor blocks: bb1
|
||||
[10] Const mutate $13:TPrimitive = null
|
||||
[11] Return read $13:TPrimitive
|
||||
scope0 [1:8]:
|
||||
- dependency: read c$9
|
||||
- dependency: read b$8
|
||||
- dependency: read a$7
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -23,7 +23,6 @@ bb0:
|
||||
[3] Call read useFreeze$3:TFunction(freeze a$5_@0)
|
||||
[4] Call mutate foo$4:TFunction(read b$6)
|
||||
[5] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -58,7 +57,6 @@ function Component$0() {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -82,7 +80,6 @@ function useFreeze$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -24,7 +24,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -48,7 +47,6 @@ function useFreeze$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -79,15 +77,6 @@ bb0:
|
||||
[6] Const mutate $15 = "\n "
|
||||
[7] Const mutate $16_@2 = JSX <read Component$0>{read $13}{read x$11_@0}{read $14}{read y$12_@1}{read $15}</read Component$0>
|
||||
[8] Return read $16_@2
|
||||
scope1 [2:3]:
|
||||
- dependency: freeze x$11_@0
|
||||
scope2 [7:8]:
|
||||
- dependency: read Component$0
|
||||
- dependency: read $13
|
||||
- dependency: read x$11_@0
|
||||
- dependency: read $14
|
||||
- dependency: read y$12_@1
|
||||
- dependency: read $15
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -24,7 +24,6 @@ bb0:
|
||||
[3] Call read useFreeze$2:TFunction(read a$4_@0)
|
||||
[4] Call mutate call$3:TFunction(read a$4_@0)
|
||||
[5] Return read a$4_@0
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -60,7 +59,6 @@ function Component$0() {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -85,7 +83,6 @@ function useFreeze$0(x$2) {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
-5
@@ -45,9 +45,6 @@ bb1:
|
||||
[10] Call read useFreeze$5:TFunction(read a$11_@0:TProp)
|
||||
[11] Call mutate call$6:TFunction(read a$11_@0:TProp)
|
||||
[12] Return read a$11_@0:TProp
|
||||
scope0 [4:9]:
|
||||
- dependency: read x$9:TProp
|
||||
- dependency: read cond$8:TProp
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -101,7 +98,6 @@ function Component$0(props$7) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -126,7 +122,6 @@ function useFreeze$0(x$2) {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -38,7 +38,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -62,7 +61,6 @@ function compute$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -86,7 +84,6 @@ function mutate$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -110,7 +107,6 @@ function foo$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -145,11 +141,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[7] Const mutate $14_@2 = JSX <read Foo$6 a={freeze a$9_@1} b={freeze b$10_@1} ></read Foo$6>
|
||||
[8] Return read $14_@2
|
||||
scope1 [1:7]:
|
||||
- dependency: read props$8.a
|
||||
scope2 [7:8]:
|
||||
- dependency: freeze a$9_@1
|
||||
- dependency: freeze b$10_@1
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -32,13 +32,6 @@ bb0:
|
||||
[2] Const mutate b$9_@1 = Call mutate compute$3:TFunction(read props$7.b)
|
||||
[3] Const mutate $10_@2 = JSX <read Foo$5 a={freeze a$8_@0} b={freeze b$9_@1} ></read Foo$5>
|
||||
[4] Return read $10_@2
|
||||
scope0 [1:2]:
|
||||
- dependency: read props$7.a
|
||||
scope1 [2:3]:
|
||||
- dependency: read props$7.b
|
||||
scope2 [3:4]:
|
||||
- dependency: freeze a$8_@0
|
||||
- dependency: freeze b$9_@1
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -76,7 +69,6 @@ function Component$0(props$7) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -100,7 +92,6 @@ function compute$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -124,7 +115,6 @@ function foo$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -32,7 +32,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -56,7 +55,6 @@ function compute$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -80,7 +78,6 @@ function foo$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -114,13 +111,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[6] Const mutate $14_@1 = JSX <read Foo$6 a={freeze a$9_@0} b={freeze b$10_@0} ></read Foo$6>
|
||||
[7] Return read $14_@1
|
||||
scope0 [1:6]:
|
||||
- dependency: read props$8.a
|
||||
- dependency: read props$8.b
|
||||
- dependency: read props$8.c
|
||||
scope1 [6:7]:
|
||||
- dependency: freeze a$9_@0
|
||||
- dependency: freeze b$10_@0
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -33,12 +33,6 @@ bb0:
|
||||
[3] Call mutate foo$5:TFunction(mutate a$9_@0, mutate b$10_@0)
|
||||
[4] Const mutate $11_@1 = JSX <read Foo$6 a={freeze a$9_@0} b={freeze b$10_@0} ></read Foo$6>
|
||||
[5] Return read $11_@1
|
||||
scope0 [1:4]:
|
||||
- dependency: read props$8.a
|
||||
- dependency: read props$8.b
|
||||
scope1 [4:5]:
|
||||
- dependency: freeze a$9_@0
|
||||
- dependency: freeze b$10_@0
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -76,7 +70,6 @@ function Component$0(props$8) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -100,7 +93,6 @@ function compute$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -124,7 +116,6 @@ function foo$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -30,10 +30,6 @@ bb5:
|
||||
bb1:
|
||||
predecessor blocks: bb5 bb3 bb0
|
||||
[6] Return
|
||||
scope0 [1:6]:
|
||||
- dependency: read c$7
|
||||
- dependency: read b$6
|
||||
- dependency: read a$5
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -20,8 +20,6 @@ bb0:
|
||||
[3] Const mutate a$8:TObject = read x$7_@0:TObject
|
||||
[4] Const mutate b$9:TObject = read a$8:TObject
|
||||
[5] Return
|
||||
scope0 [1:3]:
|
||||
- dependency: read c$6
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -31,20 +31,6 @@ bb0:
|
||||
[10] Const mutate $23 = "\n "
|
||||
[11] Const mutate $24_@2 = JsxFragment [read $14, read props$13.greeting, read $15:TPrimitive, read $16, read $22_@1, read $23]
|
||||
[12] Return read $24_@2
|
||||
scope0 [7:8]:
|
||||
- dependency: read $19
|
||||
scope1 [9:10]:
|
||||
- dependency: read $17:TPrimitive
|
||||
- dependency: read $18
|
||||
- dependency: read $20_@0
|
||||
- dependency: read $21
|
||||
scope2 [11:12]:
|
||||
- dependency: read $14
|
||||
- dependency: read props$13.greeting
|
||||
- dependency: read $15:TPrimitive
|
||||
- dependency: read $16
|
||||
- dependency: read $22_@1
|
||||
- dependency: read $23
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -37,9 +37,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[7] Return freeze $6_@1
|
||||
scope1 [2:7]:
|
||||
- dependency: read $5_@0
|
||||
- dependency: read $5_@0
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -92,9 +89,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[7] Return freeze $6_@1
|
||||
scope1 [2:7]:
|
||||
- dependency: read $5_@0
|
||||
- dependency: read $5_@0
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -149,9 +143,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[9] Return freeze $12_@1:TPrimitive
|
||||
scope1 [4:9]:
|
||||
- dependency: read $9_@0:TPrimitive
|
||||
- dependency: read $11:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -194,7 +185,6 @@ function QuestionQuestion$0(props$8) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -218,7 +208,6 @@ function f$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -44,7 +44,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -70,7 +69,6 @@ function mutate$0(x$3, y$4) {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -133,7 +131,6 @@ bb13:
|
||||
[21] Const mutate $34:TPrimitive = null
|
||||
[22] Call mutate mutate$7:TFunction(mutate d$24_@0, read $34:TPrimitive)
|
||||
[23] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -40,7 +40,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -90,9 +89,6 @@ bb9:
|
||||
[13] Const mutate $17:TPrimitive = null
|
||||
[14] Call mutate mutate$8:TFunction(mutate x$15_@1:TObject, read $17:TPrimitive)
|
||||
[15] Return
|
||||
scope1 [2:15]:
|
||||
- dependency: read a$11_@0:TObject
|
||||
- dependency: read a$11_@0:TObject
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -39,7 +39,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -63,7 +62,6 @@ function mutate$0() {}
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -120,7 +118,6 @@ bb13:
|
||||
[16] Const mutate $28:TPrimitive = null
|
||||
[17] Call mutate mutate$6:TFunction(mutate d$15_@0:TObject, read $28:TPrimitive)
|
||||
[18] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
-1
@@ -27,7 +27,6 @@ bb1:
|
||||
[4] Call mutate y$10_@0.push(read a$6)
|
||||
[5] Call mutate x$9_@0.push(read b$7)
|
||||
[6] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -20,7 +20,6 @@ bb0:
|
||||
[3] Call mutate x$7_@0.push(read a$5)
|
||||
[4] Call mutate y$8_@0.push(read b$6)
|
||||
[5] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -20,10 +20,6 @@ bb0:
|
||||
[3] Call mutate y$8_@1.push(read b$6)
|
||||
[4] Call mutate x$7_@0.push(read a$5)
|
||||
[5] Return
|
||||
scope0 [1:5]:
|
||||
- dependency: read a$5
|
||||
scope1 [2:4]:
|
||||
- dependency: read b$6
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
-8
@@ -40,14 +40,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb3 bb0
|
||||
[11] Return freeze x$11_@0:TFunction
|
||||
scope0 [1:11]:
|
||||
- dependency: read a$8
|
||||
scope1 [3:7]:
|
||||
- dependency: read c$10
|
||||
- dependency: read b$9
|
||||
scope2 [8:9]:
|
||||
- dependency: read $13:TPrimitive
|
||||
- dependency: freeze y$12_@1:TFunction
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -31,7 +31,6 @@ bb3:
|
||||
bb2:
|
||||
predecessor blocks: bb1
|
||||
[8] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -38,10 +38,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb3 bb0
|
||||
[9] Return freeze x$9_@0:TFunction
|
||||
scope0 [1:9]:
|
||||
- dependency: read c$8
|
||||
- dependency: read b$7
|
||||
- dependency: read a$6
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -24,13 +24,6 @@ bb0:
|
||||
[5] Call mutate x$7_@0.y.push(read props$6.p0)
|
||||
[6] Const mutate $10_@1 = JSX <read Component$0 data={freeze x$7_@0:TObject} >{read child$9_@0}</read Component$0>
|
||||
[7] Return read $10_@1
|
||||
scope0 [1:6]:
|
||||
- dependency: read Component$0
|
||||
- dependency: read props$6.p0
|
||||
scope1 [6:7]:
|
||||
- dependency: read Component$0
|
||||
- dependency: freeze x$7_@0:TObject
|
||||
- dependency: read child$9_@0
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -24,7 +24,6 @@ bb0:
|
||||
[4] Call mutate y$5_@1.push(mutate z$6_@1:TObject)
|
||||
[5] Reassign mutate x$4_@0.y[1:6] = read y$5_@1:TFunction
|
||||
[6] Return freeze x$4_@0:TObject
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -37,14 +37,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[11] Return freeze x$11_@0:TFunction
|
||||
scope0 [1:11]:
|
||||
- dependency: read c$10
|
||||
- dependency: read a$8
|
||||
scope1 [3:5]:
|
||||
- dependency: read b$9
|
||||
scope2 [6:7]:
|
||||
- dependency: read $13:TPrimitive
|
||||
- dependency: freeze y$12_@1:TFunction
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -35,13 +35,6 @@ bb1:
|
||||
[8] Const mutate $13:TPrimitive = "div"
|
||||
[9] Const mutate $15_@1 = JSX <read $13:TPrimitive>{freeze x$10_@0:TFunction}</read $13:TPrimitive>
|
||||
[10] Return read $15_@1
|
||||
scope0 [1:8]:
|
||||
- dependency: read a$8.length
|
||||
- dependency: read b$9
|
||||
- dependency: read b$9
|
||||
scope1 [9:10]:
|
||||
- dependency: read $13:TPrimitive
|
||||
- dependency: freeze x$10_@0:TFunction
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -37,16 +37,6 @@ bb1:
|
||||
[8] Call read y$8.push(read props$6.p2)
|
||||
[9] Const mutate $15_@2 = JSX <read Component$0 x={read x$7_@0:TFunction} y={read y$8:TFunction} ></read Component$0>
|
||||
[10] Return read $15_@2
|
||||
scope0 [1:7]:
|
||||
- dependency: read props$6.p0
|
||||
- dependency: read props$6.p1
|
||||
scope1 [7:8]:
|
||||
- dependency: read Component$0
|
||||
- dependency: freeze x$7_@0:TFunction
|
||||
scope2 [9:10]:
|
||||
- dependency: read Component$0
|
||||
- dependency: read x$7_@0:TFunction
|
||||
- dependency: read y$8:TFunction
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -68,23 +68,6 @@ bb3:
|
||||
[18] Const mutate $28 = "\n "
|
||||
[19] Const mutate $31_@3 = JSX <read $25:TPrimitive>{read $26}{read y$19_@1}{read $27}{freeze x$22_@2:TFunction}{read $28}</read $25:TPrimitive>
|
||||
[20] Return read $31_@3
|
||||
scope0 [1:5]:
|
||||
- dependency: read a$13
|
||||
- dependency: read a$13
|
||||
scope1 [6:7]:
|
||||
- dependency: read $17:TPrimitive
|
||||
- dependency: freeze x$16_@0:TFunction
|
||||
scope2 [8:15]:
|
||||
- dependency: read c$15
|
||||
- dependency: read b$14
|
||||
- dependency: read b$14
|
||||
scope3 [19:20]:
|
||||
- dependency: read $25:TPrimitive
|
||||
- dependency: read $26
|
||||
- dependency: read y$19_@1
|
||||
- dependency: read $27
|
||||
- dependency: freeze x$22_@2:TFunction
|
||||
- dependency: read $28
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -29,16 +29,6 @@ bb0:
|
||||
[6] Call mutate y$8_@0.push(read props$6.p1)
|
||||
[7] Const mutate $11_@3 = JSX <read Component$0 x={read x$9_@1} y={freeze y$8_@0:TFunction} ></read Component$0>
|
||||
[8] Return read $11_@3
|
||||
scope0 [1:7]:
|
||||
- dependency: read props$6.p0
|
||||
- dependency: read props$6.p1
|
||||
scope2 [5:6]:
|
||||
- dependency: read Component$0
|
||||
- dependency: freeze x$9_@1
|
||||
scope3 [7:8]:
|
||||
- dependency: read Component$0
|
||||
- dependency: read x$9_@1
|
||||
- dependency: freeze y$8_@0:TFunction
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -77,15 +77,6 @@ bb1:
|
||||
predecessor blocks: bb8 bb6 bb4 bb12 bb13
|
||||
[18] read x$11_@0:TProp
|
||||
[19] Return
|
||||
scope0 [2:18]:
|
||||
- dependency: read props$6.v2
|
||||
- dependency: read props$6.v1
|
||||
- dependency: read props$6.v0
|
||||
- dependency: read props$6.test
|
||||
- dependency: read props$6.b
|
||||
- dependency: read props$6.c
|
||||
- dependency: read props$6.cond2
|
||||
- dependency: read props$6.cond
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -21,7 +21,6 @@ function foo() {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -52,7 +51,6 @@ bb0:
|
||||
[6] Const mutate c$10_@1:TObject[2:8] = read a$8_@1:TObject
|
||||
[7] Call mutate mutate$4:TFunction(mutate a$8_@1:TObject, mutate b$9_@1:TObject)
|
||||
[8] Return freeze c$10_@1:TObject
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -27,12 +27,6 @@ bb1:
|
||||
[6] Const mutate $13:TPrimitive = Binary read y$9:TPrimitive * read $12:TPrimitive
|
||||
[7] Const mutate $14_@1 = Array [read $13:TPrimitive]
|
||||
[8] Return freeze $14_@1
|
||||
scope0 [3:4]:
|
||||
- dependency: read foo$0:TFunction
|
||||
- dependency: read $10:TPrimitive
|
||||
- dependency: read y$9:TPrimitive
|
||||
scope1 [7:8]:
|
||||
- dependency: read $13:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -19,9 +19,6 @@ bb0:
|
||||
[2] Const mutate b$7:TPrimitive = 2
|
||||
[3] Const mutate x$8_@0 = Array [read a$6:TPrimitive, read b$7:TPrimitive]
|
||||
[4] Return freeze x$8_@0
|
||||
scope0 [3:4]:
|
||||
- dependency: read a$6:TPrimitive
|
||||
- dependency: read b$7:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -23,7 +23,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -62,12 +61,6 @@ bb1:
|
||||
[10] Const mutate $19:TPrimitive = "div"
|
||||
[11] Const mutate $20_@3 = JSX <read $19:TPrimitive a={freeze a$11_@0} b={freeze b$12_@0:TObject} ></read $19:TPrimitive>
|
||||
[12] Return read $20_@3
|
||||
scope2 [7:8]:
|
||||
- dependency: read $14:TPrimitive
|
||||
scope3 [11:12]:
|
||||
- dependency: read $19:TPrimitive
|
||||
- dependency: freeze a$11_@0
|
||||
- dependency: freeze b$12_@0:TObject
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -20,7 +20,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -52,12 +51,6 @@ bb0:
|
||||
[7] Const mutate $14:TPrimitive = "div"
|
||||
[8] Const mutate $15_@2 = JSX <read $14:TPrimitive a={read a$10_@0} b={freeze b$11_@0:TObject} ></read $14:TPrimitive>
|
||||
[9] Return read $15_@2
|
||||
scope1 [5:6]:
|
||||
- dependency: read $12:TPrimitive
|
||||
scope2 [8:9]:
|
||||
- dependency: read $14:TPrimitive
|
||||
- dependency: read a$10_@0
|
||||
- dependency: freeze b$11_@0:TObject
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -43,7 +43,6 @@ bb3:
|
||||
predecessor blocks: bb4 bb1
|
||||
[13] Const mutate y$18 = read x$7_@0:TPrimitive
|
||||
[14] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -31,7 +31,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[8] Const mutate y$11 = read x$5_@0:TPrimitive
|
||||
[9] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -38,7 +38,6 @@ bb4:
|
||||
bb2:
|
||||
predecessor blocks: bb1
|
||||
[9] Return freeze items$5_@0
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -39,7 +39,6 @@ bb4:
|
||||
bb2:
|
||||
predecessor blocks: bb1
|
||||
[13] Return read x$6_@0:TPrimitive
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -41,7 +41,6 @@ bb4:
|
||||
bb2:
|
||||
predecessor blocks: bb1
|
||||
[15] Return read x$7_@1:TPrimitive
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -33,7 +33,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[8] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -68,12 +68,6 @@ bb1:
|
||||
predecessor blocks: bb3 bb7
|
||||
[20] read x$18_@0
|
||||
[21] Return
|
||||
scope0 [3:20]:
|
||||
- dependency: read a$9
|
||||
- dependency: read b$10
|
||||
- dependency: read c$11
|
||||
- dependency: read d$12
|
||||
- dependency: read $14:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -52,7 +52,6 @@ bb5:
|
||||
bb2:
|
||||
predecessor blocks: bb1
|
||||
[13] Return read x$9:TPrimitive
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -34,11 +34,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb3 bb0
|
||||
[8] Return
|
||||
scope0 [1:8]:
|
||||
- dependency: read a$5
|
||||
- dependency: read c$7
|
||||
- dependency: read c$7
|
||||
- dependency: read b$6
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -36,11 +36,6 @@ bb5:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb5 bb3
|
||||
[8] Return read x$12_@0:TPrimitive
|
||||
scope0 [1:8]:
|
||||
- dependency: read b$8
|
||||
- dependency: read d$10
|
||||
- dependency: read c$9
|
||||
- dependency: read a$7
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -18,7 +18,6 @@ function Component(props) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -45,7 +44,6 @@ bb0:
|
||||
[2] Const mutate b$8_@0:TObject[1:4] = Object { }
|
||||
[3] Const mutate c$9_@0[1:4] = New mutate Foo$5(mutate a$7_@0, mutate b$8_@0:TObject)
|
||||
[4] Return freeze c$9_@0
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -39,9 +39,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[10] Const mutate t$14_@2:TObject = Object { x: read x$6_@0:TPrimitive, y: read y$7_@0:TPrimitive }
|
||||
[11] Return freeze t$14_@2:TObject
|
||||
scope2 [10:11]:
|
||||
- dependency: read x$6_@0:TPrimitive
|
||||
- dependency: read y$7_@0:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -19,9 +19,6 @@ bb0:
|
||||
[2] Const mutate b$7:TPrimitive = 2
|
||||
[3] Const mutate x$8_@0:TObject = Object { a: read a$6:TPrimitive, b: read b$7:TPrimitive }
|
||||
[4] Return freeze x$8_@0:TObject
|
||||
scope0 [3:4]:
|
||||
- dependency: read a$6:TPrimitive
|
||||
- dependency: read b$7:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
-2
@@ -39,8 +39,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[10] Call mutate mutate$6:TFunction(mutate b$8_@0:TObject)
|
||||
[11] Return freeze x$9_@0:TObject
|
||||
scope0 [1:11]:
|
||||
- dependency: read a$7
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -35,8 +35,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[9] Return freeze x$6_@0:TObject
|
||||
scope0 [1:9]:
|
||||
- dependency: read a$5
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -37,8 +37,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[9] Call mutate mutate$5:TFunction(mutate x$7_@0:TObject)
|
||||
[10] Return freeze x$7_@0:TObject
|
||||
scope0 [1:10]:
|
||||
- dependency: read a$6
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
-2
@@ -37,8 +37,6 @@ bb3:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[10] Return freeze x$7_@0:TObject
|
||||
scope0 [1:10]:
|
||||
- dependency: read a$6
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -25,7 +25,6 @@ bb0:
|
||||
[4] Reassign mutate y$7_@0.x[1:6] = read x$6_@0:TObject
|
||||
[5] Call mutate mutate$4:TFunction(mutate a$5_@0:TObject)
|
||||
[6] Return freeze y$7_@0:TObject
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -20,8 +20,6 @@ bb0:
|
||||
[3] Const mutate $6_@1[2:5] = Array []
|
||||
[4] Call mutate y$5_@1.x.push(mutate $6_@1)
|
||||
[5] Return freeze y$5_@1:TObject
|
||||
scope1 [2:5]:
|
||||
- dependency: read x$4_@0
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -21,7 +21,6 @@ bb0:
|
||||
[3] Reassign mutate y$5_@0.x[1:5] = read x$4_@0
|
||||
[4] Call mutate mutate$3:TFunction(mutate x$4_@0)
|
||||
[5] Return freeze y$5_@0:TObject
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -25,7 +25,6 @@ bb0:
|
||||
[4] Reassign mutate y$6_@0.x[1:6] = read x$7_@0
|
||||
[5] Call mutate mutate$4:TFunction(mutate a$5_@0:TObject)
|
||||
[6] Return freeze y$6_@0:TObject
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -21,7 +21,6 @@ bb0:
|
||||
[3] Reassign mutate y$5_@0.x[1:5] = read x$4_@0
|
||||
[4] Call mutate mutate$3:TFunction(mutate y$5_@0:TObject)
|
||||
[5] Return freeze y$5_@0:TObject
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -19,8 +19,6 @@ bb0:
|
||||
[2] Const mutate y$4_@1:TObject[2:4] = Object { }
|
||||
[3] Reassign mutate y$4_@1.x[2:4] = read x$3_@0
|
||||
[4] Return freeze y$4_@1:TObject
|
||||
scope1 [2:4]:
|
||||
- dependency: read x$3_@0
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -21,7 +21,6 @@ bb0:
|
||||
[3] Const mutate x$10 = read b$6
|
||||
[4] Const mutate x$11 = read c$7
|
||||
[5] Return read x$11
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -28,7 +28,6 @@ bb2:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[7] Return read x$4_@0:TPrimitive
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -22,7 +22,6 @@ function Foo(cond) {
|
||||
```
|
||||
bb0:
|
||||
[1] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
@@ -60,8 +59,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[8] Call mutate log$4:TFunction(read str$6_@0:TPrimitive)
|
||||
[9] Return
|
||||
scope0 [1:8]:
|
||||
- dependency: read cond$5
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -68,14 +68,6 @@ bb7:
|
||||
bb1:
|
||||
predecessor blocks: bb3 bb7
|
||||
[20] Return
|
||||
scope0 [5:10]:
|
||||
- dependency: read a$9
|
||||
- dependency: read b$10
|
||||
- dependency: read $15:TPrimitive
|
||||
scope1 [13:18]:
|
||||
- dependency: read c$11
|
||||
- dependency: read d$12
|
||||
- dependency: read $19:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -37,8 +37,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb3
|
||||
[9] Const mutate x$11 = read y$8_@0:TPrimitive
|
||||
[10] Return
|
||||
scope0 [4:9]:
|
||||
- dependency: read $7:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -16,7 +16,6 @@ bb0:
|
||||
[1] Const mutate x$3:TPrimitive = 1
|
||||
[2] Const mutate y$4:TPrimitive = 2
|
||||
[3] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -27,7 +27,6 @@ bb2:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[6] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -58,11 +58,6 @@ bb1:
|
||||
predecessor blocks: bb5 bb3 bb2
|
||||
[16] Const mutate y$22 = read x$16_@0:TPrimitive
|
||||
[17] Return
|
||||
scope0 [6:16]:
|
||||
- dependency: read x$10:TPrimitive
|
||||
- dependency: read x$10:TPrimitive
|
||||
- dependency: read x$10:TPrimitive
|
||||
- dependency: read x$10:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -27,7 +27,6 @@ bb2:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[7] Throw read x$4_@0:TPrimitive
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -32,7 +32,6 @@ bb3:
|
||||
bb2:
|
||||
predecessor blocks: bb1
|
||||
[9] Return read x$5:TPrimitive
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -32,7 +32,6 @@ bb3:
|
||||
bb2:
|
||||
predecessor blocks: bb1
|
||||
[9] Return read x$5_@0:TPrimitive
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -58,13 +58,6 @@ bb1:
|
||||
[13] Call read y$11_@1.push(read props$9.p4)
|
||||
[14] Const mutate $22_@3 = JSX <read Component$0 data={freeze y$11_@1:TPrimitive} >{read child$19_@2}</read Component$0>
|
||||
[15] Return read $22_@3
|
||||
scope2 [12:13]:
|
||||
- dependency: read Component$0
|
||||
- dependency: freeze x$10_@1:TFunction
|
||||
scope3 [14:15]:
|
||||
- dependency: read Component$0
|
||||
- dependency: freeze y$11_@1:TPrimitive
|
||||
- dependency: read child$19_@2
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -79,7 +79,6 @@ bb2:
|
||||
bb1:
|
||||
predecessor blocks: bb9 bb0 bb5 bb2
|
||||
[21] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -52,13 +52,6 @@ bb1:
|
||||
[13] Call read y$10_@1.push(read props$8.p4)
|
||||
[14] Const mutate $23_@4 = JSX <read Component$0 data={read y$10_@1:TPrimitive} >{read child$19_@3}</read Component$0>
|
||||
[15] Return read $23_@4
|
||||
scope3 [12:13]:
|
||||
- dependency: read Component$0
|
||||
- dependency: freeze x$9_@1:TFunction
|
||||
scope4 [14:15]:
|
||||
- dependency: read Component$0
|
||||
- dependency: read y$10_@1:TPrimitive
|
||||
- dependency: read child$19_@3
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -30,7 +30,6 @@ bb0:
|
||||
[7] Reassign mutate q$8_@0.y[1:9] = read p$7_@0.y
|
||||
[8] Call mutate mutate$5:TFunction(mutate q$8_@0:TObject)
|
||||
[9] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -23,7 +23,6 @@ bb2:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[5] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -27,7 +27,6 @@ bb2:
|
||||
bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[7] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -17,8 +17,6 @@ bb0:
|
||||
[2] Const mutate x$5_@0:TObject = Object { t: read $4:TPrimitive }
|
||||
[3] Const mutate p$6:TPrimitive = read x$5_@0.t
|
||||
[4] Return
|
||||
scope0 [2:3]:
|
||||
- dependency: read $4:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -31,9 +31,6 @@ bb1:
|
||||
[8] Const mutate y$16:TPrimitive = read x$12_@2.u
|
||||
[9] Const mutate z$17:TPrimitive = read x$12_@2.v
|
||||
[10] Return
|
||||
scope2 [3:4]:
|
||||
- dependency: read $10_@0:TPrimitive
|
||||
- dependency: read $11_@1:TPrimitive
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -20,7 +20,6 @@ bb0:
|
||||
[3] Reassign mutate x$4_@0.t[1:4] = read q$5_@1:TObject
|
||||
[4] Const mutate z$6:TObject = read x$4_@0.t
|
||||
[5] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -31,9 +31,6 @@ bb0:
|
||||
[7] Reassign mutate x$9_@2.t[4:8] = read o$8_@1:TObject
|
||||
[8] Const mutate y$11:TPoly = read x$9_@2.t
|
||||
[9] Return
|
||||
scope2 [4:8]:
|
||||
- dependency: read p$7_@0:TPrimitive
|
||||
- dependency: read o$8_@1:TObject
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -16,7 +16,6 @@ bb0:
|
||||
[1] Const mutate x$3:TPrimitive = 1
|
||||
[2] Const mutate y$4:TPrimitive = 2
|
||||
[3] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
@@ -30,7 +30,6 @@ bb1:
|
||||
predecessor blocks: bb2 bb0
|
||||
[7] Const mutate z$12_@3:TPrimitive = Call mutate foo$2:TFunction()
|
||||
[8] Return
|
||||
|
||||
```
|
||||
|
||||
## Reactive Scopes
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user