JScript
Developer Microsoft | | |
First appeared | 1996 | |
---|---|---|
Stable release | 9.0
/ March 2011 | |
Website | learn | |
Major implementations | ||
Active Scripting, JScript .NET |
JScript is Microsoft's
web browser.JScript is implemented as an
JScript was first supported in the Internet Explorer 3.0 browser released in August 1996. Its most recent version is JScript 9.0, included in Internet Explorer 9.
JScript 10.0[5] is a separate dialect, also known as JScript .NET, which adds several new features from the abandoned fourth edition of the ECMAScript standard. It must be compiled for .NET Framework version 2 or version 4, but static type annotations are optional.
JScript has been criticized for being insecure and having multiple security bugs "exploited by nation-state actors",[6] leading Microsoft to add an option to disable it.[7]
Comparison to JavaScript
As explained by Douglas Crockford in his talk titled The JavaScript Programming Language on YUI Theater,
[Microsoft] did not want to deal with Sun Microsystems about the trademark issue, and so they called their implementation JScript. A lot of people think that JScript and JavaScript are different but similar languages. That's not the case. They are just different names for the same language, and the reason the names are different was to get around trademark issues.[8]
However, JScript supports
Other internal implementation differences between JavaScript and JScript, at some point in time, are noted on the
Versions
JScript (COM Classic)
The original JScript is an Active Scripting engine. Like other Active Scripting languages, it is built on the COM/OLE Automation platform and provides scripting capabilities to host applications.
This is the version used when hosting JScript inside a Web page displayed by
JScript is sometimes referred to as "classic JScript" or "Active Scripting JScript" to differentiate it from newer .NET-based versions.
Some versions of JScript are available for multiple versions of Internet Explorer and Windows. For example, JScript 5.7 was introduced with
Microsoft's implementation of ECMAScript 5th Edition in
Version | Date | Introduced with[16] | Based on[note 1] | Similar JavaScript version |
---|---|---|---|---|
1.0 | Aug 1996 | Internet Explorer 3.0 | Netscape JavaScript | 1.0 |
2.0 | Jan 1997 | Windows IIS 3.0 | Netscape JavaScript | 1.1 |
3.0 | Oct 1997 | Internet Explorer 4.0
|
ECMA-262 1st edition[note 2] | 1.3 |
4.0 | Visual Studio 6.0 (as part of Visual InterDev )
|
ECMA-262 1st edition | 1.3 | |
5.0 | Mar 1999 | Internet Explorer 5.0
|
ECMA-262 2nd edition | 1.4 |
5.1 | Internet Explorer 5.01 | ECMA-262 2nd edition | 1.4 | |
5.5 | Jul 2000 | Internet Explorer 5.5 & Windows CE 4.2
|
ECMA-262 3rd edition | 1.5 |
5.6 | Oct 2001 | Windows CE 5.0
|
ECMA-262 3rd edition | 1.5 |
5.7 | Nov 2006 | Internet Explorer 7.0 | ECMA-262 3rd edition[19] + ECMA-327 (ES-CP)[note 3] | 1.5 |
5.8 | Mar 2009 | Internet Explorer 8.0 & Internet Explorer Mobile 6.0 | ECMA-262 3rd edition + ECMA-327 (ES-CP)[note 3] + JSON (RFC 4627) | 1.5 |
JScript is also available on Windows CE (included in Windows Mobile, optional in Windows Embedded CE). The Windows CE version lacks Active Debugging.
Managed JScript
Managed JScript is an implementation of JScript for the Dynamic Language Runtime, it is part of Microsoft's dynamic languages for .NET along with IronRuby, IronPython, and Dynamic Visual Basic. Unlike JScript .NET, which is less dynamic than the original JScript but provides
While it is primarily designed to be used within Silverlight and ASP.NET at this time, it can also easily be embedded within any .NET application.
(Source: JScript Blog, Jim Hugunin's Thinking Dynamic blog, Source: Blog of Jitu)
Two builds of Managed JScript exist: one for the Desktop CLR and one for the Silverlight CoreCLR
Version | Date | Introduced with | Based on | Platform |
---|---|---|---|---|
1.0.0.0 | 2007 | ASP.NET Futures (July 2007 preview) | ECMA-262 3rd edition | Desktop CLR 2.0 |
1.1.20625.0 | 2007 | Microsoft Silverlight 1.1 Alpha (Sep 2007 refresh) |
ECMA-262 3rd edition | CoreCLR 1.1 |
Managed JScript is not supported in the .NET Compact Framework.
(Source: files versions of Microsoft.JScript.Runtime.dll in ASP.NET Futures and Silverlight 1.1 folders)
JScript "Chakra" (JsRT)
JScript "Chakra" is based on the JScript (COM classic) version, but it has been redesigned to improve performance in Internet Explorer 9[20] at the expense of proper Active Scripting engine compatibility. It requires a specific Microsoft JavaScript Hosting (JsRT) API for proper use. Therefore, it is installed side by side with JScript 5.x and is only used by Internet Explorer 9 and later as well as JsRT hosts, while other Active Scripting hosts keep using the 5.x version when requesting the JScript engine.
Version | Date | Introduced with[21] | Based on[22] | Similar JavaScript version |
---|---|---|---|---|
Chakra 9.0 | Mar 2011 | Internet Explorer 9.0 | ECMA-262 5th edition | 1.8.1 |
Chakra 10.0 | Sep 2012 | Internet Explorer 10.0 | ECMA-262 5.1 edition | |
Chakra 11.0 | Oct 2013 | Internet Explorer 11.0 | ECMA-262 6th edition | |
Chakra Edge | Jul 2015 | Edge / Windows 10 | ECMA-262 5.1 to 9 (2018) edition
(kept up to date without engine versioning) |
There are two versions of the Chakra engine, the original one used by Internet Explorer 9 and later, and sometimes referred to as "jscript9.dll" or "legacy Chakra engine", and a second one used by Microsoft Edge browser and sometimes referred to as "new Chakra engine", "Edge engine" or "Chakra.dll". Both Chakra versions can be used by other applications using the JsRT API and can be installed side by side.[23]
See separate page about new Chakra (Edge) engine.
JScript .NET (CLI)
JScript .NET is a
Version | Platform | Date | Introduced with | Based on |
---|---|---|---|---|
7.0 | Desktop CLR 1.0 | 2002-01-05 | Microsoft .NET Framework 1.0 |
ECMA-262 3rd edition[note 4] |
7.1 | Desktop CLR 1.1 | 2003-04-01 | Microsoft .NET Framework 1.1 |
ECMA-262 3rd edition[note 4] |
8.0 | Desktop CLR 2.0 | 2005-11-07 | Microsoft .NET Framework 2.0 |
ECMA-262 3rd edition[note 4] |
10.0 | Desktop CLR 4.0 | 2010-08-03 | Microsoft .NET Framework 4.0 |
ECMA-262 3rd edition[note 4] |
JScript .NET is not supported in the .NET Compact Framework.[citation needed]
Note: JScript .NET versions are not related to classic JScript versions. JScript .NET is a separate product. Even though JScript .NET is not supported within the Visual Studio IDE, its versions are in sync with other .NET languages versions (
.NET Framework 3.0 and 3.5 are built on top of 2.0 and do not include the newer JScript.NET release (version 10.0 for .NET Framework 4.0).
(Source: file version of jsc.exe JScript.NET compiler and Microsoft.JScript.dll installed with .NET Framework)
See also
Notes
- ^ JScript supports various features not specified in the ECMA standard,[17] as does JavaScript.
- ^ Microsoft said JScript 3.0 was "the first scripting language to fully conform to the ECMA-262 standard".[18]
- ^ a b JScript 5.7 includes an implementation of the ECMAScript Compact Profile (ECMA-327) which turns off features not required by the ES-CP when using the "JScript.Compact" ProgID.[citation needed]
- ^ a b c d JScript .NET is "being developed in conjunction with ECMAScript Edition 4".[24]
References
- ^ "Types of Script Files". Msdn.microsoft.com. 24 October 2011. Retrieved 2012-08-17.
- ^ "Disabling legacy scripting engine JScript in Internet Explorer". TECHCOMMUNITY.MICROSOFT.COM. 2020-10-13. Retrieved 2021-11-15.
- ^ "JScript (ECMAScript3)". Msdn.microsoft.com. 24 October 2011. Retrieved 2012-08-17.
- ^ "What Is WSH?". Msdn.microsoft.com. 24 October 2011. Retrieved 2012-08-17.
- ^ What is JScript 10.0?
- ^ Cimpanu, Catalin. "Microsoft adds option to disable JScript in Internet Explorer". ZDNet. Retrieved 2021-11-15.
- ^ "Option to disable JScript execution in Internet Explorer". support.microsoft.com. Retrieved 2021-11-15.
- ^ Douglas Crockford, The JavaScript Programming Language
- ^ "The World of JScript, JavaScript, ECMAScript". Blogs.msdn.microsoft.com. 15 August 2007. Retrieved 2017-10-21.
- ^ "script element". Msdn.microsoft.com. Retrieved 2017-10-16.
- ^ "Microsoft-Edge Dev-Guide". Docs.microsoft.com. Retrieved 2017-10-18.
- ^ "Documenting the Web Together". Blogs.windows.com. 18 October 2017. Retrieved 2017-10-18.
- ^ "Javascript Language Reference (Microsoft Docs)". Docs.microsoft.com. Retrieved 2017-10-18.
- ^ "JavaScript Objects (Microsoft Docs)". Docs.microsoft.com. Retrieved 2017-10-18.
- ^ "What's New in ASP.NET 4.5 and Visual Web Developer 11 Beta: The Official Microsoft ASP.NET Site". 13 May 2022.
"What's New for ASP.NET 4.5 and Web Development in Visual Studio 11 Beta". 12 May 2015. - ^ Version Information (Windows Scripting – JScript), Microsoft, retrieved 2010-05-31
- ^ Microsoft JScript Features – Non-ECMA (Windows Scripting – JScript), Microsoft, retrieved 2010-05-31
- ^ Microsoft Embraces ECMA Internet Scripting Standard; Delivers Industry's First ECMA-Compliant Scripting Language, JScript 3.0, In Key Microsoft Products, Microsoft, 1997-06-30, archived from the original on 2009-01-12
- ^ Lakshman, Pratap. "JScript Deviations from ES3" (PDF). The Register. Situation Publishing / Microsoft. Retrieved 9 February 2020.
- ^ Niyogi, Shanku (18 March 2010). "The New JavaScript Engine in Internet Explorer 9". IEBlog (archives). Microsoft. Retrieved 19 February 2020.
- ^ Version Information (Windows Scripting – JScript), Microsoft, retrieved 2010-05-31
- ^ "Internet Explorer Standards Support Documents". Open Specifications (Microsoft Docs). Microsoft. Retrieved 19 February 2020.
- ^ "Targeting Microsoft Edge vs. Legacy Engines in JsRT APIs". Microsoft Edge documentation (Microsoft Docs). Microsoft. Retrieved 19 February 2020.
- ^ What Is JScript .NET?, Microsoft