Est. 1996 Beginner

JScript

Microsoft's dialect of JavaScript - reverse-engineered for Internet Explorer 3.0 in 1996, it scripted the Windows web in the browser-wars era, powered Classic ASP and Windows automation for decades, and still ships inside Windows today.

Created by Microsoft - developed by the Internet Explorer team as an independent, reverse-engineered implementation of Netscape's JavaScript, since Netscape would not license the language to its chief browser rival

Paradigm Multi-paradigm: imperative, object-based (prototype-based), functional-capable scripting, with Microsoft extensions such as conditional compilation and ActiveX object automation
Typing Dynamic, weak
First Appeared 1996 - JScript 1.0 shipped with Internet Explorer 3.0 in August 1996, the same month Netscape Navigator 3.0 shipped with JavaScript 1.1
Latest Version JScript 5.8 (March 2009, with Internet Explorer 8) was the final release of the classic COM engine; the Chakra-based "JScript 9" engine followed in Internet Explorer 9 (March 2011), and its descendant JScript9Legacy is the default Active Scripting engine in Windows 11 24H2 and later

JScript is Microsoft’s dialect of JavaScript - born in August 1996 inside Internet Explorer 3.0 as a reverse-engineered answer to Netscape’s hit scripting language, and destined to outlive the browser that carried it. For a decade it was, by installed base, one of the most widely deployed programming language implementations on Earth: every copy of Windows from Windows 98 onward shipped it, every Internet Explorer ran it, and every Classic ASP server executed it. JScript is also a language of consequence beyond Microsoft’s walls - it was one of the two implementations reconciled into the ECMAScript standard, and the XMLHTTP object first scripted from JScript pages became the seed of Ajax and the modern web application. Today the language is dormant: frozen at its 2009 feature level, retired from the browser, yet still present in Windows 11, where a hardened descendant of its engine quietly runs the scripts that never went away.

History and origins

Netscape’s JavaScript - announced in December 1995 and shipped in Navigator 2.0 in March 1996 - made the web programmable, and Microsoft - then executing its famous pivot toward the Internet - needed a compatible answer for Internet Explorer. Netscape was not about to license its language to its chief rival, so Microsoft’s engineers did what the era demanded: they reverse-engineered it. The result, named JScript to sidestep Sun Microsystems’ “Java” trademark (which Netscape had licensed for the name “JavaScript”), shipped as JScript 1.0 with Internet Explorer 3.0 in August 1996 - the same month Netscape Navigator 3.0 arrived with JavaScript 1.1.

JScript did not arrive alone. It was one of the founding components of Microsoft’s Active Scripting architecture (part of the ActiveX push of 1996): rather than being welded into the browser, the JScript engine was a pluggable COM component that any application could host. This single design decision defined JScript’s career. Within months it was running server-side in Active Server Pages on IIS (JScript 2.0, January 1997), and by 1998 the Windows Script Host in Windows 98 let administrators execute .js files directly on the operating system. The same language ran in the browser, on the web server, and at the Windows command line.

The two-dialect situation - JavaScript and JScript, similar but diverging - was exactly the fragmentation the young web could not afford, and in November 1996 standardization work began at ECMA with both Netscape and Microsoft participating. The resulting ECMA-262 (ECMAScript) standard, published in June 1997, was deliberately written to reconcile the two implementations. JScript 3.0, shipped with Internet Explorer 4.0 in October 1997, was among the first implementations aligned with the new standard, and from then on Microsoft positioned JScript explicitly as its ECMAScript implementation.

Design philosophy

JScript’s design brief was unusual: be JavaScript, but be Microsoft’s JavaScript. That meant near-complete compatibility with the ECMAScript core - the same prototype-based objects, dynamic weak typing, first-class functions, and C-family syntax - extended in directions that served the Windows platform:

  • Active Scripting host neutrality. JScript itself has no I/O, no DOM, no file system. Everything comes from the host: Internet Explorer supplies document and window; ASP supplies Request and Response; Windows Script Host supplies WScript. The language is a pure engine that any COM application can embed - the same architecture that made VBScript its constant sibling.
  • COM and ActiveX automation. new ActiveXObject("Scripting.FileSystemObject") gave JScript scripts the run of the entire Windows automation surface - Office, WMI, ADO databases, the shell. This made a “browser language” into a systems administration tool.
  • Conditional compilation. JScript’s best-known proprietary feature hid engine-specific code inside comment blocks (/*@cc_on ... @*/) that other browsers would ignore - an extension to the ECMAScript standard found in no other implementation, and a period artifact of writing one page for two incompatible browsers.
  • Pragmatic period extensions. JScript exposed Microsoft-specific objects such as Enumerator (for iterating COM collections) and VBArray (for interchange with VBScript’s arrays), stitching the language into the fabric of late-1990s Windows.

Versions and evolution

The classic engine’s history tracks Internet Explorer’s almost exactly:

VersionDateShipped withNotes
1.0Aug 1996Internet Explorer 3.0Initial release
2.0Jan 1997IIS 3.0 (Active Server Pages)Server-side JScript
3.0Oct 1997Internet Explorer 4.0First ECMA-262-aligned release
5.0Mar 1999Internet Explorer 5.0ECMA-262 2nd edition; try/catch
5.5Jul 2000Internet Explorer 5.5ECMA-262 3rd edition
5.6Oct 2001Internet Explorer 6.0Shipped in the IE 6.0 / Windows XP era
5.7Nov 2006Internet Explorer 7.0
5.8Mar 2009Internet Explorer 8.0Native JSON (RFC 4627); final classic release

Two successors branched off. JScript .NET (2002, with the .NET Framework and Visual Studio .NET) reimagined the language as a compiled, optionally-typed citizen of the Common Language Runtime - technically interesting, but stricter semantics cost it the loose dynamism that made JScript useful, and it never found an audience. Chakra (internally “JScript 9”), the from-scratch engine in Internet Explorer 9 (March 2011), brought just-in-time compilation and ECMA-262 5th edition support, and carried Microsoft’s browsers through Internet Explorer 11 and the original Edge.

Classic jscript.dll, meanwhile, simply never left. Frozen at the 5.8 feature level, it kept shipping in every Windows release for Windows Script Host, HTAs, Classic ASP, and innumerable enterprise scripts - a 1996-era interpreter still present on over a billion machines well into the 2020s.

The security afterlife

Longevity had a price. A dynamic interpreter from 1996, reachable from scripts and legacy web content, became one of Windows’ most-attacked legacy components: JScript engine vulnerabilities were repeatedly exploited in the wild, and Microsoft eventually provided ways for enterprises to disable JScript execution in Internet Explorer zones outright. The endgame came in two moves: Internet Explorer 11 was retired on June 15, 2022, and in July 2025 Microsoft announced that beginning with Windows 11 version 24H2, all JScript scripting is handled by default by JScript9Legacy - an Active Scripting engine derived from the Chakra lineage - in place of the original jscript.dll. Existing scripts keep working; the twenty-nine-year-old interpreter finally stepped out of the default path.

Current relevance

JScript is dormant, not dead - and the distinction matters more than for most languages in this encyclopedia, because dormant JScript still runs in production. Classic ASP applications remain supported on modern IIS. Enterprise logon and deployment scripts written for Windows Script Host continue to execute on Windows 11, now atop JScript9Legacy. Anyone with a Windows machine can still open a terminal and run a .js file with cscript.exe, exactly as an administrator would have in 1998:

1
2
3
4
5
// hello.js — run with: cscript //nologo hello.js
WScript.Echo("Hello, World!");

var shell = new ActiveXObject("WScript.Shell");
WScript.Echo("Windows directory: " + shell.ExpandEnvironmentStrings("%WINDIR%"));

No new development happens in the language: Microsoft’s guidance for automation long ago moved to PowerShell, and for web work to standard modern JavaScript. But as living industrial archaeology - a 1990s language still doing its original job on current operating systems - JScript has few rivals.

Why it matters

It co-authored the web’s language standard. ECMA-262 exists in the form it does because there were two JavaScripts in 1996 that had to be reconciled. JScript gave Microsoft its seat at that table, and the standard that resulted - ECMAScript - became the constitution of the world’s most widely deployed programming language.

It accidentally seeded Ajax. The XMLHTTP ActiveX object, scripted from JScript in Internet Explorer, introduced the pattern of fetching data from a server without reloading the page. Standardized elsewhere as XMLHttpRequest, that one JScript-accessible object made Gmail, Google Maps, and the entire single-page-application era possible.

It proved the embeddable-engine model. Active Scripting’s pluggable-engine design - one language runtime, many hosts, from browser to server to shell - prefigured the architecture that Node.js would make famous a decade later with V8: the browser’s language, everywhere.

It is a case study in software longevity. JScript demonstrates both halves of the legacy bargain: code written against it in 1998 still runs in 2026, and the engine that guaranteed that compatibility became such a liability that Microsoft ultimately swapped it out from under the scripts rather than turn them off. Few languages illustrate so cleanly what “backward compatibility” actually costs, and what it buys.

Timeline

1996
JScript 1.0 ships with Internet Explorer 3.0 in August 1996 - Microsoft's clean-room implementation of Netscape's JavaScript, released the same month Navigator 3.0 ships with JavaScript 1.1; in November, work begins at ECMA on standardizing the language, with Microsoft and Netscape both at the table
1997
JScript 2.0 arrives with IIS 3.0's Active Server Pages in January, making JScript a server-side web language alongside VBScript; in June, ECMA-262 1st edition (ECMAScript) is published, and in October JScript 3.0 ships with Internet Explorer 4.0 as the first version aligned with the new standard
1998
Windows Script Host debuts with Windows 98, letting administrators run .js files natively via cscript.exe and wscript.exe and turning JScript into a general-purpose Windows automation language with access to COM objects like FileSystemObject and WScript.Shell
1999
JScript 5.0 ships with Internet Explorer 5.0 in March, tracking ECMA-262 2nd edition and gaining exception handling with try/catch; the same era's XMLHTTP ActiveX object, scripted from JScript, later becomes the foundation of Ajax
2001
JScript 5.6 ships with Internet Explorer 6.0 (released August 2001, bundled with Windows XP that October); together with 5.5's ECMA-262 3rd edition compliance the year before, it fixes the language surface that would define browser scripting for the following decade of IE dominance
2002
JScript .NET ships with the .NET Framework and Visual Studio .NET as a compiled, optionally-typed sibling that targets the Common Language Runtime; syntactically familiar but semantically stricter, it sees little adoption and quietly fades while classic JScript carries on
2009
JScript 5.8 ships with Internet Explorer 8 in March, adding native JSON support (per RFC 4627) - the final version of the classic COM-based engine, whose jscript.dll would nevertheless keep shipping in Windows for more than fifteen years afterward
2011
Internet Explorer 9 ships in March with Chakra (internally "JScript 9"), a new engine with just-in-time compilation and ECMA-262 5th edition support, ending the classic engine's role in the browser while jscript.dll lives on for Windows Script Host and legacy hosts
2022
Internet Explorer 11 is retired on June 15, 2022, closing JScript's browser chapter; the engine itself remains in Windows for Classic ASP, Windows Script Host, and other Active Scripting hosts
2025
Microsoft announces (July 2025) that beginning with Windows 11 version 24H2, the Chakra-derived JScript9Legacy engine handles all JScript scripting by default in place of the 1996-lineage jscript.dll, hardening a nearly thirty-year-old attack surface while preserving backward compatibility

Notable Uses & Legacy

Internet Explorer and the DHTML web

JScript was the scripting engine behind client-side code in Internet Explorer throughout the browser wars and the long IE6 era - powering Dynamic HTML, and hosting the XMLHTTP object whose use from JScript gave rise to the Ajax technique that reshaped web applications

Classic ASP on IIS

Active Server Pages (from IIS 3.0, 1996-97) offered JScript as one of its two built-in server-side languages alongside VBScript; countless intranet and e-commerce sites of the late 1990s and 2000s ran JScript on the server, and Classic ASP is still supported on modern IIS

Windows administration via Windows Script Host

System administrators used JScript .js and .wsf files with cscript.exe/wscript.exe for logon scripts, software deployment, registry edits, and WMI queries - the standard way to automate Windows between batch files and the rise of PowerShell

HTML Applications (HTA) and desktop gadgets

Microsoft's HTA technology let developers build full desktop GUI tools from HTML plus JScript with local-machine privileges, a staple of IT tooling; Windows Vista's Sidebar gadgets were likewise built from HTML, CSS, and script running on the JScript engine

ECMAScript standardization

As one of the two founding implementations represented at ECMA from November 1996, JScript helped shape ECMA-262 itself - the standard was deliberately written to reconcile Netscape's JavaScript and Microsoft's JScript, and JScript 3.0 was among the first shipping implementations of the 1st edition

Language Influence

Influenced By

JavaScript ECMAScript

Influenced

ECMAScript JScript .NET

Running Today

Run examples using the official Docker image:

docker pull
Last updated: