Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement module-level memoization of inlined requires #1346

Closed
wants to merge 1 commit into from

Commits on Sep 6, 2024

  1. Implement module-level memoization of inlined requires

    Summary:
    A performance optimisation for `inlineRequries`, where we replace `const foo = require('./foo')` at top level with `var foo`, and replace subsequent references to `foo` with `(foo || foo = require('./foo')`.
    
    This differs from plain `inlineRequires` by the use of the memo variable, which (for modules that don't return a falsy value) saves calling into `require`, backed by `metroRequire`, and retrieving the previously-initialised module from a `Map` by its numeric ID.
    
    ```
     - **[Experimental]:** Implement `transformer.unstable_memoizeInlineRequires` to optimise inlined access.
    ```
    
    Reviewed By: javache
    
    Differential Revision: D62125134
    robhogan authored and facebook-github-bot committed Sep 6, 2024
    Configuration menu
    Copy the full SHA
    9bbdf3a View commit details
    Browse the repository at this point in the history