You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This document tracks the compatibility between this VBScript engine implementation and Microsoft's Internet Explorer VBScript engine.
Status Legend:
βοΈ Implemented - Feature is fully or partially implemented
β Not Implemented - Feature is not yet implemented but may be in the future
β Intentionally Not Implemented - Feature will not be implemented due to platform limitations
Core Language Features
Data Types
Feature
Status
Notes
Empty
βοΈ
Null
βοΈ
Nothing
βοΈ
Boolean
βοΈ
Byte
βοΈ
Integer
βοΈ
Long
βοΈ
Single
βοΈ
Double
βοΈ
Currency
βοΈ
Date
βοΈ
String
βοΈ
Object
βοΈ
Variant
βοΈ
Error
βοΈ
Variables and Constants
Feature
Status
Notes
Dim
βοΈ
ReDim
βοΈ
With Preserve support
Const
βοΈ
Public
βοΈ
Private
βοΈ
Option Explicit
βοΈ
Operators
Feature
Status
Notes
Arithmetic (+, -, *, /)
βοΈ
Integer Division ()
βοΈ
Modulo (Mod)
βοΈ
Exponentiation (^)
βοΈ
Concatenation (&)
βοΈ
Comparison (=, <>, <, >, <=, >=)
βοΈ
Is
βοΈ
And
βοΈ
Or
βοΈ
Not
βοΈ
Xor
βοΈ
Eqv
βοΈ
Imp
βοΈ
Operator Precedence
βοΈ
Control Flow Statements
Feature
Status
Notes
If...Then...Else
βοΈ
Single-line and multi-line
ElseIf
βοΈ
For...Next
βοΈ
With Step support
For Each...Next
βοΈ
Do...Loop
βοΈ
While/Until variants
While...Wend
βοΈ
Select Case
βοΈ
With Case Else
Exit (Do/For/Sub/Function/Property)
βοΈ
With...End With
βοΈ
GoTo
βοΈ
With label support
On Error
βοΈ
Resume Next, GoTo 0
Resume
βοΈ
Partial implementation
Procedures and Classes
Procedures
Feature
Status
Notes
Sub
βοΈ
Function
βοΈ
Call
βοΈ
ByVal
βοΈ
ByRef
βοΈ
Default behavior
Optional Parameters
βοΈ
With default values
ParamArray
βοΈ
Classes
Feature
Status
Notes
Class...End Class
βοΈ
New
βοΈ
Property Get
βοΈ
Property Let
βοΈ
Property Set
βοΈ
Me
βοΈ
Initialize Event
βοΈ
Class_Initialize
Terminate Event
βοΈ
Class_Terminate
Built-in Functions
String Functions
Function
Status
Notes
Len
βοΈ
Left
βοΈ
Right
βοΈ
Mid
βοΈ
InStr
βοΈ
InStrRev
βοΈ
LCase
βοΈ
UCase
βοΈ
LTrim
βοΈ
RTrim
βοΈ
Trim
βοΈ
Replace
βοΈ
StrReverse
βοΈ
Space
βοΈ
String
βοΈ
Create repeated character string
Asc
βοΈ
AscW
βοΈ
Chr
βοΈ
ChrW
βοΈ
StrComp
βοΈ
Split
βοΈ
Join
βοΈ
Filter
βοΈ
Format
βοΈ
Custom format strings
LSet
βοΈ
RSet
βοΈ
Mathematical Functions
Function
Status
Notes
Abs
βοΈ
Sgn
βοΈ
Sqr
βοΈ
Int
βοΈ
Fix
βοΈ
Round
βοΈ
Atn
βοΈ
Cos
βοΈ
Sin
βοΈ
Tan
βοΈ
Exp
βοΈ
Log
βοΈ
Natural logarithm
Rnd
βοΈ
Randomize
βοΈ
Hex
βοΈ
Oct
βοΈ
Date and Time Functions
Function
Status
Notes
Now
βοΈ
Date
βοΈ
Time
βοΈ
Year
βοΈ
Month
βοΈ
Day
βοΈ
Weekday
βοΈ
Hour
βοΈ
Minute
βοΈ
Second
βοΈ
DateAdd
βοΈ
DateDiff
βοΈ
DatePart
βοΈ
DateSerial
βοΈ
TimeSerial
βοΈ
DateValue
βοΈ
TimeValue
βοΈ
MonthName
βοΈ
WeekdayName
βοΈ
Timer
βοΈ
Conversion Functions
Function
Status
Notes
CBool
βοΈ
CByte
βοΈ
CCur
βοΈ
CDate
βοΈ
CDbl
βοΈ
CInt
βοΈ
CLng
βοΈ
CSng
βοΈ
CStr
βοΈ
CVar
βοΈ
CVErr
βοΈ
Val
βοΈ
Str
βοΈ
FormatNumber
βοΈ
Uses Intl API with locale support
FormatCurrency
βοΈ
Auto-detects currency from locale
FormatPercent
βοΈ
Uses Intl API with locale support
FormatDateTime
βοΈ
Uses Intl API with locale support
Inspection Functions
Function
Status
Notes
IsArray
βοΈ
IsDate
βοΈ
IsEmpty
βοΈ
IsNull
βοΈ
IsNumeric
βοΈ
IsObject
βοΈ
VarType
βοΈ
TypeName
βοΈ
Array Functions
Function
Status
Notes
Array
βοΈ
LBound
βοΈ
UBound
βοΈ
Erase
βοΈ
Full implementation for fixed-size arrays
Filter
βοΈ
Other Functions
Function
Status
Notes
Eval
βοΈ
Execute
βοΈ
Dynamic code execution in current scope
ExecuteGlobal
βοΈ
Dynamic code execution in global scope
MsgBox
βοΈ
Browser simulation using alert/confirm
InputBox
βοΈ
Browser simulation using prompt
GetRef
βοΈ
GetLocale
βοΈ
Uses Intl API to detect browser locale
SetLocale
βοΈ
Sets locale, returns LCID
CreateObject
β
COM objects unavailable in browser
GetObject
β
COM objects unavailable in browser
LoadPicture
βοΈ
Returns stub IPictureDisp object
RGB
βοΈ
Returns RGB color value
QBColor
βοΈ
Returns legacy color value
ScriptEngine
βοΈ
Returns "VBScript"
ScriptEngineMajorVersion
βοΈ
Returns 10
ScriptEngineMinorVersion
βοΈ
Returns 8
ScriptEngineBuildVersion
βοΈ
Returns 16384
Objects
Err Object
Property/Method
Status
Notes
Number
βοΈ
Description
βοΈ
Source
βοΈ
Clear
βοΈ
Raise
βοΈ
HelpContext
β
Windows Help system
HelpFile
β
Windows Help system
RegExp Object
Feature
Status
Notes
RegExp Object
βοΈ
Pattern
βοΈ
Global
βοΈ
IgnoreCase
βοΈ
Multiline
βοΈ
Execute Method
βοΈ
Test Method
βοΈ
Replace Method
βοΈ
Match Object
βοΈ
FirstIndex, Length, Value
Matches Collection
βοΈ
Count, Item
SubMatches Collection
βοΈ
Class Object
Feature
Status
Notes
Class definition
βοΈ
Public members
βοΈ
Private members
βοΈ
Property procedures
βοΈ
Methods
βοΈ
VBArray Object (JavaScript-side)
VBArray is a JavaScript-side object for accessing VBScript arrays from JavaScript.
It provides backward compatibility with early Internet Explorer, which required
wrapping VBScript arrays before accessing them from JavaScript.
Feature
Status
Notes
VBArray constructor
βοΈ
Wraps internal VbArray for JS access
dimensions()
βοΈ
Returns number of dimensions
lbound()
βοΈ
Returns lower bound of a dimension
ubound()
βοΈ
Returns upper bound of a dimension
getItem()
βοΈ
Gets value at specified indices
toArray()
βοΈ
Converts to JavaScript array
Configuration: The injectVBArrayToGlobalThis option (default: true) controls
whether VBArray is available as globalThis.VBArray. When enabled, legacy code
using new VBArray(vbArray) will work. Modern code can access VBScript arrays
directly without wrapping.
Statements
Statement
Status
Notes
Call
βοΈ
Class
βοΈ
Const
βοΈ
Dim
βοΈ
Do...Loop
βοΈ
Erase
βοΈ
Execute
βοΈ
ExecuteGlobal
βοΈ
Exit
βοΈ
For...Next
βοΈ
For Each...Next
βοΈ
Function
βοΈ
GoTo
βοΈ
If...Then...Else
βοΈ
On Error
βοΈ
Option Explicit
βοΈ
Private
βοΈ
Property Get/Let/Set
βοΈ
Public
βοΈ
Randomize
βοΈ
ReDim
βοΈ
Rem
βοΈ
Select Case
βοΈ
Set
βοΈ
Sub
βοΈ
While...Wend
βοΈ
With
βοΈ
Constants
String Constants
Constant
Status
Notes
vbCr
βοΈ
vbCrLf
βοΈ
vbFormFeed
βοΈ
vbLf
βοΈ
vbNewLine
βοΈ
vbNullChar
βοΈ
vbNullString
βοΈ
vbTab
βοΈ
vbVerticalTab
βοΈ
VarType Constants
Constant
Status
Notes
vbEmpty
βοΈ
vbNull
βοΈ
vbInteger
βοΈ
vbLong
βοΈ
vbSingle
βοΈ
vbDouble
βοΈ
vbCurrency
βοΈ
vbDate
βοΈ
vbString
βοΈ
vbObject
βοΈ
vbError
βοΈ
vbBoolean
βοΈ
vbVariant
βοΈ
vbByte
βοΈ
vbArray
βοΈ
MsgBox Constants
Constant
Status
Notes
vbOKOnly
βοΈ
vbOKCancel
βοΈ
vbAbortRetryIgnore
βοΈ
vbYesNoCancel
βοΈ
vbYesNo
βοΈ
vbRetryCancel
βοΈ
vbCritical
βοΈ
vbQuestion
βοΈ
vbExclamation
βοΈ
vbInformation
βοΈ
vbDefaultButton1/2/3
βοΈ
vbOK
βοΈ
vbCancel
βοΈ
vbAbort
βοΈ
vbRetry
βοΈ
vbIgnore
βοΈ
vbYes
βοΈ
vbNo
βοΈ
Date Constants
Constant
Status
Notes
vbSunday - vbSaturday
βοΈ
vbUseSystemDayOfWeek
βοΈ
vbFirstJan1
βοΈ
vbFirstFourDays
βοΈ
vbFirstFullWeek
βοΈ
vbGeneralDate
βοΈ
vbLongDate
βοΈ
vbShortDate
βοΈ
vbLongTime
βοΈ
vbShortTime
βοΈ
Comparison Constants
Constant
Status
Notes
vbBinaryCompare
βοΈ
vbTextCompare
βοΈ
vbDatabaseCompare
βοΈ
Falls back to locale-aware comparison
Other Constants
Constant
Status
Notes
vbObjectError
βοΈ
COM Objects
All COM objects features are intentionally not implemented due to browser security restrictions.
These functions rely on the JavaScript environment's native ActiveXObject support. In Internet Explorer, this allows creating COM objects including FileSystemObject, Word.Application, Excel.Application, etc. However, modern JavaScript environments (Chrome, Firefox, Edge, Node.js) do not support ActiveXObject. The author of this project may create a separate project in the future to implement polyfills for common COM objects (such as FileSystemObject, WScript.Shell, etc.) in modern JavaScript environments. This is beyond the scope of this VBScript engine project.