TC39(Technical Committee 39) is a committee that evolves JavaScript.
Its members are JavaScript engines、Frameworks、Academics、Major website/app platforms, now are there some Chinese companies!
Every two months, TC39 has meeting. The minutes of those meetings are public in github
ES2016 was the first ECMAScript version that was designed according to the TC39 process.
tc39-process: this article introduces the conditions of each stages should achieve.
Once a feature is reached to stage4, it runs all test case in Test262, so you can use it safely. But even then, you should still check if the device environment you use supports it. You can see all the finished feature and other proposals in the official list.
const expected = 4n / 2n;// ↪ 2nconst rounded = 5n / 2n;// ↪ 2n, not 2.5n
The / operator also work as expected with whole numbers. However, since these are BigInts and not BigDecimals, this operation will round towards 0, which is to say, it will not return any fractional digits.
Unlike most other modern JavaScript features, BigInts cannot reasonably be transpiled down to ES5.
The BigInt proposal changes the behavior of operators (like +, >=, etc.) to work on BigInts. These changes are impossible to polyfill directly, and they are also making it infeasible (in most cases) to transpile BigInt code to fallback code using Babel or similar tools. The reason is that such a transpilation would have to replace every single operator in the program with a call to some function that performs type checks on its inputs, which would incur an unacceptable run-time performance penalty. In addition, it would greatly increase the file size of any transpiled bundle, negatively impacting download, parse, and compile times.