Skip to content

[Compiler Bug]: Using a hook from an object bundle makes Compiler skip the consuming hookΒ #34800

@dan-proudfoot-bots

Description

@dan-proudfoot-bots

What kind of issue is this?

  • React Compiler core (the JS output is incorrect, or your app works incorrectly after optimization)
  • babel-plugin-react-compiler (build issue installing or using the Babel plugin)
  • eslint-plugin-react-compiler (build issue installing or using the eslint plugin)
  • react-compiler-healthcheck (build issue installing or using the healthcheck script)

Link to repro

https://playground.react.dev/#N4Igzg9grgTgxgUxALhHCA7MAXABFMBAWQE8AxAQwzhIAkIIBrXAXlwAoBKVgPl2FwAdDLlzoseANoA3CgBsoCALqt8hAMrYK2BFwDcw4aJgJssEbIUJhAX0PVMOXAAsGjAEJQMAEzkJVwEZqxORUNPRMtvbC4k7eEOoQALamzgCWGADmZF5w2GmYquyWitwsfIEiuCZmMBbyirgA1LgAjAAMURgxjngECADCyQAOaX7eEcxsXLz8QbF4rkwAag3+bEseXr4IAHT9pJTUdG5c9sam5rjxiSnY6Vk51PmY7JurVpxdPRLBRAhJCBpQgTNxFMoVea9FxuD6NDZuTw+Pz7QiHMInJhnbpVGpXA4AiDsGbla4JZKpDLZXIvDBvWFrTgAGlwkneayUXwwNhATLQmAAZmlMigQGkksMIDA8NgSMN-AIAAoKTIZADyw1pYFwNlwApgyVwAHIAEYUE0IOQAWmGKoyVpMFDyVvQErGCBgAHpvMDsEaDDj2JVRJ7Pa7RnJtAUMEQIN4EMghCB5HJBCBbLgwFGwEKENrlVBVRgNVrOHpeeBXAB3ACSGB0dXkYBQ2BgihsQA

Repro steps

When using a hook that is bundled up into an object and then accessed through dot notation (const value = hookBundle.useSomeHook()) the compiler skips compilation for that function.

In the repro, see that no compilation is happening to the useCompiledHook hook. If you then remove hookBundle. on line 17, the compiler roars back into life.

With the same setup but using an actual useMemo (see the hook useMemoisedHook) the output is correctly compiled.

How often does this bug happen?

Every time

What version of React are you using?

19.2

What version of React Compiler are you using?

1.0.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions