Files
react/compiler/forget/package.json
T
Joseph SavonaandFacebook GitHub Bot 3158146989 POC of new expression-oriented inference model for memoization within control-flow (#589)
* [hir] Core data types and lowering for new model

* Handle more expressions, including using babel for binding resolution

* test setup with pretty printing of ir

* Basic codegen and improved pretty printing

* avoid else block when if has no fallthrough

* emit function declarations with mapped name/params

* start of scope analysis

* saving state pre-run

* add slightly more complex example and flush out lowering/printing (jsx, new, variables)

* Various improvements:
* Convert logical expressions (|| and &&) to control flow, accounting
  for lazy evaluation semantics.
* Handle expression statements
* Improve printing of HIR for unsupported node kinds
* Handle more cases of JSX by falling by to OtherStatement to wrap
  subtrees at coarse granularity.

* improve HIR printing, lowering of expression statements

* handle object expression printing

* improve IR model for values/places along w codegen

* more test cases

* start of mutability inference

* passable but still incorrect mutability inference

* improved mutability inference, should cover most cases now

* visualization of reference graph

* correctly flow mutability backwards (have to actually set the capability)

* separate visualization in output

* consolidate on frozen/readonly/mutable capabilities

* cleanup

* conditional reassignment test (not quite working)

* hack to output svg files for debugging

* handle conditional reassignment

* improve capture analysis

* treat jsx as (interior) mutable; handle memberexpression lvalues

* lots of comments; hook return is frozen

* update main comment

* inference for switch, which reveals a bug

* fix yarn.lock
2024-03-25 10:39:47 +00:00

62 lines
1.7 KiB
JSON

{
"name": "babel-plugin-react-forget",
"version": "0.0.1",
"description": "Babel plugin for React Forget.",
"main": "dist/index.js",
"license": "MIT",
"files": [
"src"
],
"scripts": {
"build": "tsc",
"bundle:meta": "scripts/bundle-meta.sh",
"dev": "concurrently \"yarn:build --watch\" \"yarn:playground\"",
"playground": "cd packages/playground && yarn && yarn dev",
"test": "yarn build && jest"
},
"repository": {
"type": "git",
"url": "git+https://github.com/huxpro/react-forget.git"
},
"dependencies": {
"@babel/plugin-syntax-jsx": "^7.18.6",
"invariant": "^2.2.4",
"pretty-format": "^24"
},
"devDependencies": {
"@babel/core": "^7.19.1",
"@babel/generator": "^7.19.0",
"@babel/parser": "^7.19.1",
"@babel/plugin-syntax-typescript": "^7.18.6",
"@babel/plugin-transform-block-scoping": "^7.18.9",
"@babel/plugin-transform-modules-commonjs": "^7.18.6",
"@babel/preset-react": "^7.18.6",
"@babel/preset-typescript": "^7.18.6",
"@babel/traverse": "^7.19.1",
"@babel/types": "^7.19.0",
"@hpcc-js/wasm": "^1.15.0",
"@testing-library/react": "^13.4.0",
"@tsconfig/node16-strictest": "^1.0.3",
"@types/invariant": "^2.2.35",
"@types/jest": "^29.0.3",
"@types/node": "^18.7.18",
"babel-jest": "^29.0.3",
"concurrently": "^7.4.0",
"jest": "^29.0.3",
"jest-environment-jsdom": "^29.0.3",
"prettier": "2.7.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"ts-jest": "^29.0.1",
"ts-node": "^10.9.1",
"typescript": "^4.8.3"
},
"resolutions": {
"./**/@babel/parser": "7.7.4",
"./**/@babel/types": "7.7.4",
"@babel/core": "7.2.0",
"@babel/generator": "7.2.0",
"@babel/traverse": "7.1.6"
}
}