https://github.com/AssemblyScript/assemblyscript/pull/111 ํ์ฌ I64๋ BigInt
๋ก ์ด๋ ์์ ์์ WASM<->JS ๊ฒฝ๊ณ๋ฅผ ๋์ ์ ์์ผ๋ฏ๋ก ๊ธด ์ด์
๋ธ๋ฆฌ ๋ฐ ์ด์ ๊ฐ๋ฅํ ์ ์ ๋ฐ ์์ฑ๋ ์ ํ ์คํฌ๋ฆฝํธ ์ ์. ์ฌ๊ธฐ์์ ๋ช
ํํ์ง ์์ ์ ์ ์กฐ๊ฑด ์ค ํ๋๋ (i64-to-i32-lowering) asm.js ์ถ๋ ฅ์์๋ ์ด๋ป๊ฒ๋ ์ฒ๋ฆฌํ๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
BigInt๋ ์ด์ Chrome, Firefox(์คํ ํ๋๊ทธ ๋ค์ ์์) ๋ฐ NodeJS์ ์์ต๋๋ค.
์ง๊ธ์ i64์ ๋ถ๊ณผํ๋๋ผ๋ ์ด์
๋ธ๋ฆฌ ์คํฌ๋ฆฝํธ์์ ์ง์๋๋ 1234n
๊ตฌ๋ฌธ๊ณผ BigInt
์ ํ์ ๋ณด๊ณ ์ถ์ต๋๋ค.
BigInt
๋ ์์์ ์ ๋ฐ๋(์ค์ ๋ก ํฐ ์ซ์)์ ๋ํด์๋ง ํ์คํ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ์ฌ๋๋ค์ ํผ๋์ค๋ฝ๊ฒ ํ ๊ฒ์
๋๋ค.
๋ก๋๋ ํ์ฌ ๋ณด์ BigInt64Array
๋ฌด์ ์ฉ ๋ฑ ์ง์ Int64Array
AS, ๊ทธ๋ฆฌ๊ณ ํต๊ณผ i64 <-> BigInt
์์ถ์
๋น์๋ฅผ ๊ฐ๋ฅํ๊ฒํจ์ผ๋ก์จ ๋ฌ์ฑ ๋ ์ --experimental-wasm-bigint
์์ ์๋ฅผ ๋ค์ด V8์ ์ถ๊ฐ ์์
์ด ํ์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ AS ์ธก์ BigInt ํด๋์ค๊ฐ ์์ง ์์ง๋ง "WASM์ผ๋ก/์์ I64 ์ ๋ฌ"์ด ํด๊ฒฐ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค. ์ด๋ ๋ค๋ฅธ ๊ฐ์ ์ฌํญ์ด ๋ ๊ฒ์
๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
BigInt๋ ์ด์ Chrome, Firefox(์คํ ํ๋๊ทธ ๋ค์ ์์) ๋ฐ NodeJS์ ์์ต๋๋ค.