Compare commits
base: bahman:v19.0.1
bahman:main
bahman:dependabot/npm_and_yarn/compiler/apps/playground/postcss-8.5.10
bahman:builds/facebook-fbsource
bahman:builds/facebook-www
bahman:sapling-pr-archive-mofeiZ
bahman:pr36308
bahman:pr36307
bahman:dependabot/npm_and_yarn/compiler/follow-redirects-1.16.0
bahman:dependabot/npm_and_yarn/protocol-buffers-schema-3.6.1
bahman:pr36292
bahman:dependabot/npm_and_yarn/compiler/basic-ftp-5.3.0
bahman:dependabot/npm_and_yarn/compiler/apps/playground/follow-redirects-1.16.0
bahman:dependabot/npm_and_yarn/follow-redirects-1.16.0
bahman:dependabot/npm_and_yarn/compiler/apps/playground/next-15.5.15
bahman:dependabot/npm_and_yarn/compiler/apps/playground/axios-1.15.0
bahman:dependabot/npm_and_yarn/compiler/axios-1.15.0
bahman:dependabot/npm_and_yarn/electron-39.8.5
bahman:bump-flow
bahman:dependabot/npm_and_yarn/compiler/apps/playground/lodash-4.18.1
bahman:dependabot/npm_and_yarn/fixtures/packaging/systemjs-builder/prod/lodash-4.18.1
bahman:dependabot/npm_and_yarn/compiler/lodash-4.18.1
bahman:dependabot/npm_and_yarn/scripts/devtools/lodash-4.18.1
bahman:dependabot/npm_and_yarn/compiler/undici-6.24.1
bahman:dependabot/npm_and_yarn/fixtures/packaging/brunch/prod/tar-2.2.2
bahman:dependabot/npm_and_yarn/fixtures/packaging/brunch/dev/tar-2.2.2
bahman:dependabot/npm_and_yarn/undici-6.24.0
bahman:dependabot/npm_and_yarn/fixtures/packaging/webpack-alias/dev/brace-expansion-1.1.13
bahman:pr36159
bahman:dependabot/npm_and_yarn/compiler/path-to-regexp-8.4.0
bahman:dependabot/npm_and_yarn/fixtures/legacy-jsx-runtimes/react-14/brace-expansion-1.1.13
bahman:dependabot/npm_and_yarn/compiler/packages/react-forgive/client/brace-expansion-2.0.3
bahman:dependabot/npm_and_yarn/fixtures/concurrent/time-slicing/handlebars-4.7.9
bahman:dependabot/npm_and_yarn/node-forge-1.4.0
bahman:dependabot/npm_and_yarn/compiler/apps/playground/picomatch-2.3.2
bahman:dependabot/npm_and_yarn/compiler/flatted-3.4.2
bahman:dependabot/npm_and_yarn/compiler/apps/playground/flatted-3.4.2
bahman:dependabot/npm_and_yarn/flatted-3.4.2
bahman:dependabot/npm_and_yarn/simple-git-3.33.0
bahman:dependabot/npm_and_yarn/immutable-4.3.8
bahman:dependabot/npm_and_yarn/fixtures/packaging/brunch/dev/minimatch-3.1.5
bahman:dependabot/npm_and_yarn/serialize-javascript-6.0.2
bahman:dependabot/npm_and_yarn/minimatch-3.1.4
bahman:dependabot/npm_and_yarn/compiler/packages/react-forgive/client/minimatch-5.1.9
bahman:dependabot/npm_and_yarn/compiler/rollup-4.59.0
bahman:dependabot/npm_and_yarn/scripts/bench/minimatch-3.1.5
bahman:dependabot/npm_and_yarn/rollup-3.30.0
bahman:dependabot/npm_and_yarn/compiler/basic-ftp-5.2.0
bahman:pr35906
bahman:pr35894
bahman:pr35893
bahman:pr35888
bahman:pr35884
bahman:pr35883
bahman:pr35882
bahman:pr35881
bahman:pr35880
bahman:pr35879
bahman:pr35878
bahman:pr35877
bahman:pr35876
bahman:pr35875
bahman:pr35874
bahman:pr35873
bahman:pr35872
bahman:pr35861
bahman:pr35860
bahman:pr35838
bahman:pr35837
bahman:pr35836
bahman:pr35835
bahman:pr35834
bahman:pr35833
bahman:pr35832
bahman:pr35831
bahman:pr35830
bahman:pr35828
bahman:pr35829
bahman:pr35853
bahman:pr35852
bahman:pr35851
bahman:pr35850
bahman:pr35849
bahman:pr35846
bahman:pr35847
bahman:pr35848
bahman:pr35844
bahman:pr35845
bahman:pr35843
bahman:pr35842
bahman:pr35841
bahman:pr35840
bahman:sapling-pr-archive-josephsavona
bahman:dependabot/npm_and_yarn/fixtures/packaging/brunch/dev/pbkdf2-3.1.5
bahman:dependabot/npm_and_yarn/fixtures/concurrent/time-slicing/pbkdf2-3.1.5
bahman:pr35794
bahman:dependabot/npm_and_yarn/webpack-5.104.1
bahman:pr34666
bahman:dependabot/npm_and_yarn/fixtures/packaging/webpack/dev/semver-5.7.2
bahman:dependabot/npm_and_yarn/scripts/devtools/semver-5.7.2
bahman:sapling-pr-archive-jorge-cab
bahman:pr35691
bahman:dependabot/npm_and_yarn/fixtures/concurrent/time-slicing/url-parse-1.5.10
bahman:dependabot/npm_and_yarn/fixtures/concurrent/time-slicing/diff-3.5.1
bahman:dependabot/npm_and_yarn/eslint-9.26.0
bahman:dependabot/npm_and_yarn/compiler/apps/playground/next-16.1.5
bahman:dependabot/npm_and_yarn/scripts/bench/lodash-4.17.23
bahman:pr35298
bahman:pr35607
bahman:pr35539
bahman:pr35573
bahman:pr35595
bahman:pr35596
bahman:pr35537
bahman:pr35523
bahman:dependabot/npm_and_yarn/lodash-4.17.23
bahman:dependabot/npm_and_yarn/compiler/apps/playground/lodash-4.17.23
bahman:standalone-inspection
bahman:dependabot/npm_and_yarn/compiler/diff-4.0.4
bahman:asserts-stack-4
bahman:dependabot/npm_and_yarn/fixtures/packaging/webpack/dev/tar-2.2.2
bahman:pr35526
bahman:pr35528
bahman:pr35529
bahman:pr35530
bahman:dependabot/npm_and_yarn/scripts/release/diff-8.0.3
bahman:pr35527
bahman:pr35525
bahman:pr35524
bahman:pr35522
bahman:pr35450
bahman:dependabot/npm_and_yarn/compiler/modelcontextprotocol/sdk-1.25.2
bahman:sapling-pr-archive-poteto
bahman:dependabot/npm_and_yarn/compiler/qs-6.14.1
bahman:use-stuck
bahman:pr35364
bahman:pr35175
bahman:pr35216
bahman:pr35329
bahman:pr35330
bahman:pr35334
bahman:pr35333
bahman:pr35332
bahman:pr35331
bahman:sebbie/12-07-add_release_workflow_using_ci_artifacts
bahman:pr35285
bahman:sebbie/10-03-simplify_release-from-npm_workflow
bahman:pr35215
bahman:pr35213
bahman:pr35201
bahman:pr35204
bahman:pr35202
bahman:pr35192
bahman:pr35190
bahman:pr35186
bahman:pr35185
bahman:pr35184
bahman:pr34472
bahman:pr34471
bahman:pr34394
bahman:pr35112
bahman:pr35102
bahman:pr35173
bahman:pr35174
bahman:pr35180
bahman:use-store-with-selector
bahman:pr35148
bahman:pr35147
bahman:pr35146
bahman:pr35144
bahman:pr35145
bahman:pr35140
bahman:pr35139
bahman:pr35135
bahman:pr35134
bahman:pr35110
bahman:pr35100
bahman:pr35099
bahman:pr35044
bahman:pr35020
bahman:pr34972
bahman:pr34973
bahman:pr34995
bahman:export-D86593830
bahman:sapling-pr-archive-jbrown215
bahman:pr35041
bahman:pr34967
bahman:pr34963
bahman:pr34579
bahman:pr34580
bahman:pr34578
bahman:pr34577
bahman:pr34575
bahman:pr34574
bahman:pr34903
bahman:pr34904
bahman:pr34887
bahman:pr34900
bahman:pr34855
bahman:pr34882
bahman:pr34868
bahman:gh/josephsavona/78/base
bahman:pr34865
bahman:pr34847
bahman:pr34717
bahman:drop-plugin-private-methods
bahman:pr34715
bahman:pr34714
bahman:pr34689
bahman:pr34503
bahman:pr34637
bahman:pr34497
bahman:pr34576
bahman:pr34588
bahman:pr34586
bahman:pr34568
bahman:pr34562
bahman:pr34561
bahman:pr34560
bahman:pr34559
bahman:pr34570
bahman:pr34557
bahman:pr34558
bahman:pr34527
bahman:pr34521
bahman:pr34492
bahman:pr34437
bahman:pr34449
bahman:pr34442
bahman:pr34391
bahman:pr34448
bahman:pr34390
bahman:pr34447
bahman:pr34389
bahman:pr34445
bahman:pr34446
bahman:pr34388
bahman:pr34444
bahman:pr34387
bahman:pr34443
bahman:pr34386
bahman:pr34385
bahman:pr34441
bahman:pr34384
bahman:pr34440
bahman:pr34424
bahman:pr34434
bahman:pr34318
bahman:pr34410
bahman:naturally-unintelligent
bahman:pr34406
bahman:pr34392
bahman:pr34346
bahman:pr34347
bahman:pr34345
bahman:pr34343
bahman:pr34335
bahman:pr34027
bahman:rewrite-validation
bahman:pr33643
bahman:pr33642
bahman:pr33650
bahman:pr34276
bahman:pr34323
bahman:pr34298
bahman:pr34260
bahman:pr34176
bahman:pr34246
bahman:pr34175
bahman:pr34029
bahman:pr34028
bahman:pr34126
bahman:pr34140
bahman:pr34139
bahman:pr34173
bahman:pr34134
bahman:pr34133
bahman:pr34100
bahman:pr34125
bahman:pr34124
bahman:pr33647
bahman:pr34121
bahman:fix-no-new-line-before-error-stacks-in-console-errors
bahman:pr34049
bahman:pr34047
bahman:pr34043
bahman:pr34026
bahman:pr34025
bahman:pr34024
bahman:pr34005
bahman:pr34004
bahman:pr34006
bahman:pr34003
bahman:pr34000
bahman:pr33993
bahman:pr33991
bahman:pr33984
bahman:pr33981
bahman:pr33777
bahman:pr33767
bahman:pr33765
bahman:pr33760
bahman:pr33758
bahman:pr33759
bahman:pr33751
bahman:pr33752
bahman:pr33753
bahman:release/19.1.1
bahman:pr33748
bahman:pr33750
bahman:pr33747
bahman:pr33746
bahman:pr33740
bahman:pr33726
bahman:pr33725
bahman:mcp-sync-refactor
bahman:pr33624
bahman:pr33625
bahman:pr33626
bahman:pr33640
bahman:pr33584
bahman:pr33547
bahman:pr33558
bahman:pr33571
bahman:pr33543
bahman:pr33530
bahman:pr33532
bahman:pr33533
bahman:pr33518
bahman:pr33522
bahman:pr33526
bahman:pr33514
bahman:pr33573
bahman:pr33513
bahman:pr33496
bahman:pr33497
bahman:pr33500
bahman:pr33504
bahman:pr33512
bahman:pr33495
bahman:pr33494
bahman:pr33572
bahman:mcp-custom-track-tool
bahman:pr33509
bahman:pr33493
bahman:pr33492
bahman:gh/josephsavona/122/orig
bahman:gh/josephsavona/122/head
bahman:gh/josephsavona/121/head
bahman:gh/josephsavona/121/orig
bahman:gh/josephsavona/122/base
bahman:gh/josephsavona/121/base
bahman:gh/josephsavona/120/orig
bahman:gh/josephsavona/120/base
bahman:gh/josephsavona/120/head
bahman:gh/josephsavona/119/orig
bahman:gh/josephsavona/119/head
bahman:gh/josephsavona/119/base
bahman:gh/josephsavona/118/head
bahman:gh/josephsavona/118/orig
bahman:gh/josephsavona/118/base
bahman:gh/josephsavona/117/orig
bahman:gh/josephsavona/117/head
bahman:gh/josephsavona/117/base
bahman:gh/josephsavona/116/orig
bahman:gh/josephsavona/116/base
bahman:gh/josephsavona/116/head
bahman:gh/josephsavona/115/head
bahman:gh/josephsavona/115/orig
bahman:gh/josephsavona/115/base
bahman:gh/josephsavona/114/head
bahman:gh/josephsavona/114/orig
bahman:gh/josephsavona/114/base
bahman:gh/josephsavona/113/head
bahman:gh/josephsavona/113/orig
bahman:gh/josephsavona/113/base
bahman:gh/josephsavona/112/head
bahman:gh/josephsavona/112/orig
bahman:gh/josephsavona/112/base
bahman:gh/josephsavona/111/head
bahman:gh/josephsavona/111/orig
bahman:gh/josephsavona/111/base
bahman:gh/josephsavona/110/head
bahman:gh/josephsavona/110/orig
bahman:gh/josephsavona/110/base
bahman:gh/josephsavona/109/head
bahman:gh/josephsavona/109/orig
bahman:gh/josephsavona/109/base
bahman:gh/josephsavona/108/orig
bahman:gh/josephsavona/108/base
bahman:gh/josephsavona/108/head
bahman:gh/josephsavona/107/orig
bahman:gh/josephsavona/107/base
bahman:gh/josephsavona/107/head
bahman:gh/josephsavona/106/orig
bahman:gh/josephsavona/106/head
bahman:gh/josephsavona/106/base
bahman:gh/josephsavona/105/head
bahman:gh/josephsavona/105/orig
bahman:gh/josephsavona/105/base
bahman:gh/josephsavona/104/head
bahman:gh/josephsavona/104/orig
bahman:gh/josephsavona/104/base
bahman:gh/josephsavona/103/head
bahman:gh/josephsavona/103/orig
bahman:gh/josephsavona/103/base
bahman:gh/josephsavona/102/head
bahman:gh/josephsavona/102/orig
bahman:gh/josephsavona/102/base
bahman:gh/josephsavona/101/head
bahman:gh/josephsavona/101/orig
bahman:gh/josephsavona/101/base
bahman:gh/josephsavona/100/head
bahman:gh/josephsavona/100/orig
bahman:gh/josephsavona/100/base
bahman:gh/josephsavona/99/orig
bahman:gh/josephsavona/99/base
bahman:gh/josephsavona/99/head
bahman:gh/josephsavona/98/head
bahman:gh/josephsavona/98/orig
bahman:gh/josephsavona/98/base
bahman:gh/josephsavona/97/orig
bahman:gh/josephsavona/97/base
bahman:gh/josephsavona/97/head
bahman:gh/josephsavona/96/head
bahman:gh/josephsavona/96/orig
bahman:gh/josephsavona/96/base
bahman:gh/josephsavona/95/head
bahman:gh/josephsavona/95/orig
bahman:gh/josephsavona/95/base
bahman:gh/josephsavona/94/head
bahman:gh/josephsavona/94/orig
bahman:gh/josephsavona/94/base
bahman:gh/josephsavona/92/head
bahman:gh/josephsavona/92/orig
bahman:gh/josephsavona/92/base
bahman:gh/josephsavona/93/orig
bahman:gh/josephsavona/93/base
bahman:gh/josephsavona/93/head
bahman:gh/josephsavona/87/orig
bahman:gh/josephsavona/87/base
bahman:gh/josephsavona/87/head
bahman:gh/josephsavona/86/orig
bahman:gh/josephsavona/86/base
bahman:gh/josephsavona/86/head
bahman:gh/josephsavona/85/head
bahman:gh/josephsavona/85/orig
bahman:gh/josephsavona/85/base
bahman:gh/josephsavona/84/head
bahman:gh/josephsavona/84/orig
bahman:gh/josephsavona/84/base
bahman:gh/josephsavona/83/orig
bahman:gh/josephsavona/83/head
bahman:gh/josephsavona/83/base
bahman:gh/josephsavona/82/orig
bahman:gh/josephsavona/82/base
bahman:gh/josephsavona/82/head
bahman:gh/josephsavona/81/head
bahman:gh/josephsavona/81/orig
bahman:gh/josephsavona/81/base
bahman:gh/josephsavona/80/orig
bahman:gh/josephsavona/80/base
bahman:gh/josephsavona/80/head
bahman:gh/josephsavona/79/orig
bahman:gh/josephsavona/79/base
bahman:gh/josephsavona/79/head
bahman:component-tree-tool
bahman:pr33383
bahman:revert-33357-pr33357
bahman:mmv-tcf-01
bahman:pr33328
bahman:pr33326
bahman:pr32286
bahman:pr33325
bahman:pr33310
bahman:gh/josephsavona/91/orig
bahman:gh/josephsavona/91/base
bahman:gh/josephsavona/91/head
bahman:gh/josephsavona/90/base
bahman:gh/josephsavona/90/head
bahman:gh/josephsavona/90/orig
bahman:gh/josephsavona/89/orig
bahman:gh/josephsavona/89/head
bahman:gh/josephsavona/88/orig
bahman:gh/josephsavona/88/head
bahman:gh/josephsavona/89/base
bahman:gh/josephsavona/88/base
bahman:pr33148
bahman:pr33149
bahman:pr33147
bahman:pr33146
bahman:pr33145
bahman:pr33144
bahman:improve-web-vitals
bahman:gh/mvitousek/42/head
bahman:gh/mvitousek/42/orig
bahman:gh/mvitousek/42/base
bahman:multi-form-submission-throw
bahman:gh/josephsavona/78/orig
bahman:gh/josephsavona/78/head
bahman:gh/josephsavona/72/head
bahman:gh/josephsavona/72/orig
bahman:gh/josephsavona/72/base
bahman:gh/josephsavona/71/head
bahman:gh/josephsavona/71/orig
bahman:gh/josephsavona/71/base
bahman:pr32765
bahman:pr32747
bahman:pr33071
bahman:pr33070
bahman:pr32099
bahman:pr33069
bahman:pr33047
bahman:pr32984
bahman:pr32991
bahman:pr33026
bahman:pr32829
bahman:pr32860
bahman:pr32780
bahman:pr32779
bahman:pr32769
bahman:pr32745
bahman:report-bug-fr-with-logs
bahman:pr32661
bahman:pr32662
bahman:pr32615
bahman:repro-bug-fr
bahman:pr32521
bahman:pr32522
bahman:pr32593
bahman:pr32594
bahman:pr32595
bahman:pr32596
bahman:pr32524
bahman:pr32520
bahman:eslint-plugin-react-hooks-5.x
bahman:gh-pages
bahman:constant-propagation-ternary
bahman:gh/josephsavona/70/head
bahman:gh/josephsavona/70/orig
bahman:gh/josephsavona/70/base
bahman:gh/josephsavona/69/orig
bahman:gh/josephsavona/69/head
bahman:gh/josephsavona/69/base
bahman:gh/josephsavona/68/orig
bahman:gh/josephsavona/68/head
bahman:gh/josephsavona/67/head
bahman:gh/josephsavona/67/orig
bahman:gh/josephsavona/68/base
bahman:gh/josephsavona/67/base
bahman:gh/josephsavona/66/head
bahman:gh/josephsavona/66/orig
bahman:gh/josephsavona/66/base
bahman:gh/josephsavona/65/head
bahman:gh/josephsavona/65/orig
bahman:gh/josephsavona/65/base
bahman:gh/josephsavona/64/head
bahman:gh/josephsavona/64/orig
bahman:pr32012
bahman:gh/josephsavona/64/base
bahman:sync-nextjs-13
bahman:sync-nextjs-14
bahman:gh/josephsavona/63/head
bahman:gh/josephsavona/63/orig
bahman:gh/josephsavona/63/base
bahman:gh/mvitousek/41/orig
bahman:gh/mvitousek/41/head
bahman:gh/mvitousek/40/orig
bahman:gh/mvitousek/40/base
bahman:gh/mvitousek/40/head
bahman:gh/mvitousek/41/base
bahman:sync-nextjs-15
bahman:mofeiZ-effect-deps-refactor
bahman:gh/josephsavona/62/orig
bahman:gh/josephsavona/62/head
bahman:gh/josephsavona/61/head
bahman:gh/josephsavona/61/orig
bahman:gh/josephsavona/62/base
bahman:gh/josephsavona/61/base
bahman:gh/josephsavona/60/base
bahman:gh/josephsavona/60/head
bahman:gh/josephsavona/60/orig
bahman:gh/josephsavona/59/head
bahman:gh/josephsavona/59/orig
bahman:gh/josephsavona/59/base
bahman:pr31584
bahman:gh/josephsavona/58/orig
bahman:gh/josephsavona/58/head
bahman:gh/josephsavona/58/base
bahman:revert-31432-pr31432
bahman:sophiebits--lastFullyObservedContext
bahman:rh/fire
bahman:mofeiZ/30/base
bahman:gh/mofeiZ/32/head
bahman:gh/mofeiZ/31/head
bahman:gh/mofeiZ/32/base
bahman:gh/mofeiZ/30/head
bahman:gh/mofeiZ/31/base
bahman:gh/mofeiZ/29/head
bahman:gh/mofeiZ/30/base
bahman:gh/mofeiZ/28/head
bahman:gh/mofeiZ/29/base
bahman:gh/mofeiZ/27/head
bahman:gh/mofeiZ/28/base
bahman:gh/mofeiZ/26/head
bahman:gh/mofeiZ/27/base
bahman:gh/mofeiZ/25/base
bahman:gh/mofeiZ/25/head
bahman:gh/mofeiZ/25/orig
bahman:gh/mofeiZ/24/head
bahman:gh/mofeiZ/24/orig
bahman:gh/mofeiZ/24/base
bahman:gh/mofeiZ/23/head
bahman:gh/mofeiZ/17/base
bahman:gh/mofeiZ/17/head
bahman:gh/mofeiZ/17/orig
bahman:gh/mofeiZ/23/base
bahman:gh/mofeiZ/23/orig
bahman:gh/josephsavona/57/orig
bahman:gh/josephsavona/57/head
bahman:gh/josephsavona/57/base
bahman:gh/mvitousek/37/orig
bahman:gh/mvitousek/37/base
bahman:gh/mvitousek/37/head
bahman:gh/mvitousek/36/orig
bahman:gh/mvitousek/36/base
bahman:gh/mvitousek/36/head
bahman:gh/mvitousek/35/head
bahman:gh/mvitousek/35/orig
bahman:gh/mvitousek/35/base
bahman:gh/mvitousek/34/head
bahman:gh/mvitousek/34/orig
bahman:gh/mvitousek/34/base
bahman:gh/mvitousek/33/head
bahman:gh/mvitousek/33/orig
bahman:gh/mvitousek/33/base
bahman:gh/josephsavona/56/head
bahman:gh/josephsavona/56/orig
bahman:gh/mvitousek/31/orig
bahman:gh/mvitousek/31/head
bahman:gh/mvitousek/30/orig
bahman:gh/mvitousek/30/base
bahman:gh/mvitousek/30/head
bahman:gh/mvitousek/26/orig
bahman:gh/mvitousek/26/head
bahman:gh/mvitousek/31/base
bahman:gh/mvitousek/28/orig
bahman:gh/mvitousek/28/head
bahman:gh/mvitousek/28/base
bahman:gh/mvitousek/24/orig
bahman:gh/mvitousek/24/head
bahman:gh/mvitousek/24/base
bahman:gh/josephsavona/56/base
bahman:gh/mvitousek/26/base
bahman:gh/mofeiZ/14/base
bahman:gh/mofeiZ/14/head
bahman:gh/josephsavona/54/head
bahman:gh/josephsavona/54/orig
bahman:gh/josephsavona/54/base
bahman:gh/mofeiZ/26/base
bahman:gh/josephsavona/53/orig
bahman:gh/josephsavona/53/head
bahman:gh/josephsavona/53/base
bahman:gh/josephsavona/52/base
bahman:gh/josephsavona/52/head
bahman:gh/josephsavona/52/orig
bahman:gh/josephsavona/51/head
bahman:gh/josephsavona/51/orig
bahman:gh/josephsavona/51/base
bahman:gh/josephsavona/46/orig
bahman:gh/josephsavona/46/head
bahman:gh/josephsavona/46/base
bahman:gh/josephsavona/40/orig
bahman:gh/josephsavona/40/head
bahman:gh/josephsavona/40/base
bahman:gh/josephsavona/39/base
bahman:gh/josephsavona/39/head
bahman:gh/josephsavona/39/orig
bahman:gh/mvitousek/22/orig
bahman:gh/mvitousek/22/head
bahman:gh/mvitousek/22/base
bahman:gh/mvitousek/081424
bahman:sebbie/react-markup/publishable
bahman:gh/josephsavona/35/head
bahman:gh/josephsavona/35/orig
bahman:gh/mvitousek/080824c
bahman:gh/mvitousek/080824b
bahman:gh/josephsavona/35/base
bahman:gh/mvitousek/080824a
bahman:gh/mvitousek/080824
bahman:gh/mvitousek/19/head
bahman:gh/mvitousek/19/orig
bahman:gh/mvitousek/19/base
bahman:gh/mvitousek/21/orig
bahman:gh/mvitousek/21/head
bahman:gh/mvitousek/21/base
bahman:gh/josephsavona/32/base
bahman:gh/josephsavona/32/head
bahman:gh/josephsavona/32/orig
bahman:gh/mvitousek/17/head
bahman:gh/mvitousek/17/orig
bahman:gh/mvitousek/17/base
bahman:gh/mvitousek/13/head
bahman:gh/mvitousek/13/orig
bahman:gh/mvitousek/13/base
bahman:gh/mvitousek/12/head
bahman:gh/mvitousek/12/orig
bahman:gh/mvitousek/12/base
bahman:gh/mvitousek/16/head
bahman:gh/mvitousek/16/orig
bahman:gh/mvitousek/16/base
bahman:gh/mvitousek/15/orig
bahman:gh/mvitousek/15/base
bahman:gh/mvitousek/15/head
bahman:gh/mvitousek/14/orig
bahman:gh/mvitousek/14/base
bahman:gh/mvitousek/14/head
bahman:gh/mofeiZ/13/orig
bahman:gh/mofeiZ/13/head
bahman:gh/mofeiZ/13/base
bahman:gh/mofeiZ/11/orig
bahman:gh/mofeiZ/11/head
bahman:gh/mofeiZ/11/base
bahman:gh/mofeiZ/8/base
bahman:gh/mofeiZ/8/head
bahman:gh/mofeiZ/8/orig
bahman:gh/mvitousek/11/head
bahman:gh/mvitousek/11/orig
bahman:gh/mvitousek/11/base
bahman:gh/mvitousek/10/head
bahman:gh/mvitousek/10/orig
bahman:gh/mvitousek/10/base
bahman:gh/mvitousek/9/orig
bahman:gh/mvitousek/9/base
bahman:gh/mvitousek/9/head
bahman:gh/mvitousek/8/orig
bahman:gh/mvitousek/8/head
bahman:gh/mvitousek/8/base
bahman:gh/mvitousek/7/orig
bahman:gh/mvitousek/7/head
bahman:gh/mvitousek/6/orig
bahman:gh/mvitousek/6/head
bahman:gh/mvitousek/7/base
bahman:gh/mvitousek/5/orig
bahman:gh/mvitousek/5/head
bahman:gh/mvitousek/6/base
bahman:gh/mvitousek/4/head
bahman:gh/mvitousek/4/base
bahman:gh/mvitousek/5/base
bahman:gh/mofeiZ/9/orig
bahman:gh/mofeiZ/9/head
bahman:gh/mofeiZ/9/base
bahman:gh/josephsavona/31/head
bahman:gh/josephsavona/31/orig
bahman:gh/josephsavona/31/base
bahman:rh/fix-tests
bahman:dev-tools-dynamic-auto-theme
bahman:sync-nextjs
bahman:gh/josephsavona/27/orig
bahman:gh/josephsavona/19/base
bahman:gh/josephsavona/19/head
bahman:gh/josephsavona/19/orig
bahman:gh/josephsavona/27/base
bahman:gh/josephsavona/27/head
bahman:gh/josephsavona/15/base
bahman:gh/josephsavona/15/head
bahman:gh/josephsavona/15/orig
bahman:gh/josephsavona/21/head
bahman:gh/josephsavona/21/orig
bahman:gh/josephsavona/21/base
bahman:gh/josephsavona/24/orig
bahman:gh/josephsavona/23/orig
bahman:gh/josephsavona/24/head
bahman:gh/josephsavona/23/head
bahman:gh/josephsavona/24/base
bahman:gh/josephsavona/23/base
bahman:jbonta_hover
bahman:gh/josephsavona/18/orig
bahman:gh/josephsavona/18/head
bahman:gh/josephsavona/18/base
bahman:18-3-1
bahman:18-3
bahman:rh/test-28807
bahman:cleanup-unified-sync-lane-flag
bahman:rh/fix-rn-sync
bahman:ty/rn-console-error-recoverable
bahman:rh/fix-main-2024-2
bahman:noahlemen/userland-memo
bahman:issues/27670
bahman:rm-renderable-ctx-flag
bahman:ty-revert-26549
bahman:rh/strict-modern
bahman:update-attribute-fixture
bahman:ty-rh-defaut-raf-update
bahman:ty/acdlite-infinite-update-loop-guard-test
bahman:ty/rules-of-hooks-in-optional-chaining
bahman:rh/add-offscreen-test
bahman:rh/infinite-bug
bahman:rh/repro-effect-issue
bahman:ty-inifinite-loop-regression
bahman:ty-custom-events-inherit-outer-events
bahman:ty-flush-continuous-before-discrete
bahman:ty-add-regression-test
bahman:nov-main-trigger
bahman:ty-merge-default-to-sync
bahman:rb/persist-profile-test
bahman:devtools_4.26.1
bahman:strict-mode-do-not-disconnect-passive-effects
bahman:put-use-hook-behind-flag
bahman:offscreen-manual-mode-detach
bahman:tracing_markers
bahman:user_error_view_1
bahman:fabric-cleanup
bahman:circleci-editor/master
bahman:17.0.2
bahman:17.0.1
bahman:17.0.0-dev
bahman:old-majors
bahman:sim
bahman:leg
bahman:portals
bahman:fabric-focus-blur
bahman:walaura-eslint-plugin
bahman:unrevert
bahman:devtools-v4-merge
bahman:16.8.6
bahman:16.8.5
bahman:16.8.4
bahman:16.8.3
bahman:top-setnativeprops
bahman:16.3-dev
bahman:yeswork
bahman:radio-click
bahman:16.4.2-dev
bahman:is-renderable
bahman:15.6-dev
bahman:15-stable
bahman:0.14-stable
bahman:0.13-stable
bahman:0.12-stable
bahman:0.11-stable
bahman:0.10-stable
bahman:0.9-stable
bahman:0.8-stable
bahman:0.5-stable
bahman:0.4-stable
bahman:0.3-stable
bahman:eslint-plugin-react-hooks@7.1.1
bahman:eslint-plugin-react-hooks@7.1.0
bahman:v19.0.5
bahman:v19.1.6
bahman:v19.2.5
bahman:v19.2.4
bahman:v19.1.5
bahman:v19.0.4
bahman:v19.0.3
bahman:v19.1.4
bahman:v19.2.3
bahman:v19.0.2
bahman:v19.1.3
bahman:v19.2.2
bahman:v19.0.1
bahman:v19.1.2
bahman:v19.2.1
bahman:v19.2.0
bahman:v19.1.1
bahman:v19.1.0
bahman:v19.0.0
bahman:eslint-plugin-react-hooks@5.0.0
bahman:v18.3.1
bahman:v18.3.0
bahman:v18.2.0
bahman:v18.1.0
bahman:v18.0.0
bahman:v17.0.2
bahman:v0.0.0-experimental-27659559e
bahman:v17.0.1
bahman:v17.0.0
bahman:v16.14.0
bahman:v15.7.0
bahman:0.14.10
bahman:v0.0.0-d7382b6c4
bahman:v0.0.0-experimental-d7382b6c4
bahman:v16.13.1
bahman:v0.0.0-experimental-aae83a4b9
bahman:v0.0.0-experimental-8b155d261
bahman:v16.13.0
bahman:v16.12.0
bahman:v16.11.0
bahman:status
bahman:v16.10.2
bahman:v16.10.1
bahman:v16.10.0
bahman:v16.9.0
bahman:v16.9.0-rc.0
bahman:v16.9.0-alpha.0
bahman:1.2.5
bahman:v16.8.6
bahman:v16.8.5
bahman:v16.8.4
bahman:v16.8.3
bahman:v16.8.2
bahman:v16.8.1
bahman:v16.8.0
bahman:v16.8.0-alpha.1
bahman:v16.7.0
bahman:v0.0.0-88ada9819
bahman:v16.7.0-alpha.1
bahman:v16.6.3
bahman:v16.6.1
bahman:v16.6.0
bahman:v16.6.0-alpha.8af6728
bahman:v16.6.0-alpha.400d197
bahman:v16.5.2
bahman:v16.6.0-alpha.0
bahman:v16.5.1
bahman:v16.5.0
bahman:v16.4.2
bahman:v16.4.1
bahman:v16.4.0
bahman:v16.3.2
bahman:v16.3.1
bahman:v16.3.0
bahman:v16.3.0-rc.0
bahman:v16.3.0-alpha.3
bahman:v16.3.0-alpha.2
bahman:v16.4.0-alpha.94a255d
bahman:v16.4.0-alpha.5a25959
bahman:v16.4.0-alpha.16.4.0-alpha.7926752
bahman:v16.3.0-alpha.1
bahman:v16.3.0-alpha.0
bahman:v16.2.0
bahman:v16.1.1
bahman:v16.1.0
bahman:16.1.0
bahman:16.1.0-rc
bahman:16.1.0-beta.1
bahman:16.1.0-beta
bahman:v16.0.0
bahman:v15.6.2
bahman:v16.0.0-rc.2
bahman:v16.0.0-rc.1
bahman:16.0.0-beta.5
bahman:16.0.0-beta.4
bahman:16.0.0-beta.3
bahman:16.0.0-beta.1
bahman:v15.6.1
bahman:v15.6.0
bahman:v15.5.4
bahman:v15.5.3
bahman:v15.5.2
bahman:v15.5.1
bahman:v15.5.0
bahman:15.3.2
bahman:v16.0.0-alpha.4
bahman:v16.0.0-alpha.3
bahman:v15.4.2
bahman:v15.4.1
bahman:v15.4.0
bahman:v15.4.0-rc.3
bahman:v15.3.2
bahman:15.3.1
bahman:v15.3.1
bahman:v15.3.0
bahman:v15.2.1
bahman:v15.2.0
bahman:v15.1.0
bahman:v15.0.2
bahman:v15.0.1
bahman:v15.0.0
bahman:v0.14.8
bahman:v15.0.0-rc.2
bahman:v15.0.0-rc.1
bahman:v0.14.7
bahman:v0.14.6
bahman:v0.14.5
bahman:v0.14.4
bahman:v0.14.3
bahman:v0.14.2
bahman:v0.14.1
bahman:v0.14.0
bahman:v0.14.0-rc1
bahman:v0.14.0-beta3
bahman:v0.14.0-beta2
bahman:v0.14.0-beta1
bahman:v0.13.3
bahman:v0.13.2
bahman:v0.13.1
bahman:v0.13.0
bahman:v0.13.0-rc2
bahman:v0.13.0-rc1
bahman:v0.12.2
bahman:v0.12.1
bahman:v0.12.0
bahman:v0.12.0-rc1
bahman:v0.11.2
bahman:v0.11.1
bahman:v0.11.0
bahman:v0.11.0-rc1
bahman:v0.10.0
bahman:v0.10.0-rc1
bahman:v0.9.0
bahman:v0.9.0-rc1
bahman:v0.8.0
bahman:v0.5.2
bahman:v0.4.2
bahman:v0.5.1
bahman:v0.5.0
bahman:v0.4.1
bahman:v0.4.0
bahman:v0.3.3
bahman:v0.3.0
...
compare: bahman:gh/mofeiZ/8/base
bahman:dependabot/npm_and_yarn/compiler/apps/playground/postcss-8.5.10
bahman:main
bahman:builds/facebook-fbsource
bahman:builds/facebook-www
bahman:sapling-pr-archive-mofeiZ
bahman:pr36308
bahman:pr36307
bahman:dependabot/npm_and_yarn/compiler/follow-redirects-1.16.0
bahman:dependabot/npm_and_yarn/protocol-buffers-schema-3.6.1
bahman:pr36292
bahman:dependabot/npm_and_yarn/compiler/basic-ftp-5.3.0
bahman:dependabot/npm_and_yarn/compiler/apps/playground/follow-redirects-1.16.0
bahman:dependabot/npm_and_yarn/follow-redirects-1.16.0
bahman:dependabot/npm_and_yarn/compiler/apps/playground/next-15.5.15
bahman:dependabot/npm_and_yarn/compiler/apps/playground/axios-1.15.0
bahman:dependabot/npm_and_yarn/compiler/axios-1.15.0
bahman:dependabot/npm_and_yarn/electron-39.8.5
bahman:bump-flow
bahman:dependabot/npm_and_yarn/compiler/apps/playground/lodash-4.18.1
bahman:dependabot/npm_and_yarn/fixtures/packaging/systemjs-builder/prod/lodash-4.18.1
bahman:dependabot/npm_and_yarn/compiler/lodash-4.18.1
bahman:dependabot/npm_and_yarn/scripts/devtools/lodash-4.18.1
bahman:dependabot/npm_and_yarn/compiler/undici-6.24.1
bahman:dependabot/npm_and_yarn/fixtures/packaging/brunch/prod/tar-2.2.2
bahman:dependabot/npm_and_yarn/fixtures/packaging/brunch/dev/tar-2.2.2
bahman:dependabot/npm_and_yarn/undici-6.24.0
bahman:dependabot/npm_and_yarn/fixtures/packaging/webpack-alias/dev/brace-expansion-1.1.13
bahman:pr36159
bahman:dependabot/npm_and_yarn/compiler/path-to-regexp-8.4.0
bahman:dependabot/npm_and_yarn/fixtures/legacy-jsx-runtimes/react-14/brace-expansion-1.1.13
bahman:dependabot/npm_and_yarn/compiler/packages/react-forgive/client/brace-expansion-2.0.3
bahman:dependabot/npm_and_yarn/fixtures/concurrent/time-slicing/handlebars-4.7.9
bahman:dependabot/npm_and_yarn/node-forge-1.4.0
bahman:dependabot/npm_and_yarn/compiler/apps/playground/picomatch-2.3.2
bahman:dependabot/npm_and_yarn/compiler/flatted-3.4.2
bahman:dependabot/npm_and_yarn/compiler/apps/playground/flatted-3.4.2
bahman:dependabot/npm_and_yarn/flatted-3.4.2
bahman:dependabot/npm_and_yarn/simple-git-3.33.0
bahman:dependabot/npm_and_yarn/immutable-4.3.8
bahman:dependabot/npm_and_yarn/fixtures/packaging/brunch/dev/minimatch-3.1.5
bahman:dependabot/npm_and_yarn/serialize-javascript-6.0.2
bahman:dependabot/npm_and_yarn/minimatch-3.1.4
bahman:dependabot/npm_and_yarn/compiler/packages/react-forgive/client/minimatch-5.1.9
bahman:dependabot/npm_and_yarn/compiler/rollup-4.59.0
bahman:dependabot/npm_and_yarn/scripts/bench/minimatch-3.1.5
bahman:dependabot/npm_and_yarn/rollup-3.30.0
bahman:dependabot/npm_and_yarn/compiler/basic-ftp-5.2.0
bahman:pr35906
bahman:pr35894
bahman:pr35893
bahman:pr35888
bahman:pr35884
bahman:pr35883
bahman:pr35882
bahman:pr35881
bahman:pr35880
bahman:pr35879
bahman:pr35878
bahman:pr35877
bahman:pr35876
bahman:pr35875
bahman:pr35874
bahman:pr35873
bahman:pr35872
bahman:pr35861
bahman:pr35860
bahman:pr35838
bahman:pr35837
bahman:pr35836
bahman:pr35835
bahman:pr35834
bahman:pr35833
bahman:pr35832
bahman:pr35831
bahman:pr35830
bahman:pr35828
bahman:pr35829
bahman:pr35853
bahman:pr35852
bahman:pr35851
bahman:pr35850
bahman:pr35849
bahman:pr35846
bahman:pr35847
bahman:pr35848
bahman:pr35844
bahman:pr35845
bahman:pr35843
bahman:pr35842
bahman:pr35841
bahman:pr35840
bahman:sapling-pr-archive-josephsavona
bahman:dependabot/npm_and_yarn/fixtures/packaging/brunch/dev/pbkdf2-3.1.5
bahman:dependabot/npm_and_yarn/fixtures/concurrent/time-slicing/pbkdf2-3.1.5
bahman:pr35794
bahman:dependabot/npm_and_yarn/webpack-5.104.1
bahman:pr34666
bahman:dependabot/npm_and_yarn/fixtures/packaging/webpack/dev/semver-5.7.2
bahman:dependabot/npm_and_yarn/scripts/devtools/semver-5.7.2
bahman:sapling-pr-archive-jorge-cab
bahman:pr35691
bahman:dependabot/npm_and_yarn/fixtures/concurrent/time-slicing/url-parse-1.5.10
bahman:dependabot/npm_and_yarn/fixtures/concurrent/time-slicing/diff-3.5.1
bahman:dependabot/npm_and_yarn/eslint-9.26.0
bahman:dependabot/npm_and_yarn/compiler/apps/playground/next-16.1.5
bahman:dependabot/npm_and_yarn/scripts/bench/lodash-4.17.23
bahman:pr35298
bahman:pr35607
bahman:pr35539
bahman:pr35573
bahman:pr35595
bahman:pr35596
bahman:pr35537
bahman:pr35523
bahman:dependabot/npm_and_yarn/lodash-4.17.23
bahman:dependabot/npm_and_yarn/compiler/apps/playground/lodash-4.17.23
bahman:standalone-inspection
bahman:dependabot/npm_and_yarn/compiler/diff-4.0.4
bahman:asserts-stack-4
bahman:dependabot/npm_and_yarn/fixtures/packaging/webpack/dev/tar-2.2.2
bahman:pr35526
bahman:pr35528
bahman:pr35529
bahman:pr35530
bahman:dependabot/npm_and_yarn/scripts/release/diff-8.0.3
bahman:pr35527
bahman:pr35525
bahman:pr35524
bahman:pr35522
bahman:pr35450
bahman:dependabot/npm_and_yarn/compiler/modelcontextprotocol/sdk-1.25.2
bahman:sapling-pr-archive-poteto
bahman:dependabot/npm_and_yarn/compiler/qs-6.14.1
bahman:use-stuck
bahman:pr35364
bahman:pr35175
bahman:pr35216
bahman:pr35329
bahman:pr35330
bahman:pr35334
bahman:pr35333
bahman:pr35332
bahman:pr35331
bahman:sebbie/12-07-add_release_workflow_using_ci_artifacts
bahman:pr35285
bahman:sebbie/10-03-simplify_release-from-npm_workflow
bahman:pr35215
bahman:pr35213
bahman:pr35201
bahman:pr35204
bahman:pr35202
bahman:pr35192
bahman:pr35190
bahman:pr35186
bahman:pr35185
bahman:pr35184
bahman:pr34472
bahman:pr34471
bahman:pr34394
bahman:pr35112
bahman:pr35102
bahman:pr35173
bahman:pr35174
bahman:pr35180
bahman:use-store-with-selector
bahman:pr35148
bahman:pr35147
bahman:pr35146
bahman:pr35144
bahman:pr35145
bahman:pr35140
bahman:pr35139
bahman:pr35135
bahman:pr35134
bahman:pr35110
bahman:pr35100
bahman:pr35099
bahman:pr35044
bahman:pr35020
bahman:pr34972
bahman:pr34973
bahman:pr34995
bahman:export-D86593830
bahman:sapling-pr-archive-jbrown215
bahman:pr35041
bahman:pr34967
bahman:pr34963
bahman:pr34579
bahman:pr34580
bahman:pr34578
bahman:pr34577
bahman:pr34575
bahman:pr34574
bahman:pr34903
bahman:pr34904
bahman:pr34887
bahman:pr34900
bahman:pr34855
bahman:pr34882
bahman:pr34868
bahman:gh/josephsavona/78/base
bahman:pr34865
bahman:pr34847
bahman:pr34717
bahman:drop-plugin-private-methods
bahman:pr34715
bahman:pr34714
bahman:pr34689
bahman:pr34503
bahman:pr34637
bahman:pr34497
bahman:pr34576
bahman:pr34588
bahman:pr34586
bahman:pr34568
bahman:pr34562
bahman:pr34561
bahman:pr34560
bahman:pr34559
bahman:pr34570
bahman:pr34557
bahman:pr34558
bahman:pr34527
bahman:pr34521
bahman:pr34492
bahman:pr34437
bahman:pr34449
bahman:pr34442
bahman:pr34391
bahman:pr34448
bahman:pr34390
bahman:pr34447
bahman:pr34389
bahman:pr34445
bahman:pr34446
bahman:pr34388
bahman:pr34444
bahman:pr34387
bahman:pr34443
bahman:pr34386
bahman:pr34385
bahman:pr34441
bahman:pr34384
bahman:pr34440
bahman:pr34424
bahman:pr34434
bahman:pr34318
bahman:pr34410
bahman:naturally-unintelligent
bahman:pr34406
bahman:pr34392
bahman:pr34346
bahman:pr34347
bahman:pr34345
bahman:pr34343
bahman:pr34335
bahman:pr34027
bahman:rewrite-validation
bahman:pr33643
bahman:pr33642
bahman:pr33650
bahman:pr34276
bahman:pr34323
bahman:pr34298
bahman:pr34260
bahman:pr34176
bahman:pr34246
bahman:pr34175
bahman:pr34029
bahman:pr34028
bahman:pr34126
bahman:pr34140
bahman:pr34139
bahman:pr34173
bahman:pr34134
bahman:pr34133
bahman:pr34100
bahman:pr34125
bahman:pr34124
bahman:pr33647
bahman:pr34121
bahman:fix-no-new-line-before-error-stacks-in-console-errors
bahman:pr34049
bahman:pr34047
bahman:pr34043
bahman:pr34026
bahman:pr34025
bahman:pr34024
bahman:pr34005
bahman:pr34004
bahman:pr34006
bahman:pr34003
bahman:pr34000
bahman:pr33993
bahman:pr33991
bahman:pr33984
bahman:pr33981
bahman:pr33777
bahman:pr33767
bahman:pr33765
bahman:pr33760
bahman:pr33758
bahman:pr33759
bahman:pr33751
bahman:pr33752
bahman:pr33753
bahman:release/19.1.1
bahman:pr33748
bahman:pr33750
bahman:pr33747
bahman:pr33746
bahman:pr33740
bahman:pr33726
bahman:pr33725
bahman:mcp-sync-refactor
bahman:pr33624
bahman:pr33625
bahman:pr33626
bahman:pr33640
bahman:pr33584
bahman:pr33547
bahman:pr33558
bahman:pr33571
bahman:pr33543
bahman:pr33530
bahman:pr33532
bahman:pr33533
bahman:pr33518
bahman:pr33522
bahman:pr33526
bahman:pr33514
bahman:pr33573
bahman:pr33513
bahman:pr33496
bahman:pr33497
bahman:pr33500
bahman:pr33504
bahman:pr33512
bahman:pr33495
bahman:pr33494
bahman:pr33572
bahman:mcp-custom-track-tool
bahman:pr33509
bahman:pr33493
bahman:pr33492
bahman:gh/josephsavona/122/orig
bahman:gh/josephsavona/122/head
bahman:gh/josephsavona/121/head
bahman:gh/josephsavona/121/orig
bahman:gh/josephsavona/122/base
bahman:gh/josephsavona/121/base
bahman:gh/josephsavona/120/orig
bahman:gh/josephsavona/120/base
bahman:gh/josephsavona/120/head
bahman:gh/josephsavona/119/orig
bahman:gh/josephsavona/119/head
bahman:gh/josephsavona/119/base
bahman:gh/josephsavona/118/head
bahman:gh/josephsavona/118/orig
bahman:gh/josephsavona/118/base
bahman:gh/josephsavona/117/orig
bahman:gh/josephsavona/117/head
bahman:gh/josephsavona/117/base
bahman:gh/josephsavona/116/orig
bahman:gh/josephsavona/116/base
bahman:gh/josephsavona/116/head
bahman:gh/josephsavona/115/head
bahman:gh/josephsavona/115/orig
bahman:gh/josephsavona/115/base
bahman:gh/josephsavona/114/head
bahman:gh/josephsavona/114/orig
bahman:gh/josephsavona/114/base
bahman:gh/josephsavona/113/head
bahman:gh/josephsavona/113/orig
bahman:gh/josephsavona/113/base
bahman:gh/josephsavona/112/head
bahman:gh/josephsavona/112/orig
bahman:gh/josephsavona/112/base
bahman:gh/josephsavona/111/head
bahman:gh/josephsavona/111/orig
bahman:gh/josephsavona/111/base
bahman:gh/josephsavona/110/head
bahman:gh/josephsavona/110/orig
bahman:gh/josephsavona/110/base
bahman:gh/josephsavona/109/head
bahman:gh/josephsavona/109/orig
bahman:gh/josephsavona/109/base
bahman:gh/josephsavona/108/orig
bahman:gh/josephsavona/108/base
bahman:gh/josephsavona/108/head
bahman:gh/josephsavona/107/orig
bahman:gh/josephsavona/107/base
bahman:gh/josephsavona/107/head
bahman:gh/josephsavona/106/orig
bahman:gh/josephsavona/106/head
bahman:gh/josephsavona/106/base
bahman:gh/josephsavona/105/head
bahman:gh/josephsavona/105/orig
bahman:gh/josephsavona/105/base
bahman:gh/josephsavona/104/head
bahman:gh/josephsavona/104/orig
bahman:gh/josephsavona/104/base
bahman:gh/josephsavona/103/head
bahman:gh/josephsavona/103/orig
bahman:gh/josephsavona/103/base
bahman:gh/josephsavona/102/head
bahman:gh/josephsavona/102/orig
bahman:gh/josephsavona/102/base
bahman:gh/josephsavona/101/head
bahman:gh/josephsavona/101/orig
bahman:gh/josephsavona/101/base
bahman:gh/josephsavona/100/head
bahman:gh/josephsavona/100/orig
bahman:gh/josephsavona/100/base
bahman:gh/josephsavona/99/orig
bahman:gh/josephsavona/99/base
bahman:gh/josephsavona/99/head
bahman:gh/josephsavona/98/head
bahman:gh/josephsavona/98/orig
bahman:gh/josephsavona/98/base
bahman:gh/josephsavona/97/orig
bahman:gh/josephsavona/97/base
bahman:gh/josephsavona/97/head
bahman:gh/josephsavona/96/head
bahman:gh/josephsavona/96/orig
bahman:gh/josephsavona/96/base
bahman:gh/josephsavona/95/head
bahman:gh/josephsavona/95/orig
bahman:gh/josephsavona/95/base
bahman:gh/josephsavona/94/head
bahman:gh/josephsavona/94/orig
bahman:gh/josephsavona/94/base
bahman:gh/josephsavona/92/head
bahman:gh/josephsavona/92/orig
bahman:gh/josephsavona/92/base
bahman:gh/josephsavona/93/orig
bahman:gh/josephsavona/93/base
bahman:gh/josephsavona/93/head
bahman:gh/josephsavona/87/orig
bahman:gh/josephsavona/87/base
bahman:gh/josephsavona/87/head
bahman:gh/josephsavona/86/orig
bahman:gh/josephsavona/86/base
bahman:gh/josephsavona/86/head
bahman:gh/josephsavona/85/head
bahman:gh/josephsavona/85/orig
bahman:gh/josephsavona/85/base
bahman:gh/josephsavona/84/head
bahman:gh/josephsavona/84/orig
bahman:gh/josephsavona/84/base
bahman:gh/josephsavona/83/orig
bahman:gh/josephsavona/83/head
bahman:gh/josephsavona/83/base
bahman:gh/josephsavona/82/orig
bahman:gh/josephsavona/82/base
bahman:gh/josephsavona/82/head
bahman:gh/josephsavona/81/head
bahman:gh/josephsavona/81/orig
bahman:gh/josephsavona/81/base
bahman:gh/josephsavona/80/orig
bahman:gh/josephsavona/80/base
bahman:gh/josephsavona/80/head
bahman:gh/josephsavona/79/orig
bahman:gh/josephsavona/79/base
bahman:gh/josephsavona/79/head
bahman:component-tree-tool
bahman:pr33383
bahman:revert-33357-pr33357
bahman:mmv-tcf-01
bahman:pr33328
bahman:pr33326
bahman:pr32286
bahman:pr33325
bahman:pr33310
bahman:gh/josephsavona/91/orig
bahman:gh/josephsavona/91/base
bahman:gh/josephsavona/91/head
bahman:gh/josephsavona/90/base
bahman:gh/josephsavona/90/head
bahman:gh/josephsavona/90/orig
bahman:gh/josephsavona/89/orig
bahman:gh/josephsavona/89/head
bahman:gh/josephsavona/88/orig
bahman:gh/josephsavona/88/head
bahman:gh/josephsavona/89/base
bahman:gh/josephsavona/88/base
bahman:pr33148
bahman:pr33149
bahman:pr33147
bahman:pr33146
bahman:pr33145
bahman:pr33144
bahman:improve-web-vitals
bahman:gh/mvitousek/42/head
bahman:gh/mvitousek/42/orig
bahman:gh/mvitousek/42/base
bahman:multi-form-submission-throw
bahman:gh/josephsavona/78/orig
bahman:gh/josephsavona/78/head
bahman:gh/josephsavona/72/head
bahman:gh/josephsavona/72/orig
bahman:gh/josephsavona/72/base
bahman:gh/josephsavona/71/head
bahman:gh/josephsavona/71/orig
bahman:gh/josephsavona/71/base
bahman:pr32765
bahman:pr32747
bahman:pr33071
bahman:pr33070
bahman:pr32099
bahman:pr33069
bahman:pr33047
bahman:pr32984
bahman:pr32991
bahman:pr33026
bahman:pr32829
bahman:pr32860
bahman:pr32780
bahman:pr32779
bahman:pr32769
bahman:pr32745
bahman:report-bug-fr-with-logs
bahman:pr32661
bahman:pr32662
bahman:pr32615
bahman:repro-bug-fr
bahman:pr32521
bahman:pr32522
bahman:pr32593
bahman:pr32594
bahman:pr32595
bahman:pr32596
bahman:pr32524
bahman:pr32520
bahman:eslint-plugin-react-hooks-5.x
bahman:gh-pages
bahman:constant-propagation-ternary
bahman:gh/josephsavona/70/head
bahman:gh/josephsavona/70/orig
bahman:gh/josephsavona/70/base
bahman:gh/josephsavona/69/orig
bahman:gh/josephsavona/69/head
bahman:gh/josephsavona/69/base
bahman:gh/josephsavona/68/orig
bahman:gh/josephsavona/68/head
bahman:gh/josephsavona/67/head
bahman:gh/josephsavona/67/orig
bahman:gh/josephsavona/68/base
bahman:gh/josephsavona/67/base
bahman:gh/josephsavona/66/head
bahman:gh/josephsavona/66/orig
bahman:gh/josephsavona/66/base
bahman:gh/josephsavona/65/head
bahman:gh/josephsavona/65/orig
bahman:gh/josephsavona/65/base
bahman:gh/josephsavona/64/head
bahman:gh/josephsavona/64/orig
bahman:pr32012
bahman:gh/josephsavona/64/base
bahman:sync-nextjs-13
bahman:sync-nextjs-14
bahman:gh/josephsavona/63/head
bahman:gh/josephsavona/63/orig
bahman:gh/josephsavona/63/base
bahman:gh/mvitousek/41/orig
bahman:gh/mvitousek/41/head
bahman:gh/mvitousek/40/orig
bahman:gh/mvitousek/40/base
bahman:gh/mvitousek/40/head
bahman:gh/mvitousek/41/base
bahman:sync-nextjs-15
bahman:mofeiZ-effect-deps-refactor
bahman:gh/josephsavona/62/orig
bahman:gh/josephsavona/62/head
bahman:gh/josephsavona/61/head
bahman:gh/josephsavona/61/orig
bahman:gh/josephsavona/62/base
bahman:gh/josephsavona/61/base
bahman:gh/josephsavona/60/base
bahman:gh/josephsavona/60/head
bahman:gh/josephsavona/60/orig
bahman:gh/josephsavona/59/head
bahman:gh/josephsavona/59/orig
bahman:gh/josephsavona/59/base
bahman:pr31584
bahman:gh/josephsavona/58/orig
bahman:gh/josephsavona/58/head
bahman:gh/josephsavona/58/base
bahman:revert-31432-pr31432
bahman:sophiebits--lastFullyObservedContext
bahman:rh/fire
bahman:mofeiZ/30/base
bahman:gh/mofeiZ/32/head
bahman:gh/mofeiZ/31/head
bahman:gh/mofeiZ/32/base
bahman:gh/mofeiZ/30/head
bahman:gh/mofeiZ/31/base
bahman:gh/mofeiZ/29/head
bahman:gh/mofeiZ/30/base
bahman:gh/mofeiZ/28/head
bahman:gh/mofeiZ/29/base
bahman:gh/mofeiZ/27/head
bahman:gh/mofeiZ/28/base
bahman:gh/mofeiZ/26/head
bahman:gh/mofeiZ/27/base
bahman:gh/mofeiZ/25/base
bahman:gh/mofeiZ/25/head
bahman:gh/mofeiZ/25/orig
bahman:gh/mofeiZ/24/head
bahman:gh/mofeiZ/24/orig
bahman:gh/mofeiZ/24/base
bahman:gh/mofeiZ/23/head
bahman:gh/mofeiZ/17/base
bahman:gh/mofeiZ/17/head
bahman:gh/mofeiZ/17/orig
bahman:gh/mofeiZ/23/base
bahman:gh/mofeiZ/23/orig
bahman:gh/josephsavona/57/orig
bahman:gh/josephsavona/57/head
bahman:gh/josephsavona/57/base
bahman:gh/mvitousek/37/orig
bahman:gh/mvitousek/37/base
bahman:gh/mvitousek/37/head
bahman:gh/mvitousek/36/orig
bahman:gh/mvitousek/36/base
bahman:gh/mvitousek/36/head
bahman:gh/mvitousek/35/head
bahman:gh/mvitousek/35/orig
bahman:gh/mvitousek/35/base
bahman:gh/mvitousek/34/head
bahman:gh/mvitousek/34/orig
bahman:gh/mvitousek/34/base
bahman:gh/mvitousek/33/head
bahman:gh/mvitousek/33/orig
bahman:gh/mvitousek/33/base
bahman:gh/josephsavona/56/head
bahman:gh/josephsavona/56/orig
bahman:gh/mvitousek/31/orig
bahman:gh/mvitousek/31/head
bahman:gh/mvitousek/30/orig
bahman:gh/mvitousek/30/base
bahman:gh/mvitousek/30/head
bahman:gh/mvitousek/26/orig
bahman:gh/mvitousek/26/head
bahman:gh/mvitousek/31/base
bahman:gh/mvitousek/28/orig
bahman:gh/mvitousek/28/head
bahman:gh/mvitousek/28/base
bahman:gh/mvitousek/24/orig
bahman:gh/mvitousek/24/head
bahman:gh/mvitousek/24/base
bahman:gh/josephsavona/56/base
bahman:gh/mvitousek/26/base
bahman:gh/mofeiZ/14/base
bahman:gh/mofeiZ/14/head
bahman:gh/josephsavona/54/head
bahman:gh/josephsavona/54/orig
bahman:gh/josephsavona/54/base
bahman:gh/mofeiZ/26/base
bahman:gh/josephsavona/53/orig
bahman:gh/josephsavona/53/head
bahman:gh/josephsavona/53/base
bahman:gh/josephsavona/52/base
bahman:gh/josephsavona/52/head
bahman:gh/josephsavona/52/orig
bahman:gh/josephsavona/51/head
bahman:gh/josephsavona/51/orig
bahman:gh/josephsavona/51/base
bahman:gh/josephsavona/46/orig
bahman:gh/josephsavona/46/head
bahman:gh/josephsavona/46/base
bahman:gh/josephsavona/40/orig
bahman:gh/josephsavona/40/head
bahman:gh/josephsavona/40/base
bahman:gh/josephsavona/39/base
bahman:gh/josephsavona/39/head
bahman:gh/josephsavona/39/orig
bahman:gh/mvitousek/22/orig
bahman:gh/mvitousek/22/head
bahman:gh/mvitousek/22/base
bahman:gh/mvitousek/081424
bahman:sebbie/react-markup/publishable
bahman:gh/josephsavona/35/head
bahman:gh/josephsavona/35/orig
bahman:gh/mvitousek/080824c
bahman:gh/mvitousek/080824b
bahman:gh/josephsavona/35/base
bahman:gh/mvitousek/080824a
bahman:gh/mvitousek/080824
bahman:gh/mvitousek/19/head
bahman:gh/mvitousek/19/orig
bahman:gh/mvitousek/19/base
bahman:gh/mvitousek/21/orig
bahman:gh/mvitousek/21/head
bahman:gh/mvitousek/21/base
bahman:gh/josephsavona/32/base
bahman:gh/josephsavona/32/head
bahman:gh/josephsavona/32/orig
bahman:gh/mvitousek/17/head
bahman:gh/mvitousek/17/orig
bahman:gh/mvitousek/17/base
bahman:gh/mvitousek/13/head
bahman:gh/mvitousek/13/orig
bahman:gh/mvitousek/13/base
bahman:gh/mvitousek/12/head
bahman:gh/mvitousek/12/orig
bahman:gh/mvitousek/12/base
bahman:gh/mvitousek/16/head
bahman:gh/mvitousek/16/orig
bahman:gh/mvitousek/16/base
bahman:gh/mvitousek/15/orig
bahman:gh/mvitousek/15/base
bahman:gh/mvitousek/15/head
bahman:gh/mvitousek/14/orig
bahman:gh/mvitousek/14/base
bahman:gh/mvitousek/14/head
bahman:gh/mofeiZ/13/orig
bahman:gh/mofeiZ/13/head
bahman:gh/mofeiZ/13/base
bahman:gh/mofeiZ/11/orig
bahman:gh/mofeiZ/11/head
bahman:gh/mofeiZ/11/base
bahman:gh/mofeiZ/8/base
bahman:gh/mofeiZ/8/head
bahman:gh/mofeiZ/8/orig
bahman:gh/mvitousek/11/head
bahman:gh/mvitousek/11/orig
bahman:gh/mvitousek/11/base
bahman:gh/mvitousek/10/head
bahman:gh/mvitousek/10/orig
bahman:gh/mvitousek/10/base
bahman:gh/mvitousek/9/orig
bahman:gh/mvitousek/9/base
bahman:gh/mvitousek/9/head
bahman:gh/mvitousek/8/orig
bahman:gh/mvitousek/8/head
bahman:gh/mvitousek/8/base
bahman:gh/mvitousek/7/orig
bahman:gh/mvitousek/7/head
bahman:gh/mvitousek/6/orig
bahman:gh/mvitousek/6/head
bahman:gh/mvitousek/7/base
bahman:gh/mvitousek/5/orig
bahman:gh/mvitousek/5/head
bahman:gh/mvitousek/6/base
bahman:gh/mvitousek/4/head
bahman:gh/mvitousek/4/base
bahman:gh/mvitousek/5/base
bahman:gh/mofeiZ/9/orig
bahman:gh/mofeiZ/9/head
bahman:gh/mofeiZ/9/base
bahman:gh/josephsavona/31/head
bahman:gh/josephsavona/31/orig
bahman:gh/josephsavona/31/base
bahman:rh/fix-tests
bahman:dev-tools-dynamic-auto-theme
bahman:sync-nextjs
bahman:gh/josephsavona/27/orig
bahman:gh/josephsavona/19/base
bahman:gh/josephsavona/19/head
bahman:gh/josephsavona/19/orig
bahman:gh/josephsavona/27/base
bahman:gh/josephsavona/27/head
bahman:gh/josephsavona/15/base
bahman:gh/josephsavona/15/head
bahman:gh/josephsavona/15/orig
bahman:gh/josephsavona/21/head
bahman:gh/josephsavona/21/orig
bahman:gh/josephsavona/21/base
bahman:gh/josephsavona/24/orig
bahman:gh/josephsavona/23/orig
bahman:gh/josephsavona/24/head
bahman:gh/josephsavona/23/head
bahman:gh/josephsavona/24/base
bahman:gh/josephsavona/23/base
bahman:jbonta_hover
bahman:gh/josephsavona/18/orig
bahman:gh/josephsavona/18/head
bahman:gh/josephsavona/18/base
bahman:18-3-1
bahman:18-3
bahman:rh/test-28807
bahman:cleanup-unified-sync-lane-flag
bahman:rh/fix-rn-sync
bahman:ty/rn-console-error-recoverable
bahman:rh/fix-main-2024-2
bahman:noahlemen/userland-memo
bahman:issues/27670
bahman:rm-renderable-ctx-flag
bahman:ty-revert-26549
bahman:rh/strict-modern
bahman:update-attribute-fixture
bahman:ty-rh-defaut-raf-update
bahman:ty/acdlite-infinite-update-loop-guard-test
bahman:ty/rules-of-hooks-in-optional-chaining
bahman:rh/add-offscreen-test
bahman:rh/infinite-bug
bahman:rh/repro-effect-issue
bahman:ty-inifinite-loop-regression
bahman:ty-custom-events-inherit-outer-events
bahman:ty-flush-continuous-before-discrete
bahman:ty-add-regression-test
bahman:nov-main-trigger
bahman:ty-merge-default-to-sync
bahman:rb/persist-profile-test
bahman:devtools_4.26.1
bahman:strict-mode-do-not-disconnect-passive-effects
bahman:put-use-hook-behind-flag
bahman:offscreen-manual-mode-detach
bahman:tracing_markers
bahman:user_error_view_1
bahman:fabric-cleanup
bahman:circleci-editor/master
bahman:17.0.2
bahman:17.0.1
bahman:17.0.0-dev
bahman:old-majors
bahman:sim
bahman:leg
bahman:portals
bahman:fabric-focus-blur
bahman:walaura-eslint-plugin
bahman:unrevert
bahman:devtools-v4-merge
bahman:16.8.6
bahman:16.8.5
bahman:16.8.4
bahman:16.8.3
bahman:top-setnativeprops
bahman:16.3-dev
bahman:yeswork
bahman:radio-click
bahman:16.4.2-dev
bahman:is-renderable
bahman:15.6-dev
bahman:15-stable
bahman:0.14-stable
bahman:0.13-stable
bahman:0.12-stable
bahman:0.11-stable
bahman:0.10-stable
bahman:0.9-stable
bahman:0.8-stable
bahman:0.5-stable
bahman:0.4-stable
bahman:0.3-stable
bahman:eslint-plugin-react-hooks@7.1.1
bahman:eslint-plugin-react-hooks@7.1.0
bahman:v19.0.5
bahman:v19.1.6
bahman:v19.2.5
bahman:v19.2.4
bahman:v19.1.5
bahman:v19.0.4
bahman:v19.0.3
bahman:v19.1.4
bahman:v19.2.3
bahman:v19.0.2
bahman:v19.1.3
bahman:v19.2.2
bahman:v19.0.1
bahman:v19.1.2
bahman:v19.2.1
bahman:v19.2.0
bahman:v19.1.1
bahman:v19.1.0
bahman:v19.0.0
bahman:eslint-plugin-react-hooks@5.0.0
bahman:v18.3.1
bahman:v18.3.0
bahman:v18.2.0
bahman:v18.1.0
bahman:v18.0.0
bahman:v17.0.2
bahman:v0.0.0-experimental-27659559e
bahman:v17.0.1
bahman:v17.0.0
bahman:v16.14.0
bahman:v15.7.0
bahman:0.14.10
bahman:v0.0.0-d7382b6c4
bahman:v0.0.0-experimental-d7382b6c4
bahman:v16.13.1
bahman:v0.0.0-experimental-aae83a4b9
bahman:v0.0.0-experimental-8b155d261
bahman:v16.13.0
bahman:v16.12.0
bahman:v16.11.0
bahman:status
bahman:v16.10.2
bahman:v16.10.1
bahman:v16.10.0
bahman:v16.9.0
bahman:v16.9.0-rc.0
bahman:v16.9.0-alpha.0
bahman:1.2.5
bahman:v16.8.6
bahman:v16.8.5
bahman:v16.8.4
bahman:v16.8.3
bahman:v16.8.2
bahman:v16.8.1
bahman:v16.8.0
bahman:v16.8.0-alpha.1
bahman:v16.7.0
bahman:v0.0.0-88ada9819
bahman:v16.7.0-alpha.1
bahman:v16.6.3
bahman:v16.6.1
bahman:v16.6.0
bahman:v16.6.0-alpha.8af6728
bahman:v16.6.0-alpha.400d197
bahman:v16.5.2
bahman:v16.6.0-alpha.0
bahman:v16.5.1
bahman:v16.5.0
bahman:v16.4.2
bahman:v16.4.1
bahman:v16.4.0
bahman:v16.3.2
bahman:v16.3.1
bahman:v16.3.0
bahman:v16.3.0-rc.0
bahman:v16.3.0-alpha.3
bahman:v16.3.0-alpha.2
bahman:v16.4.0-alpha.94a255d
bahman:v16.4.0-alpha.5a25959
bahman:v16.4.0-alpha.16.4.0-alpha.7926752
bahman:v16.3.0-alpha.1
bahman:v16.3.0-alpha.0
bahman:v16.2.0
bahman:v16.1.1
bahman:v16.1.0
bahman:16.1.0
bahman:16.1.0-rc
bahman:16.1.0-beta.1
bahman:16.1.0-beta
bahman:v16.0.0
bahman:v15.6.2
bahman:v16.0.0-rc.2
bahman:v16.0.0-rc.1
bahman:16.0.0-beta.5
bahman:16.0.0-beta.4
bahman:16.0.0-beta.3
bahman:16.0.0-beta.1
bahman:v15.6.1
bahman:v15.6.0
bahman:v15.5.4
bahman:v15.5.3
bahman:v15.5.2
bahman:v15.5.1
bahman:v15.5.0
bahman:15.3.2
bahman:v16.0.0-alpha.4
bahman:v16.0.0-alpha.3
bahman:v15.4.2
bahman:v15.4.1
bahman:v15.4.0
bahman:v15.4.0-rc.3
bahman:v15.3.2
bahman:15.3.1
bahman:v15.3.1
bahman:v15.3.0
bahman:v15.2.1
bahman:v15.2.0
bahman:v15.1.0
bahman:v15.0.2
bahman:v15.0.1
bahman:v15.0.0
bahman:v0.14.8
bahman:v15.0.0-rc.2
bahman:v15.0.0-rc.1
bahman:v0.14.7
bahman:v0.14.6
bahman:v0.14.5
bahman:v0.14.4
bahman:v0.14.3
bahman:v0.14.2
bahman:v0.14.1
bahman:v0.14.0
bahman:v0.14.0-rc1
bahman:v0.14.0-beta3
bahman:v0.14.0-beta2
bahman:v0.14.0-beta1
bahman:v0.13.3
bahman:v0.13.2
bahman:v0.13.1
bahman:v0.13.0
bahman:v0.13.0-rc2
bahman:v0.13.0-rc1
bahman:v0.12.2
bahman:v0.12.1
bahman:v0.12.0
bahman:v0.12.0-rc1
bahman:v0.11.2
bahman:v0.11.1
bahman:v0.11.0
bahman:v0.11.0-rc1
bahman:v0.10.0
bahman:v0.10.0-rc1
bahman:v0.9.0
bahman:v0.9.0-rc1
bahman:v0.8.0
bahman:v0.5.2
bahman:v0.4.2
bahman:v0.5.1
bahman:v0.5.0
bahman:v0.4.1
bahman:v0.4.0
bahman:v0.3.3
bahman:v0.3.0
17 Commits
v19.0.1
...
gh/mofeiZ/
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c088ad09f1 |
Update base for Update on "[compiler][rewrite] PropagateScopeDeps hir rewrite"
\### Quick background:
\#### Rvalues / temporaries:
In the compiler, unnamed temporaries that represents the evaluation of an expression
In the code snippet below, $1, $2, $3, and $4 are temporaries.
```js
// input
function Component({ bar} ) {
const x = {a: foo(bar), b: {}};
}
// gets lowered to
[1] $2 = LoadGlobal(global) foo
[2] $3 = LoadLocal bar$1
[3] $4 = Call $2(<unknown> $3)
[4] $5 = Object { }
[5] $6 = Object { a: $4, b: $5 }
[6] $8 = StoreLocal Const x$7 = $6
```
The compiler currently treats temporaries and named variables (e.g. `x`) differently in this pass.
- named variables may be reassigned (in fact, since we're running after LeaveSSA, a single named identifier's IdentifierId may map to multiple `Identifier` instances -- each with its own scope and mutable range)
- temporaries are replaced with their represented expressions during codegen. This is correct (mostly correct, see #29878) as we're careful to always lower the correct evaluation semantics. However, since we rewrite reactive scopes entirely (to if/else blocks), we need to track temporaries that a scope produces in `ReactiveScope.declarations` and later promote them to named variables.
In the same example, $4, $5, and $6 need to be promoted: $2 ->`t0`, $5 ->`t1`, and $6 ->`t2`.
```js
[1] $2 = LoadGlobal(global) foo
[2] $3 = LoadLocal bar$1
scope 0:
[3] $4 = Call $2(<unknown> $3)
scope 1:
[4] $5 = Object { }
scope 2:
[5] $6 = Object { a: $4, b: $5 }
[6] $8 = StoreLocal Const x$7 = $6
```
\#### Dependencies
`ReactiveScope.dependencies` records the set of (read-only) values that a reactive scope is dependent on. This is currently limited to just variables (named variables from source and promoted temporaries) and property-loads.
All dependencies we record need to be hoistable -- i.e. reordered to just before the ReactiveScope begins. Not all PropertyLoads are hoistable.
In this example, we should not evaluate `obj.a.b` without before creating x and checking `objIsNull`.
```js
// reduce-reactive-deps/no-uncond.js
function useFoo({ obj, objIsNull }) {
const x = [];
if (isFalse(objIsNull)) {
x.push(obj.a.b);
}
return x;
}
```
While other memoization strategies with different constraints exist, the current compiler requires that `ReactiveScope.dependencies` be re-orderable to the beginning of the reactive scope. But.. `PropertyLoad`s from null values will throw `TypeError`. This means that evaluating hoisted dependencies should throw if and only if the source program throws. (It is also a bug if source throws and compiler output does not throw. See https://github.com/facebook/react-forget/pull/2709)
---
\### Rough high level overview
1. Pass 1
Walk over instructions to gather every temporary used outside of its defining scope (same as ReactiveFunction version). These determine the sidemaps we produce, as temporaries used outside of their declaring scopes get promoted to named variables later (and are not considered hoistable rvals).
2. Pass 2 (collectHoistablePropertyLoads)
Walk over instructions to generate sidemaps:
a. temporary identifier -> named variable and property path (e.g. `$3 -> {obj: props, path: ["a", "b"]}`)
b. block -> accessed variables and properties (e.g. `bb0 -> [ {obj: props, path: ["a", "b"]} ]`)
c. Walk over control flow graph to understand the set of object and property paths that can be read by each basic block. This analysis:
- relies on post-dominator trees
- traverses the CFG from entry (producing the set of variables/paths unconditionally evaluated *before* a block).
- traverses the CFG from exit (producing the set of variables/paths unconditionally evaluated *after* a block).
4. Pass 3: (collectDependencies)
Walks over instructions again to record dependencies and declarations, using the previously produced sidemaps
Will add more fixture tests (although most cases should be covered in `reduce-reactive-deps`).
Tested by syncing internally and checking compilation output differences ([internal link](https://fburl.com/wiki_markdown/nazsiszd))
---
\### Followups:
1. Rewrite function expression deps
This change produces much more optimal output as the compiler now uses the function CFG to understand which variables / paths are assumed to be non-null. However, it may exacerbate [this function-expr hoisting bug](https://github.com/facebook/react/blob/main/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/bug-invalid-hoisting-functionexpr.ts). A short term fix here is to simply call some form of `collectNonNullObjects` on every function expression to find hoistable variable / paths. In the longer term, we should refactor out `FunctionExpression.deps`.
2. Enable optional paths
(a) don't count optional load temporaries as dependencies (e.g. `collectOptionalLoadRValues(...)`).
(b) add optional paths back. This is a bit tricky as we'll want to implement some merging logic for `ConditionalAccess | OptionalChain | UnconditionalAccess`. In addition, our current optional chain lowering is slightly incorrect / imprecise
[ghstack-poisoned]
|
||
|
|
2c9fdc4838 |
[compiler][ez] PrintHIR prints optional flag for debugging
[ghstack-poisoned] |
||
|
|
79198b0cd7 |
[compiler][patch] Patch O(n^2) traversal in validatePreserveMemo
[ghstack-poisoned] |
||
|
|
f8026d06f5 |
[compiler][hir] Correctly remove non-existent terminal preds when pruning labels
[ghstack-poisoned] |
||
|
|
f399ed896b |
[compiler][ez] Add more Array.prototype methods
[ghstack-poisoned] |
||
|
|
1c55d8810f |
[compiler][ez] Patch Array.concat object shape to capture callee
[ghstack-poisoned] |
||
|
|
a2f6bbe6a4 |
Update on "[compiler][rewrite] Patch logic for aligning scopes to non-value blocks"
Our previous logic for aligning scopes to block scopes constructs a tree of block and scope nodes. We ensured that blocks always mapped to the same node as their fallthroughs. e.g.
```js
// source
a();
if (...) {
b();
}
c();
// HIR
bb0:
a()
if test=... consequent=bb1 fallthrough=bb2
bb1:
b()
goto bb2
bb2:
c()
// AlignReactiveScopesToBlockScopesHIR nodes
Root node (maps to both bb0 and bb2)
|- bb1
|- ...
```
There are two issues with the existing implementation:
1. Only scopes that overlap with the beginning of a block are aligned correctly. This is because the traversal does not store information about the block-fallthrough pair for scopes that begin *within* the block-fallthrough range.
```
\# This case gets handled correctly
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
\# But not this one!
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
```
2. Only scopes that are directly used by a block is considered. See the `align-scopes-nested-block-structure` fixture for details.
[ghstack-poisoned]
|
||
|
|
f8855cfd1e |
Update base for Update on "[compiler][rewrite] Patch logic for aligning scopes to non-value blocks"
Our previous logic for aligning scopes to block scopes constructs a tree of block and scope nodes. We ensured that blocks always mapped to the same node as their fallthroughs. e.g.
```js
// source
a();
if (...) {
b();
}
c();
// HIR
bb0:
a()
if test=... consequent=bb1 fallthrough=bb2
bb1:
b()
goto bb2
bb2:
c()
// AlignReactiveScopesToBlockScopesHIR nodes
Root node (maps to both bb0 and bb2)
|- bb1
|- ...
```
There are two issues with the existing implementation:
1. Only scopes that overlap with the beginning of a block are aligned correctly. This is because the traversal does not store information about the block-fallthrough pair for scopes that begin *within* the block-fallthrough range.
```
\# This case gets handled correctly
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
\# But not this one!
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
```
2. Only scopes that are directly used by a block is considered. See the `align-scopes-nested-block-structure` fixture for details.
[ghstack-poisoned]
|
||
|
|
b718a77516 |
Update on "[compiler][rewrite] Patch logic for aligning scopes to non-value blocks"
Our previous logic for aligning scopes to block scopes constructs a tree of block and scope nodes. We ensured that blocks always mapped to the same node as their fallthroughs. e.g.
```js
// source
a();
if (...) {
b();
}
c();
// HIR
bb0:
a()
if test=... consequent=bb1 fallthrough=bb2
bb1:
b()
goto bb2
bb2:
c()
// AlignReactiveScopesToBlockScopesHIR nodes
Root node (maps to both bb0 and bb2)
|- bb1
|- ...
```
There are two issues with the existing implementation:
1. Only scopes that overlap with the beginning of a block are aligned correctly. This is because the traversal does not store information about the block-fallthrough pair for scopes that begin *within* the block-fallthrough range.
```
\# This case gets handled correctly
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
\# But not this one!
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
```
2. Only scopes that are directly used by a block is considered. See the `align-scopes-nested-block-structure` fixture for details.
[ghstack-poisoned]
|
||
|
|
3fa1cceed8 |
Update base for Update on "[compiler][rewrite] Patch logic for aligning scopes to non-value blocks"
Our previous logic for aligning scopes to block scopes constructs a tree of block and scope nodes. We ensured that blocks always mapped to the same node as their fallthroughs. e.g.
```js
// source
a();
if (...) {
b();
}
c();
// HIR
bb0:
a()
if test=... consequent=bb1 fallthrough=bb2
bb1:
b()
goto bb2
bb2:
c()
// AlignReactiveScopesToBlockScopesHIR nodes
Root node (maps to both bb0 and bb2)
|- bb1
|- ...
```
There are two issues with the existing implementation:
1. Only scopes that overlap with the beginning of a block are aligned correctly. This is because the traversal does not store information about the block-fallthrough pair for scopes that begin *within* the block-fallthrough range.
```
\# This case gets handled correctly
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
\# But not this one!
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
```
2. Only scopes that are directly used by a block is considered. See the `align-scopes-nested-block-structure` fixture for details.
[ghstack-poisoned]
|
||
|
|
9194615949 |
Update on "[compiler][rewrite] Patch logic for aligning scopes to non-value blocks"
Our previous logic for aligning scopes to block scopes constructs a tree of block and scope nodes. We ensured that blocks always mapped to the same node as their fallthroughs. e.g.
```js
// source
a();
if (...) {
b();
}
c();
// HIR
bb0:
a()
if test=... consequent=bb1 fallthrough=bb2
bb1:
b()
goto bb2
bb2:
c()
// AlignReactiveScopesToBlockScopesHIR nodes
Root node (maps to both bb0 and bb2)
|- bb1
|- ...
```
There are two issues with the existing implementation:
1. Only scopes that overlap with the beginning of a block are aligned correctly. This is because the traversal does not store information about the block-fallthrough pair for scopes that begin *within* the block-fallthrough range.
```
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
```
2. Only scopes that are directly used by a block is considered. See the `align-scopes-nested-block-structure` fixture for details.
[ghstack-poisoned]
|
||
|
|
d720486b12 |
Update base for Update on "[compiler][rewrite] Patch logic for aligning scopes to non-value blocks"
Our previous logic for aligning scopes to block scopes constructs a tree of block and scope nodes. We ensured that blocks always mapped to the same node as their fallthroughs. e.g.
```js
// source
a();
if (...) {
b();
}
c();
// HIR
bb0:
a()
if test=... consequent=bb1 fallthrough=bb2
bb1:
b()
goto bb2
bb2:
c()
// AlignReactiveScopesToBlockScopesHIR nodes
Root node (maps to both bb0 and bb2)
|- bb1
|- ...
```
There are two issues with the existing implementation:
1. Only scopes that overlap with the beginning of a block are aligned correctly. This is because the traversal does not store information about the block-fallthrough pair for scopes that begin *within* the block-fallthrough range.
```
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
┌──────────────┐
│ │
block start block end
scope start scope end
│ │
└───────────────┘
```
2. Only scopes that are directly used by a block is considered. See the `align-scopes-nested-block-structure` fixture for details.
[ghstack-poisoned]
|
||
|
|
1ba72191a5 |
Update on "[compiler][draft] Patch logic for aligning scopes to non-value blocks"
[ghstack-poisoned] |
||
|
|
2d6a434df5 |
[compiler][draft] Patch logic for aligning scopes to non-value blocks
[ghstack-poisoned] |
||
|
|
bec373555a |
Update on "[compiler][fixtures] test repros: codegen, alignScope, phis"
The AlignReactiveScope bug should be simplest to fix, but it's also caught by an invariant assertion. I think a fix could be either keeping track of "active" block-fallthrough pairs (`retainWhere(pair => pair.range.end > current.instr[0].id)`) or following the approach in `assertValidBlockNesting`. I'm tempted to pull the value-block aligning logic out into its own pass (using the current `node` tree traversal), then align to non-value blocks with the `assertValidBlockNesting` approach. Happy to hear feedback on this though! The other two are likely bigger issues, as they're not caught by static invariants. Update: - removed bug-phi-reference-effect as it's been patched by josephsavona - added bug-array-concat-should-capture [ghstack-poisoned] |
||
|
|
0bceafbe97 |
Update base for Update on "[compiler][fixtures] test repros: codegen, alignScope, phis"
The AlignReactiveScope bug should be simplest to fix, but it's also caught by an invariant assertion. I think a fix could be either keeping track of "active" block-fallthrough pairs (`retainWhere(pair => pair.range.end > current.instr[0].id)`) or following the approach in `assertValidBlockNesting`. I'm tempted to pull the value-block aligning logic out into its own pass (using the current `node` tree traversal), then align to non-value blocks with the `assertValidBlockNesting` approach. Happy to hear feedback on this though! The other two are likely bigger issues, as they're not caught by static invariants. Update: - removed bug-phi-reference-effect as it's been patched by josephsavona - added bug-array-concat-should-capture [ghstack-poisoned] |
||
|
|
2827cbc594 |
[compiler][fixtures] Bug repros: codegen, alignScope, phis
[ghstack-poisoned] |