แžŸแŸ’แžแžถแž”แž“แžทแž€ QEMU แž“แžทแž„ FFmpeg แž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž– QuickJS JavaScript Engine

แž‚แžŽแžทแžแžœแžทแž‘แžผแž‡แž“แž‡แžถแžแžทแž”แžถแžšแžถแŸ†แž„ Fabrice Bellard แžŠแŸ‚แž›แž’แŸ’แž›แžถแž”แŸ‹แž”แžถแž“แž”แž„แŸ’แž€แžพแžแž‚แž˜แŸ’แžšแŸ„แž„ QEMU แž“แžทแž„ FFmpeg แž แžพแž™แž€แŸแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžšแžผแž”แž˜แž“แŸ’แžแž›แžฟแž“แž”แŸ†แž•แžปแžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แžŽแž“แžถ pi แž“แžทแž„แž”แž„แŸ’แž€แžพแžแž‘แž˜แŸ’แžšแž„แŸ‹แžšแžผแž”แž—แžถแž–แž•แž„แžŠแŸ‚แžšแŸ” แž”แŸŠแžธแŸ” แž‡แžธแŸ” แž—แžธแžŠแŸ‚แž›แž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžŠแŸ†แž”แžผแž„แž“แŸƒแž˜แŸ‰แžถแžŸแŸŠแžธแž“ JavaScript แžแŸ’แž˜แžธแŸ” QuickJS. แž˜แŸ‰แžถแžŸแŸŠแžธแž“โ€‹แž“แŸแŸ‡โ€‹แž˜แžถแž“โ€‹แž›แž€แŸ’แžแžŽแŸˆโ€‹แžแžผแž…โ€‹แž…แž„แŸ’แžขแŸ€แž แž แžพแž™โ€‹แž•แŸ’แžแŸ„แžโ€‹แž›แžพโ€‹แž€แžถแžšโ€‹แž”แž„แŸ’แž€แž”แŸ‹โ€‹แž€แŸ’แž“แžปแž„โ€‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’โ€‹แž•แŸ’แžŸแŸแž„แŸ—แŸ” แž›แŸแžแž€แžผแžŠแž‚แž˜แŸ’แžšแŸ„แž„แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแž‡แžถ C แž“แžทแž„แž…แŸ‚แž€แž…แžถแž™แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ MIT แŸ” แž˜แžถแž“แž•แž„แžŠแŸ‚แžšแž‚แžบแž€แžถแžšแž‡แžฝแž”แž”แŸ’แžšแž‡แžปแŸ†แž‚แŸ’แž“แžถแž“แŸƒแž˜แŸ‰แžถแžŸแŸŠแžธแž“แžŠแŸ‚แž›แž”แžถแž“แž…แž„แž€แŸ’แžšแž„แž‘แŸ… WebAssembly แžŠแŸ„แž™แž”แŸ’แžšแžพ Emscripten แž“แžทแž„แžŸแž˜แžšแž˜แŸ’แž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž“แŸ…แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžšแžปแž€แžšแž€แŸ”

แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž JavaScript แž‚แžถแŸ†แž‘แŸ’แžš แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹ ES2019 แžšแžฝแž˜แž‘แžถแŸ†แž„แž˜แŸ‰แžผแžŒแžปแž› แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž—แŸ’แž›แžพแž„แžขแžŸแž˜แž€แžถแž› แž“แžทแž„แž”แŸ’แžšแžผแž€แžŸแŸŠแžธแŸ” แž‚แžŽแžทแžแžœแžทแž‘แŸ’แž™แžถแž˜แžทแž“แžŸแŸ’แžแž„แŸ‹แžŠแžถแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž‚แžถแŸ†แž‘แŸ’แžšแž‡แžถแž‡แž˜แŸ’แžšแžพแžŸแŸ” แž€แžถแžšแž–แž„แŸ’แžšแžธแž€ แžŸแž˜แŸ’แžšแžถแž”แŸ‹ JavaScript แžŠแžผแž…แž‡แžถแž”แŸ’แžšแž—แŸแž‘ BigInt แž“แžทแž„ BigFloat แž€แŸแžŠแžผแž…แž‡แžถ แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžšแž•แŸ’แž‘แžปแž€แž›แžพแžŸแž‘แž˜แŸ’แž„แž“แŸ‹. แž“แŸ…แž€แŸ’แž“แžปแž„แž›แž€แŸ’แžแžแžŽแŸ’แžŒแž“แŸƒแž€แžถแžšแžขแž“แžปแžœแžแŸ’แž QuickJS แž‚แžบแž˜แžถแž“แžŸแžถแžšแŸˆแžŸแŸ†แžแžถแž“แŸ‹ แžแŸ’แž–แžŸแŸ‹แž‡แžถแž„ แžงแž‘แžถแž แžšแžŽแŸ analogues แžŠแŸ‚แž›แž˜แžถแž“แžŸแŸ’แžšแžถแž”แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แž
bench-v8 แž‚แžบแž“แŸ…แž–แžธแž˜แžปแžแž˜แŸ‰แžถแžŸแŸŠแžธแž“ XS แŸขแŸค,แŸฉ% duktape แž…แŸ’แžšแžพแž“แž‡แžถแž„แž–แžธแžšแžŠแž„ แž‡แŸ‚แžšแžธแž แŸ’แž‚แŸ’แžšแžธแž› แž”แžธแžŠแž„แž“แžทแž„ MuJS แž”แŸ’แžšแžถแŸ†แž–แžธแžšแžŠแž„แŸ”

แž”แž“แŸ’แžแŸ‚แž˜แž–แžธแž›แžพแž”แžŽแŸ’แžŽแžถแž›แŸแž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž„แŸ’แž€แž”แŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž“แŸ…แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธ แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แž€แŸแž•แŸ’แžแž›แŸ‹แž‡แžผแž“แžขแŸ’แž“แž€แž”แž€แž”แŸ’แžšแŸ‚ qjs แžŠแŸ‚แž›แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžผแžŠ JavaScript แž–แžธแž”แž“แŸ’แž‘แžถแžแŸ‹แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแŸ” แž‡แžถแž„แž“แŸแŸ‡แž‘แŸ…แž‘แŸ€แž แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž…แž„แž€แŸ’แžšแž„ qjsc แžขแžถแž…แž”แŸ’แžšแžพแž”แžถแž“ แžŠแŸ‚แž›แž˜แžถแž“แžŸแž˜แžแŸ’แžแž—แžถแž–แž”แž„แŸ’แž€แžพแžแžฏแž€แžŸแžถแžšแžŠแŸ‚แž›แžขแžถแž…แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž”แžถแž“แžแŸ‚แžฏแž„ แžŠแŸ‚แž›แž˜แžทแž“แž‘แžถแž˜แž‘แžถแžšแž—แžถแž–แžขแžถแžŸแŸ’แžšแŸแž™แžแžถแž„แž€แŸ’แžšแŸ…แŸ”

แž›แž€แŸ’แžแžŽแŸˆแžŸแŸ†แžแžถแž“แŸ‹แŸ—:

  • แž”แž„แŸ’แžšแžฝแž˜ แž“แžทแž„แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž‰แŸ’แž…แžผแž›แž‘แŸ…แž€แŸ’แž“แžปแž„แž‚แž˜แŸ’แžšแŸ„แž„แž•แŸ’แžŸแŸแž„แŸ—แŸ” แž€แžผแžŠแžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แžแŸ‚แžฏแž€แžŸแžถแžš C แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แžŠแŸ‚แž›แž˜แžทแž“แžแŸ’แžšแžผแžœแž€แžถแžšแž—แžถแž–แžขแžถแžŸแŸ’แžšแŸแž™แžแžถแž„แž€แŸ’แžšแŸ…แžŠแžพแž˜แŸ’แž”แžธแž”แž„แŸ’แž€แžพแžแŸ” แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŸแžถแž˜แž‰แŸ’แž‰แžŠแŸ‚แž›แž”แžถแž“แž…แž„แž€แŸ’แžšแž„แž…แŸ†แžŽแžถแž™แž–แŸแž›แž”แŸ’แžšแž แŸ‚แž› 190 KB;
  • แž”แŸ’แžšแžŸแžทแž‘แŸ’แž’แž—แžถแž–แžแŸ’แž–แžŸแŸ‹ แž“แžทแž„แž–แŸแž›แžœแŸแž›แžถแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž‘แžถแž”แŸ” แž€แžถแžšแž†แŸ’แž›แž„แž€แžถแžแŸ‹แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แžแž—แžถแž–แž†แž”แž‚แŸ’แž“แžถ ECMAScript แž…แŸ†แž“แžฝแž“ 56 แž–แžถแž“แŸ‹แžแŸ’แžšแžผแžœแž…แŸ†แžŽแžถแž™แž–แŸแž›แž”แŸ’แžšแž แŸ‚แž› 100 แžœแžทแž“แžถแž‘แžธ แž“แŸ…แž–แŸแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แžพแžŸแŸ’แž“แžผแž›แžแŸ‚แž˜แžฝแž™แž“แŸƒแž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž›แžพแžแžปแž’แž˜แŸ’แž˜แžแžถแŸ” แž€แžถแžšแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžแŸ’แžšแžผแžœแž…แŸ†แžŽแžถแž™แž–แŸแž›แžแžทแž…แž‡แžถแž„ 300 แž˜แžธแž€แŸ’แžšแžผแžœแžทแž“แžถแž‘แžธแŸ”
  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแŸ’แž‘แžพแžšแžแŸ‚แž–แŸแž‰แž›แŸแž‰แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹ ES2019 แž“แžทแž„แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแž–แŸแž‰แž›แŸแž‰แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžงแž”แžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ B แžŠแŸ‚แž›แž€แŸ†แžŽแžแŸ‹แžŸแž˜แžถแžŸแž’แžถแžแžปแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž—แžถแž–แž†แž”แž‚แŸ’แž“แžถแž‡แžถแž˜แžฝแž™แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸแž แž‘แŸ†แž–แŸแžšแž…แžถแžŸแŸ‹แŸ”
  • แž”แž‰แŸ’แž…แž”แŸ‹แž€แžถแžšแž”แŸ’แžšแž›แž„แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž–แžธ ECMAScript Test Suite;
  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž…แž„แž€แŸ’แžšแž„แž€แžผแžŠ Javascript แž‘แŸ…แž€แŸ’แž“แžปแž„แžฏแž€แžŸแžถแžšแžŠแŸ‚แž›แžขแžถแž…แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž”แžถแž“แžŠแŸ„แž™แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แž–แžนแž„แž›แžพแžแžถแž„แž€แŸ’แžšแŸ…แŸ”
  • แžขแŸ’แž“แž€แž”แŸ’แžšแž˜แžผแž›แžŸแŸ†แžšแžถแž˜แžŠแŸ‚แž›แžšแžถแž”แŸ‹แžŠแŸ„แž™แž™แŸ„แž„แžŠแŸ„แž™แž˜แžทแž“แž‡แžทแŸ‡แž€แž„แŸ‹แžŸแž˜แŸ’แžขแžถแž แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แž˜แžถแž“แžขแžถแž€แž”แŸ’แž”แž€แžทแžšแžทแž™แžถแžŠแŸ‚แž›แžขแžถแž…แž–แŸ’แž™แžถแž€แžšแžŽแŸแž”แžถแž“ แž“แžทแž„แž€แžถแžแŸ‹แž”แž“แŸ’แžแž™แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž€แžถแžšแž…แž„แž…แžถแŸ†แŸ”
  • แžŸแŸ†แžŽแžปแŸ†แž“แŸƒแž•แŸ’แž“แŸ‚แž€แž”แž“แŸ’แžแŸ‚แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‚แžŽแž“แžถแž‚แžŽแžทแžแžœแžทแž‘แŸ’แž™แžถแž“แŸ…แž€แŸ’แž“แžปแž„แž—แžถแžŸแžถ JavaScript;
  • แžŸแŸ‚แž›แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžผแžŠแž“แŸ…แž€แŸ’แž“แžปแž„แžšแž”แŸ€แž”แž”แž“แŸ’แž‘แžถแžแŸ‹แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแžŠแŸ‚แž›แž‚แžถแŸ†แž‘แŸ’แžšแž€แžถแžšแž”แž“แŸ’แž›แžทแž…แž€แžผแžŠแž”แžšแžทแž”แž‘แŸ”
  • แž”แžŽแŸ’แžŽแžถแž›แŸแž™โ€‹แžŸแŸ’แžŠแž„แŸ‹แžŠแžถแžšโ€‹แžแžผแž…โ€‹แž˜แžฝแž™โ€‹แžŠแŸ‚แž›โ€‹แž˜แžถแž“โ€‹แž…แŸ†แžŽแž„โ€‹แž›แžพโ€‹แž”แžŽแŸ’แžŽแžถแž›แŸแž™ C แŸ”

แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แž€แŸแžขแž—แžทแžœแžŒแŸ’แž C-libraries แžŠแŸƒแž‚แžผแž…แŸ†แž“แžฝแž“แž”แžธแžŠแŸ‚แž›แž–แžถแž€แŸ‹แž–แŸแž“แŸ’แž’แž“แžนแž„ QuickJS แž“แžทแž„แžŸแž˜แžšแž˜แŸ’แž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แž˜แžฝแž™แŸ–

  • libregexp แž‚แžบโ€‹แž‡แžถโ€‹แž€แžถแžšโ€‹แžขแž“แžปแžœแžแŸ’แžโ€‹แž™แŸ‰แžถแž„โ€‹แž›แžฟแž“โ€‹แž“แŸƒโ€‹แž€แž“แŸ’แžŸแŸ„แž˜โ€‹แž’แž˜แŸ’แž˜แžแžถโ€‹แžŠแŸ‚แž›โ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž–แŸแž‰แž›แŸแž‰โ€‹แž‡แžถแž˜แžฝแž™โ€‹แž“แžนแž„โ€‹แž€แžถแžšโ€‹แž”แž‰แŸ’แž‡แžถแž€แŸ‹ Javascript ES 2019;
  • libunicode - แž”แžŽแŸ’แžŽแžถแž›แŸแž™แž”แž„แŸ’แžšแžฝแž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แž™แžผแž“แžธแž€แžผแžŠแŸ”
  • libbf แž‚แžบโ€‹แž‡แžถโ€‹แž€แžถแžšโ€‹แžขแž“แžปแžœแžแŸ’แžโ€‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšโ€‹แž…แŸ†แžŽแžปแž…โ€‹แžขแžŽแŸ’แžแŸ‚แžโ€‹แž‘แžนแž€โ€‹แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹โ€‹แžแžถแž˜โ€‹แžขแŸ†แž–แžพโ€‹แž…แžทแžแŸ’แž แž“แžทแž„โ€‹แž˜แžปแžแž„แžถแžšโ€‹แž†แŸ’แž›แž„โ€‹แž€แžถแžแŸ‹โ€‹แž‡แžปแŸ†โ€‹แž–แžทแžแž”แŸ’แžšแžถแž€แžŠแŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹