Jacek Caban : mshtml: Introduce ES6 JavaScript mode and use it in IE11 compat mode.

Alexandre Julliard julliard at winehq.org
Thu Apr 22 15:55:24 CDT 2021


Module: wine
Branch: master
Commit: 6e292a745f8b7305e0c747bb2a6c718aada47c7e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=6e292a745f8b7305e0c747bb2a6c718aada47c7e

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Apr 22 01:46:51 2021 +0200

mshtml: Introduce ES6 JavaScript mode and use it in IE11 compat mode.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/jscript/jscript.h | 3 ++-
 dlls/mshtml/script.c   | 5 ++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/jscript/jscript.h b/dlls/jscript/jscript.h
index 02420349d8d..94f8440362e 100644
--- a/dlls/jscript/jscript.h
+++ b/dlls/jscript/jscript.h
@@ -42,9 +42,10 @@
 #define SCRIPTLANGUAGEVERSION_HTML 0x400
 
 /*
- * This is Wine jscript extension for ES5 compatible mode. Allowed only in HTML mode.
+ * This is Wine jscript extension for ES5 and ES6 compatible mode. Allowed only in HTML mode.
  */
 #define SCRIPTLANGUAGEVERSION_ES5  0x102
+#define SCRIPTLANGUAGEVERSION_ES6  0x103
 
 typedef struct _jsval_t jsval_t;
 typedef struct _jsstr_t jsstr_t;
diff --git a/dlls/mshtml/script.c b/dlls/mshtml/script.c
index ec739c4777f..8f7f502e121 100644
--- a/dlls/mshtml/script.c
+++ b/dlls/mshtml/script.c
@@ -66,6 +66,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
 /* See jscript.h in jscript.dll. */
 #define SCRIPTLANGUAGEVERSION_HTML 0x400
 #define SCRIPTLANGUAGEVERSION_ES5  0x102
+#define SCRIPTLANGUAGEVERSION_ES6  0x103
 
 struct ScriptHost {
     IActiveScriptSite              IActiveScriptSite_iface;
@@ -154,7 +155,9 @@ static BOOL init_script_engine(ScriptHost *script_host)
     compat_mode = lock_document_mode(script_host->window->doc);
     script_mode = compat_mode < COMPAT_MODE_IE8 ? SCRIPTLANGUAGEVERSION_5_7 : SCRIPTLANGUAGEVERSION_5_8;
     if(IsEqualGUID(&script_host->guid, &CLSID_JScript)) {
-        if(compat_mode >= COMPAT_MODE_IE9)
+        if(compat_mode >= COMPAT_MODE_IE11)
+            script_mode = SCRIPTLANGUAGEVERSION_ES6;
+        else if(compat_mode >= COMPAT_MODE_IE9)
             script_mode = SCRIPTLANGUAGEVERSION_ES5;
         script_mode |= SCRIPTLANGUAGEVERSION_HTML;
     }




More information about the wine-cvs mailing list