From: Jacek Caban jacek@codeweavers.com
--- dlls/jscript/arraybuf.c | 2 +- dlls/jscript/jsdisp.idl | 3 ++- dlls/mshtml/script.c | 15 ++++++++++++--- dlls/mshtml/tests/documentmode.js | 4 ++-- 4 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/dlls/jscript/arraybuf.c b/dlls/jscript/arraybuf.c index fc01773338f..cb3eef271de 100644 --- a/dlls/jscript/arraybuf.c +++ b/dlls/jscript/arraybuf.c @@ -700,7 +700,7 @@ HRESULT init_arraybuf_constructors(script_ctx_t *ctx) HRESULT hres; unsigned i;
- if(ctx->version < SCRIPTLANGUAGEVERSION_ES5) + if(ctx->version < SCRIPTLANGUAGEVERSION_ES5_1) return S_OK;
if(!(arraybuf = calloc(1, FIELD_OFFSET(ArrayBufferInstance, buf[0])))) diff --git a/dlls/jscript/jsdisp.idl b/dlls/jscript/jsdisp.idl index f45640d7ee7..a9941b98070 100644 --- a/dlls/jscript/jsdisp.idl +++ b/dlls/jscript/jsdisp.idl @@ -80,7 +80,8 @@ interface IWineJSDispatchHost : IDispatchEx
const unsigned int SCRIPTLANGUAGEVERSION_HTML = 0x400; const unsigned int SCRIPTLANGUAGEVERSION_ES5 = 0x102; -const unsigned int SCRIPTLANGUAGEVERSION_ES6 = 0x103; +const unsigned int SCRIPTLANGUAGEVERSION_ES5_1 = 0x103; +const unsigned int SCRIPTLANGUAGEVERSION_ES6 = 0x104;
[ object, diff --git a/dlls/mshtml/script.c b/dlls/mshtml/script.c index 2748622fa12..a42ce16ea54 100644 --- a/dlls/mshtml/script.c +++ b/dlls/mshtml/script.c @@ -151,10 +151,19 @@ static BOOL init_script_engine(ScriptHost *script_host, IActiveScript *script) 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_IE11) - script_mode = SCRIPTLANGUAGEVERSION_ES6; - else if(compat_mode >= COMPAT_MODE_IE9) + switch(compat_mode) { + case COMPAT_MODE_IE9: script_mode = SCRIPTLANGUAGEVERSION_ES5; + break; + case COMPAT_MODE_IE10: + script_mode = SCRIPTLANGUAGEVERSION_ES5_1; + break; + case COMPAT_MODE_IE11: + script_mode = SCRIPTLANGUAGEVERSION_ES6; + break; + default: + break; + } script_mode |= SCRIPTLANGUAGEVERSION_HTML; } V_VT(&var) = VT_I4; diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js index 6cacb0f2303..ace0bcad06e 100644 --- a/dlls/mshtml/tests/documentmode.js +++ b/dlls/mshtml/tests/documentmode.js @@ -4626,10 +4626,10 @@ async_test("window own props", function() { ["Worker",10], ["XDomainRequest",0,10], ["XMLDocument",11], "XMLHttpRequest", ["XMLHttpRequestEventTarget",10], "XMLSerializer", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "testprop", "undefined", "unescape" ], [ - ["AesGcmEncryptResult",11], ["ANGLE_instanced_arrays",11], ["AnimationEvent",10], ["ApplicationCache",10], ["ArrayBuffer",9,9], "Audio", ["AudioTrack",10], ["AudioTrackList",10], + ["AesGcmEncryptResult",11], ["ANGLE_instanced_arrays",11], ["AnimationEvent",10], ["ApplicationCache",10], "Audio", ["AudioTrack",10], ["AudioTrackList",10], "BeforeUnloadEvent", ["Blob",10], "BookmarkCollection", "CanvasGradient", "CanvasPattern", "CanvasPixelArray", "CanvasRenderingContext2D", "CDATASection", ["CloseEvent",10], "CompositionEvent", "ControlRangeCollection", "Coordinates", ["Crypto",11], ["CryptoOperation",11], "CSSFontFaceRule", "CSSImportRule", ["CSSKeyframeRule",10], ["CSSKeyframesRule",10], - "CSSMediaRule", "CSSNamespaceRule", "CSSPageRule", "CSSRuleList", "DataTransfer", ["DataView",9,9], "Debug", ["DeviceAcceleration",11], ["DeviceMotionEvent",11], + "CSSMediaRule", "CSSNamespaceRule", "CSSPageRule", "CSSRuleList", "DataTransfer", "Debug", ["DeviceAcceleration",11], ["DeviceMotionEvent",11], ["DeviceOrientationEvent",11], ["DeviceRotationRate",11], ["DOMError",10], "DOMException", ["DOMSettableTokenList",10], ["DOMStringList",10], ["DOMStringMap",11], "DragEvent", ["ErrorEvent",10], "EventException", ["EXT_texture_filter_anisotropic",11], ["File",10], ["FileList",10], ["FileReader",10], ["Float32Array",10], ["Float64Array",10], "FocusEvent", ["FormData",10], "Geolocation", "GetObject", ["HTMLAllCollection",11], "HTMLAppletElement", "HTMLAreasCollection", "HTMLAudioElement", "HTMLBaseElement",