ओडिनमोंकी मॉड्यूल लो-लेवल Asm.js के अनुकूलन और संकलन के लिए जिम्मेदार IonMonkey इंजन का हिस्सा है - 21 मार्च को इसे फ़ायरफ़ॉक्स नाइटली बिल्ड में
शामिल किया
गया था । Asm.js क्या है? - यह जावास्क्रिप्ट भाषा का एक सबसेट है जो "असेंबलर स्तर पर" प्रोग्रामिंग की अनुमति देता है - गतिशील टाइपिंग और मेमोरी आवंटन के बिना। एक अर्थ में, Asm.js Google मूल ग्राहक तकनीक के समान है, केवल पिछड़ी संगतता के साथ - Asm.js विनिर्देश के अनुसार लिखा गया कोड सही जावास्क्रिप्ट कोड है और किसी भी इंजन पर केवल OdinMonkey की तुलना में धीमी गति से चलेगा।
Asm.js कुछ मामलों में मूल कोड के प्रदर्शन के करीब आने की अनुमति देता है - Asm.js में संकलित एक C प्रोग्राम आमतौर पर मूल रूप में केवल आधा काम करता है:

प्रकारों को इंगित करने के लिए Asm.js शायद ही कभी इस्तेमाल की जाने वाली भाषा के निर्माण का उपयोग करता है "
| 0 "। उन्हें चुना गया है ताकि मानक जावास्क्रिप्ट अभिव्यक्तियों के शब्दार्थ को प्रभावित न किया जा सके, यही कारण है कि Asm.js कोड आज और कल किसी भी ब्राउज़र में काम करेगा, यदि इसमें "जावास्क्रिप्ट असेंबलर" का समर्थन दिखाई देता है, तो यह सिर्फ 10% तेजी से निष्पादित करना शुरू कर देगा। यहाँ Asm.js पर एक उदाहरण कोड दिया गया है:
function foo(x, y) { var x = x|0;
Asm.js मानक और OdinMonkey मॉड्यूल मुख्य रूप से जावास्क्रिप्ट में LLVM के एक लोकप्रिय संकलक, Emscripten के लेखक ल्यूक वैगनर के लिए उनके अस्तित्व को देते हैं, जिसका बार-बार
Habré पर उल्लेख किया गया था। इस संकलक द्वारा उत्पन्न कोड Asm.js. विनिर्देशन का आधार बन गया। वैसे, अस्मज
के बारे में
अक्सर पूछे जाने वाले प्रश्नों के उत्तर हाल ही में हब्राइज़र
मिथगोल द्वारा अनुवादित किए गए थे।
फिलहाल, ओडिनमोंकी को केवल डेस्कटॉप विंडोज और लिनक्स के तहत x86 / x64 प्लेटफार्मों पर फ़ायरफ़ॉक्स नाइटली में सक्षम किया जा सकता है, और जल्द ही मैकओएस एक्स और एआरएम के लिए समर्थन होगा। सक्षम करने के लिए, आपको
javascript.options.experimental_asmjs
सेट करना होगा
javascript.options.experimental_asmjs
ध्वज के
about:config
। चूंकि Asm.js मुख्य रूप से कंपाइलरों द्वारा स्वचालित पीढ़ी के लिए अभिप्रेत है, इसलिए इस पर मैन्युअल रूप से कोड लिखना बहुत सुविधाजनक नहीं है। भविष्य में, मोज़िला टीम
कम स्तर के जावास्क्रिप्ट पर आधारित उदाहरण के लिए, अधिक एर्गोनोमिक निम्न-स्तरीय सिंटैक्स के लिए समर्थन जोड़ने की उम्मीद करती है।
Asm.js पर करीब से नज़र डालने के लिए, आप
इस प्रस्तुति और
इस लेख से शुरुआत कर सकते हैं। और आप आधिकारिक
विनिर्देश का अध्ययन करके जारी रख सकते हैं।