minijs는 Go 언어로 구현된 자바스크립트 바이트코드 가상 머신입니다. 자바스크립트 코드를 바이트코드로 변환하여 실행하며, Go와의 높은 호환성을 바탕으로 다양한 Go 기반 애플리케이션에 유연하게 내장될 수 있습니다.
- 바이트코드 실행: 자바스크립트 코드를 바이트코드로 변환하여 가상 머신에서 실행함으로써 성능을 최적화합니다.
- Go 환경과의 높은 호환성: Go 언어로 개발되어 다양한 Go 기반 애플리케이션에 손쉽게 통합할 수 있습니다.
minijs는 Go 환경에서 실행됩니다. 아래 명령어를 사용하여 프로젝트를 클론하고 빌드할 수 있습니다:
git clone https://github.com/siyul-park/minijs.git
cd minijs
make build
대화형 셸(REPL)에서 자바스크립트 코드를 실시간으로 실행할 수 있습니다.
minijs
> 'b'+'a'+ +'a'+'a'
"baNaNa"
바이트코드를 함께 출력하려면 -print-bytecode
플래그를 사용합니다.
minijs --print-bytecode
> 'b'+'a'+ +'a'+'a'
section .text:
str.load 0x00000000 0x00000001
str.load 0x00000002 0x00000001
str.add
str.load 0x00000002 0x00000001
str.to_f64
f64.to_str
str.add
str.load 0x00000002 0x00000001
str.add
pop
.section .data:
b
a
"baNaNa"
파일을 실행하면 최적화 과정이 적용되어 바이트 코드가 더욱 효율적으로 변환됩니다. 자바스크립트 파일을 실행하려면 다음 명령어를 사용합니다:
minijs banana.js
바이트코드를 출력하려면 -print-bytecode
플래그를 사용합니다.
minijs -print-bytecode banana.js
section .text:
str.load 0x00000000 0x00000006
pop
.section .data:
baNaNa