Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
a25a7e1
[compiler] Fixture tests for PropertyStore effects
josephsavona May 9, 2025
9fa5b0b
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 9, 2025
d1d5e74
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 9, 2025
08f86c9
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 9, 2025
785e4cb
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 12, 2025
3677cbb
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 13, 2025
c08f598
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 22, 2025
d02c521
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 23, 2025
39fc594
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 27, 2025
7836b45
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 27, 2025
056678c
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 28, 2025
9fce527
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 28, 2025
189f3cc
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 29, 2025
503c620
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 29, 2025
d6c5703
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 30, 2025
46aeaa2
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 30, 2025
13c3342
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 30, 2025
e001cbd
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona May 30, 2025
a1dbc0a
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 2, 2025
e63dd4f
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 3, 2025
b0d3665
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 3, 2025
468ffc2
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 3, 2025
b9aa31f
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 4, 2025
7197b7c
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 4, 2025
42f3384
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 5, 2025
0f48721
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 5, 2025
1638280
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 6, 2025
d473a7a
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 6, 2025
6cf246d
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 6, 2025
dab5da0
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 6, 2025
884f48f
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 7, 2025
d375e98
Update on "[compiler] Fixture tests for PropertyStore effects"
josephsavona Jun 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@

## Input

```javascript
function Component({a, b, c}) {
// This is an object version of array-access-assignment.js
// Meant to confirm that object expressions and PropertyStore/PropertyLoad with strings
// works equivalently to array expressions and property accesses with numeric indices
const x = {zero: a};
const y = {zero: null, one: b};
const z = {zero: {}, one: {}, two: {zero: c}};
x.zero = y.one;
z.zero.zero = x.zero;
return {zero: x, one: z};
}

export const FIXTURE_ENTRYPOINT = {
fn: Component,
params: [{a: 1, b: 20, c: 300}],
sequentialRenders: [
{a: 2, b: 20, c: 300},
{a: 3, b: 20, c: 300},
{a: 3, b: 21, c: 300},
{a: 3, b: 22, c: 300},
{a: 3, b: 22, c: 301},
],
};

```

## Code

```javascript
import { c as _c } from "react/compiler-runtime";
function Component(t0) {
const $ = _c(10);
const { a, b, c } = t0;
let t1;
if ($[0] !== a || $[1] !== b || $[2] !== c) {
const x = { zero: a };
let t2;
if ($[4] !== b) {
t2 = { zero: null, one: b };
$[4] = b;
$[5] = t2;
} else {
t2 = $[5];
}
const y = t2;
let t3;
let t4;
if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
t3 = {};
t4 = {};
$[6] = t3;
$[7] = t4;
} else {
t3 = $[6];
t4 = $[7];
}
let t5;
if ($[8] !== c) {
t5 = { zero: c };
$[8] = c;
$[9] = t5;
} else {
t5 = $[9];
}
const z = { zero: t3, one: t4, two: t5 };
x.zero = y.one;
z.zero.zero = x.zero;
t1 = { zero: x, one: z };
$[0] = a;
$[1] = b;
$[2] = c;
$[3] = t1;
} else {
t1 = $[3];
}
return t1;
}

export const FIXTURE_ENTRYPOINT = {
fn: Component,
params: [{ a: 1, b: 20, c: 300 }],
sequentialRenders: [
{ a: 2, b: 20, c: 300 },
{ a: 3, b: 20, c: 300 },
{ a: 3, b: 21, c: 300 },
{ a: 3, b: 22, c: 300 },
{ a: 3, b: 22, c: 301 },
],
};

```

### Eval output
(kind: ok) {"zero":{"zero":20},"one":{"zero":{"zero":20},"one":{},"two":{"zero":300}}}
{"zero":{"zero":20},"one":{"zero":{"zero":20},"one":{},"two":{"zero":300}}}
{"zero":{"zero":21},"one":{"zero":{"zero":21},"one":{},"two":{"zero":300}}}
{"zero":{"zero":22},"one":{"zero":{"zero":22},"one":{},"two":{"zero":300}}}
{"zero":{"zero":22},"one":{"zero":{"zero":22},"one":{},"two":{"zero":301}}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
function Component({a, b, c}) {
// This is an object version of array-access-assignment.js
// Meant to confirm that object expressions and PropertyStore/PropertyLoad with strings
// works equivalently to array expressions and property accesses with numeric indices
const x = {zero: a};
const y = {zero: null, one: b};
const z = {zero: {}, one: {}, two: {zero: c}};
x.zero = y.one;
z.zero.zero = x.zero;
return {zero: x, one: z};
}

export const FIXTURE_ENTRYPOINT = {
fn: Component,
params: [{a: 1, b: 20, c: 300}],
sequentialRenders: [
{a: 2, b: 20, c: 300},
{a: 3, b: 20, c: 300},
{a: 3, b: 21, c: 300},
{a: 3, b: 22, c: 300},
{a: 3, b: 22, c: 301},
],
};
Loading