pacparser

Used by: pactester, python pacparser, old findproxyforurl.net backend.

Helper library

The checker runs this engine's own PAC helper library, copied verbatim at v1.5.3 (LGPL-3.0-or-later). Upstream source.

Version ranges and quirks

Later ranges list only what changes compared with the range before.

pacparser ≤ 1.4 (<=1.4.6)

SpiderMonkey 1.7 engine: ES3 syntax only.

BehaviourValueSource
alert() outputerror
alert() is not defined before 1.5.1, so calling it throws.
doc, unverified
Non-ASCII result rejectedfalsecode, verified 2026-10-04
DNS lookupssynccode, verified 2026-10-04
dnsResolve is IPv4 onlytruecode, verified 2026-10-04
JavaScript level accepted3
SpiderMonkey 1.7 accepts ES3 syntax only; the checker approximates it with an ES3 parser.
doc, verified 2026-10-04
Calls FindProxyForURLEx if definedtruecode, verified 2026-10-04
Microsoft *Ex functionstruedoc, verified 2026-10-04
Global variables persist between callstruecode, verified 2026-10-04
Host lower-cased by the enginefalsecode, verified 2026-10-04
myIpAddress() sourceuser_suppliedcode, verified 2026-10-04
Native (C++) bindingsdnsResolve, myIpAddress, dnsResolveEx, myIpAddressExdoc, verified 2026-10-04
On exceptionerrorcode, verified 2026-10-04
On non-string / undefined resultstringify
A missing return value becomes the string "undefined".
code, verified 2026-10-04
URL passed to FindProxyForURLnonecode, verified 2026-10-04

pacparser 1.5.0 (1.5.0)

First QuickJS release: modern JavaScript syntax.

BehaviourValueSource
JavaScript level acceptedlatestdoc, verified 2026-10-04

pacparser ≥ 1.5.1 (>=1.5.1)

QuickJS-ng; adds alert() and console.log().

BehaviourValueSource
alert() outputconsolecode, verified 2026-10-04
Native (C++) bindingsdnsResolve, myIpAddress, dnsResolveEx, myIpAddressEx, alertcode, verified 2026-10-04

Function availability

Derived from each engine's vendored helper library plus its native bindings (see engines).
Functionchromium
<=51
chromium
>=52
firefox
all
pacparser
<=1.4.6
pacparser
1.5.0
pacparser
>=1.5.1
reference
all
isPlainHostNameyesyesyesyesyesyesyes
dnsDomainIsyesyesyesyesyesyesyes
localHostOrDomainIsyesyesyesyesyesyesyes
isResolvableyesyesyesyesyesyesyes
isInNetyesyesyesyesyesyesyes
dnsResolveyesyesyesyesyesyesyes
myIpAddressyesyesyesyesyesyesyes
dnsDomainLevelsyesyesyesyesyesyesyes
shExpMatchyesyesyesyesyesyesyes
weekdayRangeyesyesyesyesyesyesyes
dateRangeyesyesyesyesyesyesyes
timeRangeyesyesyesyesyesyesyes
alertyesyesyesnonoyesyes
dnsResolveExyesyesnoyesyesyesno
myIpAddressExyesyesnoyesyesyesno
isResolvableExyesyesnoyesyesyesno
isInNetExyesyesnoyesyesyesno
sortIpAddressListyesyesnonononono

Rules with notes for pacparser