قائمة محركات جافا سكريبت

كانت محركات جافا سكريبت الأولى عبارة عن مترجمات لشفرة المصدر ، لكن المحركات الحديثة تستخدم الترجمة الفورية لتحسين الأداء. [ 1 ] عادةً ما تُطوَّر محركات جافا سكريبت من قِبل مُصنِّعي متصفحات الويب ، ويحتوي كل متصفح رئيسي على واحد منها. في المتصفح، يعمل محرك جافا سكريبت بالتزامن مع محرك العرض عبر نموذج كائن المستند (DOM) وروابط Web IDL . [ 2 ] مع ذلك، لا يقتصر استخدام محركات جافا سكريبت على المتصفحات؛ على سبيل المثال، يُعد محرك V8 مكونًا أساسيًا في نظام تشغيل Node.js. [ 3 ] تُسمى أيضًا محركات ECMAScript ، نسبةً إلى الاسم الرسمي للمواصفات. مع ظهور WebAssembly ، يُمكن لبعض المحركات أيضًا تنفيذ هذه الشفرة في نفس بيئة الحماية (Sandbox) الخاصة بشفرة جافا سكريبت العادية. [ 4 ] [ 3 ]

تاريخ

أُنشئ أول محرك جافا سكريبت بواسطة بريندان إيتش عام 1995 لمتصفح الويب نتسكيب نافيغيتور . [ 5 ] كان عبارة عن مترجم بدائي للغة الناشئة التي ابتكرها إيتش. [ 6 ] (تطور هذا لاحقًا إلى محرك سبايدر مونكي ، الذي لا يزال يستخدمه متصفح فايرفوكس . [ 5 ] )

أطلقت جوجل متصفحها كروم عام 2008، مُقدّمةً مُحرك جافا سكريبت V8 الذي كان آنذاك أسرع بكثير من منافسيه. [ 7 ] [ 8 ] وقد أشعل هذا الأمر سباقًا بين مُصنّعي المتصفحات لتقديم مُحركات جافا سكريبت أسرع باستمرار. [ 9 ] تمثّلت الابتكارات الرئيسية في تلك الحقبة في التحوّل من مُفسّرات تتبع الشجرة الأساسية إلى مُفسّرات الآلة الافتراضية للرمز البايتي القائمة على المكدس والسجلات ، والترجمة الفورية (JIT)، والتخزين المؤقت المُضمّن (الفئات المخفية)، وجمع البيانات المهملة التوليدي . أصدرت آبل مُحرك نيترو المُفعّل بتقنية JIT في يونيو 2008 لمتصفحها سفاري ، والذي كان أداؤه أفضل بنسبة 30% من سابقه. [ 10 ] [ 11 ] وحذت موزيلا حذوها في أغسطس 2008 بإصدار TraceMonkey، أول مُترجم JIT لمُحرك SpiderMonkey، والذي تم إصداره في فايرفوكس 3.1. [ 12 ] انضمت أوبرا إلى سباق الأداء بمحرك كاراكان الخاص بها، والذي يعتمد على بايت كود المسجل ويدعم تقنية JIT ، في عام 2009 [ 13 ] وتم إصداره في أبريل 2010. [ 14 ] ظهر محرك شاكرا الأول من مايكروسوفت ، والذي يدعم تقنية JIT، والذي كان قيد التطوير منذ عام 2008، [ 15 ] لأول مرة كجزء من إنترنت إكسبلورر 9 في عام 2011. ظهرت إعادة كتابته الرئيسية في مايكروسوفت إيدج ليجاسي في عام 2015 وتم طرحه كمصدر مفتوح باسم شاكرا كور في عام 2016.

تحققت مكاسب إضافية في أداء محركات جافا سكريبت الرئيسية لاحقًا مع إدخال بنى JIT متعددة الطبقات. تُستخدم مُجمِّعات JIT متطورة تدريجيًا لتحسين نقاط الضعف في كود المستخدم، حيث تُقدم كل طبقة لاحقة كودًا أصليًا أكثر كفاءة على حساب زيادة وقت التجميع. كان متصفح كروم أول من طبق هذه التقنية في محرك V8 عام 2010 مع إطلاق Crankshaft، وهو مُجمِّع JIT ثنائي الطبقات. [ 16 ] بحلول عام 2023، تطورت بنية V8 إلى أربع طبقات: Ignition - مُفسِّر بايت كود قائم على السجلات، وSparkplug - مُجمِّع JIT سريع غير مُحسِّن، وMaglev وTurboFan - مُجمِّعان JIT أبطأ مُحسِّنان. [ 17 ] يمتلك JavaScriptCore اليوم بنية مماثلة من أربع طبقات، [ 18 ] بينما يمتلك كل من SpiderMonkey وChakraCore في متصفح فايرفوكس ثلاث طبقات (مُفسِّر وJIT ثنائي الطبقات). [ 19 ] [ 20 ] مع ذلك، فقد وُجهت انتقادات لهذا التعقيد المتزايد باستمرار لمترجمات JIT باعتباره مصدرًا غنيًا لأخطاء المتصفحات، مما دفع بعض موردي المتصفحات إلى تعطيل JIT تمامًا، مثل "الوضع الآمن للغاية" في متصفح مايكروسوفت إيدج ، الذي طُرح في عام 2021، والذي يُقال إنه ذو تأثير طفيف على أداء التصفح اليومي. [ 21 ]

توسّع نطاق تأثير محرك V8 ليشمل ما هو أبعد من المتصفحات مع إصدار Node.js في عام 2009 ومدير الحزم npm الخاص به في عام 2010. ومع ازدياد شعبيتهما بشكل كبير، أصبح V8 المحرك الذي يُشغّل كميات هائلة من أكواد جافا سكريبت من جانب الخادم. [ 22 ] [ 23 ] وفي عام 2013، ظهر إطار عمل Electron الذي مكّن المطورين من إنشاء تطبيقات سطح مكتب باستخدام تقنيات الويب أيضًا، وذلك باستخدام Chromium مع V8 و Node.js في الخلفية. [ 24 ]

استفادت محركات جافا سكريبت من تحسينات الأداء، فظهر مُترجم Emscripten من لغة C/C++ إلى جافا سكريبت في الفترة 2010-2011، مما أتاح تشغيل أكواد C/C++ المعقدة الموجودة، مثل محركات الألعاب وحتى الآلات الافتراضية الكاملة ، مباشرةً في المتصفح. وفي عام 2013، ظهرت asm.js ، وهي مجموعة فرعية منخفضة المستوى من جافا سكريبت قابلة للتحسين بدرجة عالية، والمخصصة لهذه المُترجمات، وكان متصفح فايرفوكس أول من نفّذ تحسينات خاصة بها باستخدام وحدة OdinMonkey. [ 25 ] وفي نهاية المطاف، تطورت asm.js و NaCl (تقنية منافسة من جوجل) إلى معيار WebAssembly في عام 2017، حيث أضافت جميع المحركات الرئيسية دعمًا له. [ 4 ]

مثّلت الفجوة الزمنية التي امتدت ست سنوات بين إصداري ECMAScript 5 (2009) و ES6 (2015) نقطة تحوّلٍ حاسمة في تطوير محركات جافا سكريبت. فبينما كانت ES5 لغةً بسيطة نسبيًا ذات تنفيذ أساسي مباشر، قدّمت ES6 أسس جافا سكريبت الحديثة، مع زيادةٍ ملحوظة في التعقيد، بالإضافة إلى دورة إصدار سنوية لإصدارات المواصفات الجديدة. وقد أدّى ذلك إلى تركيز الاهتمام ليس فقط على تحسين الأداء، بل أيضًا على مواكبة المعايير سريعة التطور (لكلٍّ من ECMAScript والنظام البيئي الأوسع للويب)، ما أسفر عن توحيد الجهود حول المحركات التي تمتلك الموارد اللازمة لذلك. لم تُنفّذ العديد من المشاريع الصغيرة مواصفات ES6 بالكامل، وتوقّفت كلٌّ من Opera و Microsoft عن تطوير محركاتهما واعتمدتا V8 في عامي 2013 و2021 على التوالي. [ 26 ] [ 27 ] كما تمّ إسقاط محرك Nashorn من OpenJDK بسبب مخاوف مماثلة بشأن التطور السريع لـ ECMAScript. [ 28 ]

قائمة

محركرخصةمعيارنظام الإنتاج في الوقت المناسب (JIT)واسممكتوب  فيوصف
محرك V8BSD-3-Clauseإي نكستنعمنعملغة سي++محرك جافا سكريبت لمتصفحات جوجل كروم والمتصفحات المبنية على كروميوم / بلينك ، مثل مايكروسوفت إيدج . يُستخدم أيضًا في بيئات تشغيل Node.js و Deno ، وإطار عمل Electron ، والعديد من المشاريع الأخرى. يحتوي حاليًا على مُفسِّر بايت كود قائم على السجلات (Ignition) وثلاثة مستويات من مُجمِّعات JIT (Sparkplug وMaglev وTurbofan).
قرد العنكبوتMPL-2.0إي نكستنعمنعملغة سي++محرك جافا سكريبت لمتصفح موزيلا فايرفوكس وتطبيقات موزيلا جيكو الأخرى . يتضمن المحرك حاليًا مترجمًا، ومترجمًا فوريًا ثنائي الطبقات لجافا سكريبت (مترجم Baseline وWarpMonkey)، ومترجمًا فوريًا ثنائي الطبقات منفصلًا لـ WebAssembly. [ 19 ] سابقًا، تضمن المحرك مكونات مثل مترجم TraceMonkey (أول مترجم فوري لجافا سكريبت)، وJägerMonkey، وIonMonkey، ووحدة تحسين OdinMonkey التي اشتهرت بريادتها في asm.js. [ 25 ]
جافا سكريبت كوررخصة LGPL-2.0 ، أجزاء بموجب رخصة BSDإي نكستنعمنعملغة سي++محرك جافا سكريبت لمتصفحات سفاري و WebKit . يُستخدم أيضًا في بيئة تشغيل Bun . بدأ تطويره عام 2001 كنسخة معدلة من محرك KJS . في عام 2008، أُعيدت كتابة المحرك لاستخدام مُفسِّر بايت كود قائم على السجلات ومُعتمد على الخيوط المباشرة ، والذي أُطلق عليه اسم SquirrelFish. بعد ذلك بوقت قصير، تم إصدار SquirrelFish Extreme (المعروف باسم Nitro في مصطلحات التسويق لشركة Apple) [ 29 ] ، محققًا سرعة تزيد عن الضعف مقارنةً به باستخدام التخزين المؤقت المضمن متعدد الأشكال وخيوط السياق [ 30 ] - وهو شكل أساسي من JIT . [ 31 ] أصبحت هذه المكونات لاحقًا مُفسِّر بايت كود LLint وBaseline JIT. [ 32 ] في عام 2011، أُضيف أول مُصرِّف مُحسِّن - DFG (مخطط تدفق البيانات) JIT. [ 32 ] [ 33 ] في عام 2014، أُضيف مُصرّف متقدم قائم على LLVM ، أُطلق عليه اسم مُصرّف LLVM من المستوى الرابع (FTL) JIT. [ 34 ] في عام 2016، أُعيدت كتابة FTL لاستخدام واجهة خلفية B3 مُنشأة حديثًا بدلاً من LLVM. [ 35 ] [ 18 ]
شاكرا كورمعهد ماساتشوستس للتكنولوجياES2019-ES2023 (جزئي)نعمنعملغة سي++محرك جافا سكريبت الخاص بمتصفح مايكروسوفت إيدج القديم . [ 36 ] تم طرحه كمصدر مفتوح تحت اسم ChakraCore في عام 2016. أوقفت مايكروسوفت دعمه في عام 2021، تاركةً إياه للمجتمع، لكنه لم يحظَ باهتمام يُذكر منذ ذلك الحين. يتميز بمفسر بايت كود قائم على المسجلات ومترجم JIT ثنائي الطبقات. [ 20 ]
LibJSBSD-2-Clauseإي نكستLibWasm فقطنعمRust و C++محرك جافا سكريبت لنظام التشغيل SerenityOS ومتصفح Ladybird . [ 37 ] كان في البداية مترجمًا أساسيًا يعتمد على تحليل شجرة بناء الجملة المجردة (AST)، ثم رُقّي لاحقًا إلى مترجم آلة افتراضية يعتمد على بايت كود قائم على السجلات. [ 38 ] [ 39 ] [ 40 ] [ 41 ] . بعد عام، تحوّل معظم وقت التشغيل إلى لغة Rust [ 42 ] ، وتُرجمت لغة التجميع الداخلية إلى x86-64 و AArch64 عند دعمها [ 43 ] . يدعم WebAssembly عبر مكتبة LibWasm، وهو الجزء الوحيد الذي يستخدم JIT حتى الآن. [ 44 ]
وحيد القرنMPL-2.0ES2024-ESnext (جزئي)عبر JVM لاجافاJavaScript engine from Mozilla for the Java platform. Development started at Netscape in 1997. Originally it compiled JavaScript to JVM bytecode, but the implementation was inefficient and it was mainly used in interpreter mode.[45] Bundled in JDK 6 (2006) as javax.script. In JDK 8 (2014) it was replaced by the faster Nashorn engine.[46] Despite this, the project continues development and implemented support for many parts of newer standards.[47] Used in RingoJS runtime.
NashornGPL-2.0ES6 (partial)via JVMNoJavaJavaScript engine from Oracle used in JDK 8–14.[48] Generates more efficient JVM bytecode than Rhino, taking advantage of the new invokedynamic instruction introduced in JDK 7.[49] Deprecated in JDK 11 (2018) due to maintenance challenges owing to fast evolution of ECMAScript standard,[28] and removed in JDK 15 (2020).[50] Development continued as a standalone library.[51] Not in active development since 2021.
GraalJSGFTC, UPL-1.0ESnextvia GraalVMYesJavaJavaScript engine of GraalVM for JVM platform. Implemented with Truffle, a novel language framework for automatically deriving high-performance code from interpreters, based on the idea of partial evaluation of interpreters (Futamura projection).[52][53] Generally much faster than both Rhino and Nashorn, with performance comparable to major browser engines.[54] Supports WebAssembly via GraalWasm module.
HermesMITES2023 (partial)NoNoC++Developed by Facebook for React Native mobile apps,[55] but can also be used independent from React Native. Precompiles JavaScript to optimized bytecode ahead-of-time to improve app start-up time.[56][57][41] Static Hermes project aims to add sound static typing and JavaScript-to-native code compilation – both currently experimental, and various improvements to VM – the latter released as Hermes V1 in React Native 0.82.[58]
DuktapeMITES6 (partial)NoNoCمحرك ES5 صغير الحجم وسهل التضمين، يتضمن بعض ميزات ES6 والإصدارات الأحدث. [ 59 ] [ 60 ] [ 61 ] [ 62 ] يستخدمه متصفح NetSurf . لم يعد قيد التطوير النشط منذ عام 2022.
مقاس XSرخصة LGPL-3.0+ ، رخصة Apache-2.0إي نكستلالاجمحرك جافا سكريبت لوحدات التحكم الدقيقة ذات الموارد المحدودة، متوافق مع أحدث إصدارات ECMAScript. [ 63 ] طُوّر في الأصل بواسطة شركة Kinoma ، ونُشر كمصدر مفتوح لأول مرة عام 2015 كمكون رئيسي في إطار عمل KinomaJS لإنترنت الأشياء. وتتولى Moddable صيانته حاليًا كجزء من حزمة تطوير البرمجيات Moddable SDK. [ 64 ]
MuJSISCES5لالاجمكتبة تفسيرية خفيفة الوزن للغة ECMAScript، مصممة للتضمين في برامج أخرى لتوسيع إمكانيات البرمجة النصية فيها. طُوّرت في الأصل لبرنامج MuPDF . [ 65 ] [ 60 ]
QuickJSمعهد ماساتشوستس للتكنولوجياES2025لالاجمحرك ECMAScript خفيف الوزن من تطوير فابريس بيلارد وتشارلي جوردون، يدعم حاليًا معيار ES2023 بشكل شبه كامل. [ 66 ] [ 60 ] [ 56 ] [ 67 ] [ 41 ] يُنفذ مُفسرًا افتراضيًا لرمز البايت قائمًا على المكدس، ومُترجمًا مباشرًا إلى رمز البايت دون الحاجة إلى شجرة بناء الجملة المجردة (AST). يُمكنه تجميع ملفات .js مسبقًا إلى رمز البايت، وإنتاج ملف تنفيذي ثنائي دون أي تبعيات خارجية. يُستخدم في بيئات تشغيل WinterJS وLLRT من أمازون ، وCouchDB ، وnginx (كبديل لـ njs)، وyt-dlp .
V4 (محرك QJ)LGPL ، GPL ، QtES2016نعملالغة سي++محرك جافا سكريبت الخاص بإطار عمل QML من Qt ، والذي يُشغّل واجهة المستخدم لتطبيقات Qt الحديثة، وQt Quick ، وKDE Plasma . [ 68 ] [ 69 ] [ 70 ] [ 71 ] ظهر لأول مرة في Qt 5.0 (2012) كغلاف لـ V8، [ 72 ] ثم استُبدل لاحقًا بمحرك "V4" خفيف الوزن من تطوير Qt في Qt 5.2 (2013) [ 73 ] [ 74 ] وهو متوافق مع ES7/ES2016 [ 75 ] ويدعم JIT، باستخدام كود التجميع الكلي المُستعار من JavaScriptCore. [ 76 ] [ 77 ] يُستخدم فقط لـ QML، وليس لوحدات محرك المتصفح المُدمجة: استخدمت وحدة QtWebKit محرك JavaScriptCore، ثم حلّت محلها لاحقًا وحدة QtWebEngine القائمة على Blink /V8.
إسبروينوMPL-2.0ES5 (مجموعة فرعية)لالاجمترجم صغير الحجم للغاية مصمم خصيصًا لوحدات التحكم الدقيقة . [ 61 ] يمكن تشغيله في أقل من 8  كيلوبايت من ذاكرة الوصول العشوائي عن طريق التنفيذ من المصدر (بدلاً من رمز البايت ).
جيري سكريبتأباتشي 2.0ES2022 (جزئي)لالاجمحرك جافا سكريبت فائق الخفة من سامسونج، مصمم خصيصًا لوحدات التحكم الدقيقة التي تقل سعتها عن 64  كيلوبايت من ذاكرة الوصول العشوائي (RAM). [ 60 ] [ 62 ] يدعم معيار ES5 وأجزاء كبيرة من المعايير الحديثة حتى ES2022. توقف تطويره منذ عام 2024.
حلزونLGPL-2.1إي نكستلانعملغة سي++محرك جافا سكريبت خفيف الوزن وحديث من سامسونج ، مصمم للبيئات ذات الموارد المحدودة، ويستهدف الأجهزة متوسطة المدى كالهواتف وأجهزة التلفاز. يخضع المحرك لتطوير مستمر، ويدعم بشكل كامل أحدث معايير ECMAScript باستثناء بعض الميزات الثانوية، بالإضافة إلى WebAssembly. [ 78 ] [ 60 ] [ 79 ] يستخدم مترجمًا للآلة الافتراضية يعتمد على السجلات.
أوتومعهد ماساتشوستس للتكنولوجياES5لالايذهبمحرك جافا سكريبت مكتوب بلغة جو خالصة، يطبق ES5 ولكن مع محرك تعبيرات منتظمة غير متوافق من جو.
غوجامعهد ماساتشوستس للتكنولوجياES2023 (جزئي)لالايذهبمحرك جافا سكريبت مكتوب بلغة جو خالصة، مستوحى من أوتو، ويطبق بالكامل معيار ES5 وأجزاء من المعايير الأحدث. يستخدمه تطبيق جو الرسمي لشبكة إيثيريوم (Geth). [ 80 ]
أفعىمعهد ماساتشوستس للتكنولوجيا ، رخصة غير مرخصةES2025 (جزئي)لالاالصدأمحرك جافا سكريبت مكتوب بلغة رست . [ 81 ] [ 82 ]
كيسلمعهد ماساتشوستس للتكنولوجياإي نكستلالازيجمحرك جافا سكريبت من تصميم لينوس غروه مكتوب بلغة زيغ . [ 83 ] [ 84 ] [ 85 ] [ 86 ]
المحرك 262معهد ماساتشوستس للتكنولوجياإي نكستلالاتايب سكريبتمحرك جافا سكريبت مكتوب بلغة تايب سكريبت لأغراض التطوير والاستكشاف، وهو مصمم أساسًا ليكون تطبيقًا مرجعيًا للغة. [ 41 ]

محركات تاريخية

تم إيقاف تطوير هذه المحركات، وهي ذات أهمية تاريخية في الغالب. قد لا يزال بعضها قيد الاستخدام اليوم لأغراض تراثية (خاصة محركات مايكروسوفت القديمة التي لا تزال تُشحن مع نظام ويندوز ).

محركرخصةمعيارنظام الإنتاج في الوقت المناسب (JIT)مكتوب  فيوصف
موكاملكية خاصةJS1.1 (≈ES1)لالغة سي++أول محرك جافا سكريبت. قام بريندان إيتش بتطوير نموذجه الأولي خلال عشرة أيام في مايو 1995، وتم إصداره في سبتمبر 1995 ضمن متصفح نتسكيب نافيجاتور 2.0b1 . [ 87 ] ونظرًا لتجميد تطوير الميزات في أغسطس 1995، كان المحرك غير مكتمل مقارنةً بتصميم اللغة المُخطط له. تم إصدار النسخة 1.1 مع نافيجاتور 3.0 في عام 1996، مُكملاً بذلك التطوير الأولي للغة، وشكّل أساسًا للإصدار الأول من معيار ECMAScript في عام 1997. امتلك المحرك محللًا تنازليًا تكراريًا يُصدر رمزًا وسيطًا مباشرةً ، وآلة افتراضية قائمة على المكدس، واستخدم عدّ المراجع بدلًا من جامع البيانات المهملة، ومثّل العناصر الأولية كاتحادات مُميزة بدلًا من مؤشرات مُوسومة. يتوفر كود المصدر كجزء من نافيجاتور 3.0.2 من أرشيف الإنترنت . [ 88 ] بالنسبة لنافيجاتور 4.0، أُعيدت كتابة المحرك بالكامل وأُعيد تسميته إلى سبايدر مونكي. [ 89 ]
KJSLGPL-2.0+ES5لالغة سي++المحرك المستخدم أصلاً في Konqueror ، وأحد مكونات KHTML . وهو سلف JavaScriptCore، الذي تفرع منه عام 2001 واختلف عنه اختلافاً كبيراً منذ ذلك الحين. كان في الأصل مترجماً يعتمد على تحليل شجرة بناء الجملة المجردة (AST)، ثم رُقّي إلى مترجم بايت كود (FrostByte) عام 2008. [ 90 ] توقف التطوير إلى حد كبير عندما انتقل Konqueror من KHTML أولاً إلى QtWebKit (JavaScriptCore) ثم إلى QtWebEngine (V8). وفي النهاية، أزال KDE Plasma 6 محرك KJS/KHTML تماماً. [ 91 ]
جافا سكريبتملكية خاصةES3لاسي++ [ 92 ]محرك جافا سكريبت الخاص بمتصفح إنترنت إكسبلورر 3.0 - 8.0. أحد مكونات محرك متصفح MSHTML (Trident) .
جافا سكريبت .NETملكية خاصةES4عبر CLR محرك جافا سكريبت لإطار عمل .NET من الإصدار 1.0 إلى 4.x، طوّرته مايكروسوفت ، ويُستخدم في ASP.NET ، ويعتمد على وقت تشغيل اللغة المشتركة ( CLAN) و COM Interop . طُرح لأول مرة باسم JScript .NET في عام 2000، [ 93 ] مع إصدارات لاحقة سُميت JScript 7.0 وJScript 8.0 [ 94 ] ، وأخيرًا JScript 10.0 في إطار عمل .NET 4.0. [ 95 ] ومع ذلك، فهو لا يرتبط بمحركي JScript (المعروف أيضًا باسم JScript من الإصدار 1.0 إلى 5.8) وJScript9. [ 94 ] يدعم ES3، والعديد من الميزات المقترحة لـ ES4، [ 89 ] بالإضافة إلى العديد من اللهجات الفريدة المتعلقة بـ .NET. [ 96 ] [ 97 ] تم استبعاده من .NET Core ومنصة .NET الحديثة .
شاكرا (JScript9)ملكية خاصةES5نعملغة سي++محرك جافا سكريبت لمتصفح إنترنت إكسبلورر 9.0 - 11.0. عُرض لأول مرة في عام 2010 في مؤتمر MIX 10. [ 98 ] لا يزال يُضمّن في نظام ويندوز 11 باسم JScript9Legacy.dll، وهو بديل متوافق تمامًا لمحرك جافا سكريبت الأصلي (jscript.dll). [ 99 ] [ 100 ]
الخط الخطي أ، الخط الخطي ب، فوثاركملكية خاصةES3لالغة سي++سلسلة من محركات جافا سكريبت المبكرة لمتصفح أوبرا . محرك غير مُسمى في أوبرا 3 (1997-2000). محرك Linear A في أوبرا 4-6 (2000-2002). محرك Linear B في أوبرا 7-9.27 (2002-2007) - دعم كامل لـ ECMAScript. محرك Futhark في أوبرا 9.50-10.20 (2007-2010). [ 101 ]
كاراكانملكية خاصةES5نعملغة سي++محرك جافا سكريبت الخاص بمتصفح أوبرا 10.50 - 12.x (2010-2013). [ 13 ] [ 102 ] وقد تميز باستخدام بايت كود قائم على السجلات وتقنية الترجمة الفورية (JIT). [ 13 ] أما الإصدار الرئيسي التالي، أوبرا 15، فقد انتقل من محرك بريستو إلى محرك ويب كيت / بلينك، بالإضافة إلى محرك جافا سكريبت V8 الخاص به . [ 26 ]
QtScriptLGPL ، GPL ، QtES5لالغة سي++طُوِّرت في الأصل بواسطة شركة Trolltech، المملوكة الآن لشركة Qt . ظهرت لأول مرة في Qt 4.3، ثم أُهملت في Qt 5.5 لصالح QML V4، ثم أُزيلت نهائيًا في Qt 6.5. تعتمد على محرك JavaScriptCore وتضمنت بعض امتدادات ECMAScript الخاصة بـ Qt، مثل اتصالات الإشارة والفتحة على نمط QObject.
إبيميثيوسMPL-1.1 GPL-2.0+ LGPL-2.1+ES4لالغة سي++تطبيق تجريبي من نتسكيب لـ "جافا سكريبت 2.0" تمهيدًا لاقتراح ES4 . [ 89 ] [ 103 ]
التمر الهنديMPL-2.0ES4نعملغة سي++تم استخدام محرك ActionScript وECMAScript في Adobe Flash Player 9. تم تطبيق اقتراح ES4 .
نرجسMPL-1.1+ GPL-2.0+ LGPL-2.1+ES5لاجافا سكريبتمحرك جافا سكريبت مُنفَّذ بلغة جافا سكريبت ( مُقيِّم دائري فائق ) بواسطة بريندان إيتش ، مُبتكر جافا سكريبت. استُخدم للتجربة مع ميزات اللغة الجديدة لجهود ES6. [ 89 ]
روابطGPL-2.0+لالاجكان متصفح الروابط يحتوي على تطبيق أساسي لجافا سكريبت حتى الإصدار 2.1pre28. تمت إزالته في الإصدار 2.1pre29 لكونه "مليئًا بالأخطاء". [ 104 ]
فوياجررخصة جنو العمومية 3.0ES3لاجكان لدى Voyager ، وهو متصفح ويب آخر لأجهزة Amiga في أواخر التسعينيات وأوائل الألفية الثانية، محرك JavaScript خاص به.
سكريبت إيزملكية خاصةES3 [ 105 ]لالغة سي++محرك قديم خاص تم تحديثه آخر مرة في عام 2003. ولا يُعرف إلا باستخدامه في تلسكوب جيمس ويب الفضائي . [ 106 ]

انظر أيضاً

مراجع

  1. لوبر، جين (21 سبتمبر 2015). "دليل لمحركات جافا سكريبت للمبتدئين" . شبكة مطوري تيليريك . مؤرشف من الأصل في 8 ديسمبر 2018. تم الاطلاع عليه في 8 ديسمبر 2018 .
  2. "كيف تعمل تقنية Blink" . تم الاطلاع عليه بتاريخ 12 مارس 2024 .
  3. 1 2 "الوثائق · V8" . جوجل . تم الاسترجاع في 3 مارس 2024 .
  4. 1 2 نيلاتورو، كيرثي (سبتمبر 2020). "WebAssembly: ما أهميته؟" . medium.com . تم الاطلاع عليه في 3 مارس 2024 .
  5. 1 2 إيتش، بريندان (21 يونيو 2011). "مالك وحدة محرك جافا سكريبت الجديد" .
  6. فين جيه إس (17 يونيو 2016)، "بريندان إيتش - الرئيس التنفيذي لشركة بريف" ، يوتيوب ، تم الاطلاع عليه في 7 فبراير 2018 
  7. "اختبار مقارنة شامل للمتصفحات: إنترنت إكسبلورر مقابل فايرفوكس، أوبرا، سفاري، وكروم" . مجلة ألعاب الكمبيوتر والأجهزة . شركة كومبيوتك ميديا ​​إيه جي. 3 يوليو 2009. مؤرشف من الأصل في 2 مايو 2012. تم الاطلاع عليه في 28 يونيو 2010 .
  8. بوردي، كيفن (11 يونيو 2009). "اختبارات سرعة لايف هاكر: سفاري 4، كروم 2" . لايف هاكر . مؤرشف من الأصل في 14 أبريل 2021. تم الاطلاع عليه في 8 مايو 2021 .
  9. "تسأل موزيلا: 'هل أصبحنا سريعين بعد؟'"" . Wired . مؤرشف من الأصل في 22 يونيو 2018. تم الاسترجاع في 18 يناير 2019 .
  10. " أبل تُطلق متصفح سفاري 5" . www.prnewswire.com
  11. شانكلاند، ستيفن (2 مارس 2010). "أوبرا 10.5 تُقدّم مُحرك جافا سكريبت جديد" . سي نت . سي بي إس إنتراكتيف. مؤرشف من الأصل في 3 أكتوبر 2013. تم الاطلاع عليه في 30 يناير 2012 .
  12. "TraceMonkey: JavaScript Lightspeed، مدونة بريندان إيتش" . مؤرشف من الأصل في 4 ديسمبر 2015. تم الاطلاع عليه في 22 يوليو 2020 .
  13. 1 2 3 "كاراكان" . مؤرشف من الأصل في 31 مايو 2009. تم الاطلاع عليه في 9 يوليو 2009 .
  14. "أوبرا 10.50 - متصفح يستحق التبديل إليه؟ - NYTimes.com" . archive.nytimes.com . تم الاطلاع عليه بتاريخ 29 ديسمبر 2025 .
  15. "محرك جافا سكريبت الخاص بمتصفح مايكروسوفت إيدج سيصبح مفتوح المصدر" . 7 ديسمبر 2015.
  16. "عمود مرفقي جديد لمحرك V8" . مدونة كروميوم . 7 ديسمبر 2010. تم الاطلاع عليه بتاريخ 22 أبريل 2011 .
  17. "Maglev - أسرع مُحسِّن JIT لمحرك V8 · V8" .
  18. 1 2 "التكهنات في JavaScriptCore" . 29 يوليو 2020.
  19. 1 2 "SpiderMonkey — وثائق مصدر Firefox" .
  20. 1 2 "نظرة عامة على البنية" . GitHub .
  21. "وضع الأمان الفائق للغاية" . 4 أغسطس 2021.
  22. "يأتي Deno 2 بدعم طويل الأمد وتوافق مع Node.js" . The New Stack . 19 يونيو 2024. تم الاطلاع عليه بتاريخ 25 أغسطس 2025 .
  23. كامدن، ريموند ك. (2015). أباتشي كوردوفا في الميدان . مانينغ. ص 2-15 . ISBN  9781617292392.
  24. "Electron Internals: Using Node as a Library" . electronjs.org . 8 أغسطس 2016. مؤرشف من الأصل في 9 نوفمبر 2017. تم الاطلاع عليه في 3 يوليو 2020 .
  25. 1 2 "موزيلا Asm.js تقترب خطوة أخرى من الأداء الأصلي" . 21 ديسمبر 2013.
  26. 1 2 "Dev.Opera — 300 مليون مستخدم والانتقال إلى WebKit" . مؤرشف من الأصل في 28 يونيو 2014.
  27. سيتم استبدال متصفح مايكروسوفت إيدج القديم بمتصفح مايكروسوفت إيدج الجديد مع إصدار تحديث ويندوز 10 يوم الثلاثاء من شهر أبريل ، مايكروسوفت، 12 فبراير 2021، مؤرشف من الأصل في 11 مارس 2021 ، تم استرجاعه في 12 مارس 2021
  28. 1 2 "JEP 335: إيقاف استخدام محرك جافا سكريبت Nashorn تمهيدًا لإزالته" .
  29. "JavaScriptCore – WebKit" . trac.webkit.org .
  30. "Context Threading: A flexible and efficient dispatch technique for virtual machine interpreters" (PDF) . مؤرشف من الأصل (PDF) بتاريخ 14 مايو 2025.
  31. "تقديم SquirrelFish Extreme" . 18 سبتمبر 2008.
  32. 1 2 "التكهنات في JavaScriptCore" . 29 يوليو 2020.
  33. "مجموعة التغييرات 94559 - WebKit" .
  34. "تقديم WebKit FTL JIT" . 13 مايو 2014.
  35. "تقديم مُجمِّع B3 JIT" . 15 فبراير 2016.
  36. "استهداف محركات الحافة مقابل المحركات القديمة في واجهات برمجة تطبيقات JsRT" . تم الاطلاع عليه بتاريخ 10 سبتمبر 2015 .
  37. "محرك جافا سكريبت LibJS" . libjs.dev . تم الاطلاع عليه بتاريخ 30 يونيو 2023 .
  38. "LibJS: ابدأ بتطوير رمز بايت لمحرك جافا سكريبت :^) · LadybirdBrowser/Ladybird@69dddd4" . GitHub . 
  39. "LibJS: إزالة مُفسِّر شجرة بناء الجملة المجردة :^) · LadybirdBrowser/ladybird@2eaa528" . GitHub . تم الاطلاع عليه بتاريخ 10 يوليو 2024 . 
  40. "تعرّف على متصفح ليدي بيرد، متصفح ويب واعد متعدد المنصات - أخبار جي هاكس التقنية" . 20 يونيو 2023.
  41. 1 2 3 4 "نظرة عامة على تقنيات جافا سكريبت - جافا سكريبت | MDN" . 8 يوليو 2025.
  42. "LibJS: إضافة تطبيق Rust للمحلل المعجمي، والمحلل النحوي، وشجرة بناء الجملة المجردة، ومولد الشفرة البايتية" . GitHub .
  43. "LibWASM: إضافة مترجم بايت كود التجميع المكتوب يدويًا" . GitHub .
  44. "LibWASM: حان وقت JIT" . GitHub .
  45. "تاريخ وحيد القرن" . مؤسسة موزيلا . مؤرشف من الأصل في 22 أكتوبر 2020. تم الاطلاع عليه في 20 مارس 2008 .
  46. ^ "JEP 174: محرك Nashorn JavaScript" .
  47. "GitHub · حيث يتم بناء البرامج" . GitHub . تم الاطلاع عليه بتاريخ 29 ديسمبر 2025 .
  48. "Oracle Nashorn: محرك جافا سكريبت من الجيل التالي لـ JVM" . www.oracle.com .
  49. لاغرغرين، ماركوس. "قصص حرب ناشورن (من جندي مخضرم مصاب بندوب المعركة من شركة إنفوك ديناميك)" (ملف PDF) . شركة أوراكل .
  50. "JEP 372: إزالة محرك جافا سكريبت Nashorn" .
  51. "استخدام Nashorn مع إصدارات Java المختلفة" . GitHub . تم الاطلاع عليه بتاريخ 23 يناير 2025 .
  52. "ترافل: نظام تشغيل ذاتي التحسين" (ملف PDF) . شركة أوراكل . تم الاطلاع عليه بتاريخ 23 أغسطس 2013 .
  53. ويمر، كريستيان؛ وورثينجر، توماس (2012). "ترافل: نظام تشغيل ذاتي التحسين" . وقائع المؤتمر السنوي الثالث حول الأنظمة والبرمجة والتطبيقات: برمجيات من أجل الإنسانية . الصفحات 13-14 . doi : 10.1145/2384716.2384723 . ISBN  978-1-4503-1563-0.
  54. سيتون، كريس (20 سبتمبر 2016). "روبي وجافا سكريبت أسرع مع GraalVM" (ملف PDF) . chrisseaton.com .
  55. "استخدام هيرميس" . فيسبوك . تم الاطلاع عليه بتاريخ 9 أبريل 2021 .
  56. وين ، إليوت؛ تشو، جياشيانغ؛ لو، شيابو؛ روسيلو، جيوفاني؛ ديتريش، ينس (2024). "أبقني على اطلاع دائم: دراسة تجريبية حول محركات جافا سكريبت المدمجة في تطبيقات أندرويد" . وقائع المؤتمر الدولي الحادي والعشرين لاستخراج البيانات من مستودعات البرمجيات (MSR '24) . لشبونة، البرتغال: ACM. الصفحات 361-372 . doi : 10.1145/3643991.3644901 . 
  57. شي، جوانينغ؛ كايزر، م. شاميم؛ راثور، فيجاي سينغ (2023). تكنولوجيا المعلومات والاتصالات للاستراتيجيات التنافسية (ICTCS 2022): استراتيجيات ذكية لتكنولوجيا المعلومات والاتصالات . سبرينغر نيتشر سنغافورة. ص 562. ISBN  9789811993046.
  58. "React Native 0.82 - عصر جديد · React Native" . reactnative.dev . 8 أكتوبر 2025. تم الاطلاع عليه بتاريخ 29 ديسمبر 2025 .
  59. "Duktape" . تم الاطلاع عليه بتاريخ 21 سبتمبر 2013 .
  60. 1 2 3 4 5 منغ وو؛ ويشين دونغ؛ تشيانغ تشاو؛ تشيتشونغ بان؛ باوجيان هوا (2023). "دراسة تجريبية لمحركات جافا سكريبت خفيفة الوزن". المؤتمر الدولي الثالث والعشرون لمعهد مهندسي الكهرباء والإلكترونيات (IEEE) حول جودة البرمجيات وموثوقيتها وأمنها (QRS-C) لعام 2023. معهد مهندسي الكهرباء والإلكترونيات. الصفحات 413-422 . doi : 10.1109/QRS-C60940.2023.00103 . ISBN  979-8-3503-5939-8.
  61. 1 2 مينسو كيم؛ هيوك جين جيونج؛ سو موك مون (2016). محرك جافا سكريبت ذو البصمة الصغيرة . سبرينغر. ص 103 – 116. دوى : 10.1007 / 978-3-319-42304-3_6 . 
  62. 1 2 غرونرت، كاي (2020). "نظرة عامة على محركات جافا سكريبت لوحدات التحكم الدقيقة ذات الموارد المحدودة". المؤتمر الدولي الخامس للتقنيات الذكية والمستدامة (SpliTech) لعام 2020. الصفحات 1-7 . doi : 10.23919/SpliTech49282.2020.9243749 . ISBN  978-953-290-105-4.
  63. "moddable/readme.md" . GitHub . تم الاطلاع عليه في 9 يوليو 2026 .
  64. "Moddable | JavaScript for Embedded" . www.moddable.com .
  65. "MuJS" . تم الاطلاع عليه بتاريخ 22 سبتمبر 2014 .
  66. "محرك جافا سكريبت QuickJS" .
  67. تاداشي سايتو؛ هيديا إيواساكي (2025). "دمج التحسين الثابت والطبيعة الديناميكية في جافا سكريبت". GPCE '25: وقائع المؤتمر الدولي الرابع والعشرين لجمعية ACM SIGPLAN حول البرمجة التوليدية: المفاهيم والتجارب . ACM. الصفحات 41-53 . doi : 10.1145/3742876.3742877 . 
  68. "V4 - Qt Wiki" .
  69. تاندل، مرونالي؛ جوشي، أوداي؛ غولهاني، أميت (2016). " مراجعة الأدبيات: البرمجة النصية في Qt لتطوير محركات البرمجة النصية" (ملف PDF) . المجلة الدولية لعلوم الحاسوب وتقنيات المعلومات . 7 (3): 1347-1350 . تاريخ الاسترجاع : 20 سبتمبر 2025 .
  70. ستراخوف، بافيل فلاديميروفيتش (2018). برمجة الألعاب باستخدام Qt 5: دليل المبتدئين: أنشئ ألعابًا رائعة باستخدام Qt 5 وC++ وQt Quick (الطبعة الثانية ). Packt Publishing Ltd. ISBN  9781788390651تم الاطلاع عليه بتاريخ 21 سبتمبر 2025 .
  71. "برمجة سطح المكتب في بلازما | للمطورين" . develop.kde.org . تم الاطلاع عليه بتاريخ 29 ديسمبر 2025 .
  72. "Qt-5-Beta - Qt Wiki" .
  73. "الميزات الجديدة في Qt 5.2 - ويكي Qt" .
  74. بانو، مانديب؛ كاي، إيان؛ جيل، بود (17-19 أكتوبر 2019). "الثغرات الموروثة: مقارنة بين الترميز الآمن لمحرك جافا سكريبت الإصدار 4 ومحرك جوجل الإصدار 8". المؤتمر السنوي العاشر لتقنية المعلومات والإلكترونيات والاتصالات المتنقلة (IEMCON) لعام 2019. فانكوفر، كولومبيا البريطانية، كندا: IEEE. doi : 10.1109/IEMCON.2019.8936228 .
  75. "بيئة استضافة جافا سكريبت | كيو تي كيو إم إل | كيو تي 6.10.0" .
  76. ^ "V4 - كيو تي ويكي" . wiki.qt.io . تم الاسترجاع في 24 أبريل 2021 .
  77. ^ "قمة المساهمين في Qt-2013-QML-engine - Qt Wiki" .
  78. "إصدارات · سامسونج/إسكارجو" . جيت هاب .
  79. هيوكوو بارك؛ سيونغ هيون كيم (2024). "تحسين استدعاء الذيل المصمم خصيصًا لاستخدام مكدس الذاكرة الأصلي في بيئات تشغيل جافا سكريبت" . IEEE Access . 12 : 111801-111817 . Bibcode : 2024IEEEA..12k1801P . doi : 10.1109/ACCESS.2024.3441750 .
  80. "وحدة تحكم جافا سكريبت" .
  81. "لنقم ببناء محرك جافا سكريبت" . 2019.jsconf.eu . تم الاطلاع عليه بتاريخ 23 مارس 2022 .
  82. "GitHub - boa-dev/boa: Boa هو محرك جافا سكريبت تجريبي وقابل للتضمين مكتوب بلغة Rust" . GitHub . تم الاطلاع عليه بتاريخ 8 أبريل 2022 .
  83. "محرك جافا سكريبت Kiesel" . kiesel.dev . تم الاطلاع عليه بتاريخ 30 سبتمبر 2025 .
  84. كيسيل شبيبة. "كيزل" . Codeberg.org . تم الاسترجاع في 30 سبتمبر 2025 .
  85. "Test262: ECMAScript Test Suite" . تم الاطلاع عليه بتاريخ 30 سبتمبر 2025 .
  86. "مكتبة Temporal_rs متوفرة الآن! مكتبة التاريخ والوقت التي تدعم Temporal في Boa وKiesel وV8" . 24 سبتمبر 2025. تاريخ الاطلاع: 30 سبتمبر 2025 .
  87. "Netscape Navigator 2.0b1 لنظام التشغيل Windows" . مؤرشف من الأصل في 14 يونيو 1997.
  88. "شجرة مصدر برنامج نتسكيب كوميونيكاتور 3.0.2" . Archive.org . 28 أكتوبر 2011. تم الاطلاع عليه بتاريخ 23 سبتمبر 2025 .
  89. 1 2 3 4 ويرفس-بروك، ألين؛ إيتش، بريندان (2020). "جافا سكريبت: أول 20 عامًا" . وقائع مؤتمر ACM حول لغات البرمجة . 4 (HOPL): 1-189 . doi : 10.1145/3386327 .
  90. "أخبار من أرض الفاتحين - مدونات KDE" . blogs.kde.org . تم الاطلاع عليه بتاريخ 29 ديسمبر 2025 .
  91. بروكماير، جو (28 فبراير 2024). "سطح مكتب KDE يحصل على تحديث شامل مع Plasma 6" .
  92. راتاناورابان، باروج؛ ليفشيتس، بنجامين؛ زورن، بنجامين ج. "JSMeter: مقارنة سلوك معايير جافا سكريبت مع تطبيقات الويب الحقيقية" (ملف PDF) . USENIX .
  93. "مقدمة إلى JScript .NET | Microsoft Learn" . msdn.microsoft.com . تم الاطلاع عليه بتاريخ 29 ديسمبر 2025 .
  94. 1 2 "معلومات إصدار JScript" . learn.microsoft.com .
  95. "مرجع جافا سكريبت" . learn.microsoft.com .
  96. "ميزات Microsoft JScript - غير ECMA (Visual Studio - JScript)" . learn.microsoft.com .
  97. "جولة في لغة جافا سكريبت | مايكروسوفت ليرن" . learn.microsoft.com . تم الاطلاع عليه بتاريخ 29 ديسمبر 2025 .
  98. الأسئلة الشائعة ، مايكروسوفت ، 13 مارس 2010، مؤرشفة من الأصل في 22 مارس 2010 ، تم استرجاعها في 18 مارس 2010
  99. "محرك البرمجة النصية JScript9Legacy مُفعّل الآن افتراضيًا - مدونة متخصصي تكنولوجيا المعلومات في ويندوز" . techcommunity.microsoft.com . تاريخ الاطلاع: 29 ديسمبر 2025 .
  100. "هل يستخدم نظام التشغيل Windows 11 22H2 طريقة مختلفة لاستخدام محرك جافا سكريبت؟ - أسئلة وأجوبة مايكروسوفت" . learn.microsoft.com
  101. "تاريخ إصدارات أوبرا المؤرشفة 1-12" .
  102. "مدونة فريق سطح مكتب أوبرا | أوبرا" . مؤرشفة من الأصل في 3 مارس 2006.
  103. "إبيميثيوس" .
  104. "الإصدار 2.1pre17" . مؤرشف من الأصل بتاريخ 11 مارس 2005. تم الاطلاع عليه بتاريخ 16 سبتمبر 2025 .
  105. "محركات ومنتجات جافا سكريبت" .
  106. كلارك، ميتشل (18 أغسطس 2022). "يبدو أن تلسكوب جيمس ويب الفضائي يعمل بلغة جافا سكريبت" . ذا فيرج . تم الاطلاع عليه في 2 سبتمبر 2022 .