codesandbox / codesandbox/codesandbox-client

Can you please turn off the exponentiation transform?

Open
#8,731 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
13.6k
Forks
2.4k
Avg merge
6d 19h
Merged PRs (30d)
2

Description

🐛 bug report

Preflight Checklist

  • I have read the [Contributing Guidelines][contributing] for this project.
  • I agree to follow the [Code of Conduct][code_of_conduct] that this project
    adheres to.
  • I have searched the issue tracker for an issue that matches the one I want
    to file, without success.

Description of the problem

How has this issue affected you? What are you trying to accomplish?

The exponentiation transform in Babel makes it impossible to run code of the form 2n ** 10n. This gets transformed to Math.pow(2n, 10n), which is a runtime error.

I think this transform should now be turned off. It penalizes code that uses BigInt, while actually being of little use given the penetration of the exponentiation operator in modern browsers.

To Reproduce
Link to sandbox: link

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the BigInt exponentiation example from the issue and inspect where the Babel exponentiation transform is configured in this repository. Confirm that code such as 2n ** 10n is no longer rewritten to Math.pow(2n, 10n), then verify the linked CodeSandbox behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
babel, javascript
Domain
build-system, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.