Cleanup previous dep collection

This commit is contained in:
Joe Savona
2022-12-14 08:42:39 -08:00
parent dd1ff4dc30
commit 552fe1878b
103 changed files with 0 additions and 705 deletions
@@ -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);
}
}
-6
View File
@@ -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),
-24
View File
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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