Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • C create-react-app
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,547
    • Issues 1,547
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 417
    • Merge requests 417
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Meta
  • create-react-app
  • Merge requests
  • !5278

Disable Symbol typeof transform

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge disable-typeof into master Oct 03, 2018
  • Overview 1
  • Commits 1
  • Pipelines 0
  • Changes 2

Created by: gaearon

I think leaving it on was a mistake. It causes some issues (https://github.com/facebook/create-react-app/issues/5267), but more fundamentally, it's a leaky abstraction. It tries to make typeof behave to return 'symbol' for Symbols by hijacking every single typeof. This leads to slowing down all code for the benefit of edge cases that likely won't work 100% correctly anyway. It definitely makes React slower (I've measured this before).

I considered disabling it just for node_modules at first. But I don't see good reasons to leave it on in application code either. Code that relies on this is inherently fragile and can break in other ways.

We're early enough in 2.x cycle that I consider this a bugfix. It definitely will fix bugs for some libraries in node_modules. And arguably performance improvements in the application code are worth the edge case issues that this would uncover.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: disable-typeof