SlideShare a Scribd company logo
JAVASCRIPT ENGINE
AND WEBASSEMBLY
2016.2.18
동국대학교 멀티미디어공학과 이창환
(yich@dongguk.edu)
http://www.slideshare.net/yich/web-assembly
Contents
• Source Code Executions
• JavaScript Engine on FireFox
• WebAssembly
2
Source Code Executions
• Interpret
• Compile
• Interpret + Compile
• JIT(Just-in-time)
• AOT(ahead-of-time compile)
• etc.
3
4
http://image.slidesharecdn.com/principlesofcompilerdesign-120121013909-phpapp01/95/principles-of-compiler-design-24-728.jpg?cb=1327110100
JavaScript Engine
• SpiderMonkey
• A JavaScript engine in Mozilla Gecko applications
• JavaScriptCore
• A JavaScript interpreter and JIT originally derived from KJS(Konqueror’s Engine).
• Used in the WebKit project
• V8
• A JavaScript engine used in Google Chrome, Node.js, and V8.NET.
• Chakra (JScript9)
• A JScript engine used in Internet Explorer.
• Chakra
• A JavaScript engine used in Microsoft Edge.
• Carakan
• A JavaScript engine developed by Opera Software ASA
• Tamarin
• An ActionScript and ECMAScript engine used in Adobe Flash.
• Nashorn
• A JavaScript engine used in Oracle Java Development Kit (JDK) since version 8.
• Rhino
• One of several JavaScript engines from Mozilla, using the Java platform.
5
SpiderMonkey
• From Netscape and Firefox
• History of SpiderMonkey
• TraceMonkey: first javascript JIT, Firefox 3.5
• JägerMonkey: whole-method JIT, FireFox 4
• IonMonkey: Optimization
• OdinMonkey: asm.js
6
emscripten
• Emscripten
• http://kripken.github.io/emscripten-site/
• C/C++ -> JavaScript
• LLVM based Transpiler
• asm.js
• http://asmjs.org
• From Mozilla
• native performance from browser apps.
• C/C++ -> javascript
• Not javascript
7
http://ejohn.org/blog/asmjs-javascript-compile-target/
Typed Array / SIMD.js
• TypedArray
• https://www.khronos.org/registry/typedarray/specs/latest/
• WebGL
• SIMD.js (Single Instruction Multiple Data)
• https://hacks.mozilla.org/2014/10/introducing-simd-js/
8
WebAssembly
• Why? ASM.JS is not enough?
• A binary format can be decoded A binary format can be decoded much
faster than JavaScript; 20x faster
• Avoiding the simultaneous Avoiding the simultaneous ASM.JS
constrains constrains: AOT-compatibility and redundant optimization
• High-Level Goals of WASM
• Binary format also considering mobile and IoT
• Incremental implementation Incremental implementation
• Same functionality as ASM.JS
• A polyfill library to translates WASM code into JavaScript
• Languages other than C/C++
• Compatabile with existing Web Platform
• Synchronous calls to and from JavaScript
• Same security policy Same security policy
• Access Same Web API accessible to JavaScript
9
References
• List of ECMAScript engines,
https://en.wikipedia.org/wiki/List_of_ECMAScript_engines
• SpiderMonkey JavaScript Engine,
http://new.whiteinternet.com/web-
development/spidermonkey
• WebAssembly
• http://webassembly.github.io/
• https://github.com/webassembly
• Web Assembly 기술 동향,
http://www.html5forum.or.kr/api/filedown.jsp?filename=07
_WebAssembly.pdf&folder=upload/board , HTML5Forum
웹 고속화 기술과 킬러웹앱 컨퍼런스
10

More Related Content

PPT
Web assembly overview by Mikhail Sorokovsky
ODP
An Introduction to WebAssembly
PPTX
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
PPTX
Web Assembly Big Picture
PDF
Isomorphic JavaScript: #DevBeat Master Class
PDF
WebAssemlby vs JavaScript
PPTX
DevDay 2018 - Blazor
PPTX
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Web assembly overview by Mikhail Sorokovsky
An Introduction to WebAssembly
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
Web Assembly Big Picture
Isomorphic JavaScript: #DevBeat Master Class
WebAssemlby vs JavaScript
DevDay 2018 - Blazor
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"

What's hot (20)

PDF
Compiling To Web Assembly
PDF
Building Isomorphic JavaScript Apps - NDC 2015
PDF
Isomorphic JavaScript with Nashorn
PPTX
PDF
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
PDF
Isomorphic web application
KEY
Scripting with NodeJS
PPTX
Web assembly: a brief overview
PDF
WebAssembly Fundamentals
PDF
Node.js with Express
PPTX
DotNet MVC and webpack + Babel + react
PPTX
Introduction to ASP.NET Core
PPTX
TypeScript Jump Start
PPTX
Web development using nodejs
PPTX
Webpack and Web Performance Optimization
PPTX
Introduction to mean stack
PPTX
The Saga of JavaScript and TypeScript: Part 1
PDF
Mean Stack - An Overview
PPTX
KEY
CloudFoundry@home
Compiling To Web Assembly
Building Isomorphic JavaScript Apps - NDC 2015
Isomorphic JavaScript with Nashorn
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
Isomorphic web application
Scripting with NodeJS
Web assembly: a brief overview
WebAssembly Fundamentals
Node.js with Express
DotNet MVC and webpack + Babel + react
Introduction to ASP.NET Core
TypeScript Jump Start
Web development using nodejs
Webpack and Web Performance Optimization
Introduction to mean stack
The Saga of JavaScript and TypeScript: Part 1
Mean Stack - An Overview
CloudFoundry@home
Ad

Similar to JavaScript Engine and WebAssembly (20)

PPTX
WebAssembly: In a Nutshell
PDF
JSLab.Руслан Шевченко."JavaScript как платформа компиляции"
PDF
Jslab rssh: JS as language platform
PDF
Past, present, and future of web assembly - Devfest Nantes 2017
ODP
Javascript Update May 2013
KEY
State of the art: server-side javaScript - NantesJS
PDF
You Can Work on the Web Patform! (GOSIM 2023)
PDF
모바일 웹 디버깅
PDF
Clojure Lightning Talk
PDF
Web assembly for the masses
PPT
Agile Software Development by Sencha
PDF
Why you should be excited about ClojureScript
PDF
Meetup. Technologies Intro for Non-Tech People
PDF
Oh the compilers you'll build
PPTX
JavaScript, 그 한계는 어디까지인가?
PPTX
WebAssembly WASM Introduction Presentation
PDF
WebAssembly - czy dzisiaj mi się to przyda do pracy?
PDF
Industry trend of HTML5 in 2012 (2012년 HTML5 총정리)
PPTX
WebAssembly overview. KievJS meetup
PPTX
Languages (1)
WebAssembly: In a Nutshell
JSLab.Руслан Шевченко."JavaScript как платформа компиляции"
Jslab rssh: JS as language platform
Past, present, and future of web assembly - Devfest Nantes 2017
Javascript Update May 2013
State of the art: server-side javaScript - NantesJS
You Can Work on the Web Patform! (GOSIM 2023)
모바일 웹 디버깅
Clojure Lightning Talk
Web assembly for the masses
Agile Software Development by Sencha
Why you should be excited about ClojureScript
Meetup. Technologies Intro for Non-Tech People
Oh the compilers you'll build
JavaScript, 그 한계는 어디까지인가?
WebAssembly WASM Introduction Presentation
WebAssembly - czy dzisiaj mi się to przyda do pracy?
Industry trend of HTML5 in 2012 (2012년 HTML5 총정리)
WebAssembly overview. KievJS meetup
Languages (1)
Ad

More from Changhwan Yi (15)

PDF
Web sessions in Developer Conferences
PDF
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
PDF
Html5 게임 기술의 개요
PDF
동국대 앱창작터 5일차:Cocos2d-X 확장기능
PDF
동국대 앱창작터 4일차:Cocos2d-X 고급기능
PDF
동국대 앱창작터 2일차:Cocos2d-X 기본기능
PDF
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
PDF
W3C HTML5 KIG-The near future of the web platform
PDF
W3C HTML5 KIG-The complete guide to building html5 games
PDF
차세대 웹비즈니스를 위한 "HTML5"
PDF
WoO 2012-Web 서비스 기술
PDF
W3C HTML5 KIG-Typed Arrays
PDF
하이브리드 앱(Hybrid App)
KEY
W3C HTML5 KIG-How to write low garbage real-time javascript
PDF
W3C HTML5 KIG-HTML5 Game Performance Issue
Web sessions in Developer Conferences
2013 W3C HTML5 Day Conferences:HTML5 Game App 개발 및 이슈
Html5 게임 기술의 개요
동국대 앱창작터 5일차:Cocos2d-X 확장기능
동국대 앱창작터 4일차:Cocos2d-X 고급기능
동국대 앱창작터 2일차:Cocos2d-X 기본기능
동국대 앱창작터 1일차:Cocos2d-X 소개, 환경설정, 주요개념
W3C HTML5 KIG-The near future of the web platform
W3C HTML5 KIG-The complete guide to building html5 games
차세대 웹비즈니스를 위한 "HTML5"
WoO 2012-Web 서비스 기술
W3C HTML5 KIG-Typed Arrays
하이브리드 앱(Hybrid App)
W3C HTML5 KIG-How to write low garbage real-time javascript
W3C HTML5 KIG-HTML5 Game Performance Issue

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Encapsulation theory and applications.pdf
PPTX
1. Introduction to Computer Programming.pptx
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Machine Learning_overview_presentation.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Encapsulation_ Review paper, used for researhc scholars
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Diabetes mellitus diagnosis method based random forest with bat algorithm
Encapsulation theory and applications.pdf
1. Introduction to Computer Programming.pptx
SOPHOS-XG Firewall Administrator PPT.pptx
NewMind AI Weekly Chronicles - August'25-Week II
“AI and Expert System Decision Support & Business Intelligence Systems”
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Empathic Computing: Creating Shared Understanding
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
The Rise and Fall of 3GPP – Time for a Sabbatical?
MIND Revenue Release Quarter 2 2025 Press Release
Unlocking AI with Model Context Protocol (MCP)
MYSQL Presentation for SQL database connectivity
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.
Machine Learning_overview_presentation.pptx
A Presentation on Artificial Intelligence
Encapsulation_ Review paper, used for researhc scholars

JavaScript Engine and WebAssembly

  • 1. JAVASCRIPT ENGINE AND WEBASSEMBLY 2016.2.18 동국대학교 멀티미디어공학과 이창환 ([email protected]) http://www.slideshare.net/yich/web-assembly
  • 2. Contents • Source Code Executions • JavaScript Engine on FireFox • WebAssembly 2
  • 3. Source Code Executions • Interpret • Compile • Interpret + Compile • JIT(Just-in-time) • AOT(ahead-of-time compile) • etc. 3
  • 5. JavaScript Engine • SpiderMonkey • A JavaScript engine in Mozilla Gecko applications • JavaScriptCore • A JavaScript interpreter and JIT originally derived from KJS(Konqueror’s Engine). • Used in the WebKit project • V8 • A JavaScript engine used in Google Chrome, Node.js, and V8.NET. • Chakra (JScript9) • A JScript engine used in Internet Explorer. • Chakra • A JavaScript engine used in Microsoft Edge. • Carakan • A JavaScript engine developed by Opera Software ASA • Tamarin • An ActionScript and ECMAScript engine used in Adobe Flash. • Nashorn • A JavaScript engine used in Oracle Java Development Kit (JDK) since version 8. • Rhino • One of several JavaScript engines from Mozilla, using the Java platform. 5
  • 6. SpiderMonkey • From Netscape and Firefox • History of SpiderMonkey • TraceMonkey: first javascript JIT, Firefox 3.5 • JägerMonkey: whole-method JIT, FireFox 4 • IonMonkey: Optimization • OdinMonkey: asm.js 6
  • 7. emscripten • Emscripten • http://kripken.github.io/emscripten-site/ • C/C++ -> JavaScript • LLVM based Transpiler • asm.js • http://asmjs.org • From Mozilla • native performance from browser apps. • C/C++ -> javascript • Not javascript 7 http://ejohn.org/blog/asmjs-javascript-compile-target/
  • 8. Typed Array / SIMD.js • TypedArray • https://www.khronos.org/registry/typedarray/specs/latest/ • WebGL • SIMD.js (Single Instruction Multiple Data) • https://hacks.mozilla.org/2014/10/introducing-simd-js/ 8
  • 9. WebAssembly • Why? ASM.JS is not enough? • A binary format can be decoded A binary format can be decoded much faster than JavaScript; 20x faster • Avoiding the simultaneous Avoiding the simultaneous ASM.JS constrains constrains: AOT-compatibility and redundant optimization • High-Level Goals of WASM • Binary format also considering mobile and IoT • Incremental implementation Incremental implementation • Same functionality as ASM.JS • A polyfill library to translates WASM code into JavaScript • Languages other than C/C++ • Compatabile with existing Web Platform • Synchronous calls to and from JavaScript • Same security policy Same security policy • Access Same Web API accessible to JavaScript 9
  • 10. References • List of ECMAScript engines, https://en.wikipedia.org/wiki/List_of_ECMAScript_engines • SpiderMonkey JavaScript Engine, http://new.whiteinternet.com/web- development/spidermonkey • WebAssembly • http://webassembly.github.io/ • https://github.com/webassembly • Web Assembly 기술 동향, http://www.html5forum.or.kr/api/filedown.jsp?filename=07 _WebAssembly.pdf&folder=upload/board , HTML5Forum 웹 고속화 기술과 킬러웹앱 컨퍼런스 10