JavaScript and web standards
The Workers runtime provides the following standardized APIs for use by scripts running at the edge.
JavaScript standards
Cloudflare Workers uses the V8 JavaScript engine from Google Chrome. The Workers runtime is updated at least once a week, to at least the version that is currently used by Chrome’s stable release. This means you can safely use the latest JavaScript features, with no need for transpilers.
All of the standard built-in objects supported by the current Google Chrome stable release are supported, with a few notable exceptions:
eval()
is not allowed for security reasons.new Function
is not allowed for security reasons.Date.now()
returns the time of the last I/O; it does not advance during code execution.
Web global APIs
The following methods are available per the Worker Global Scope:
Base64 utility methods
Timers
-
- Schedules a function to execute every time a given number of milliseconds elapses.
-
- Cancels the repeated execution set using
setInterval()
.
- Cancels the repeated execution set using
-
- Schedules a function to execute in a given amount of time.
-
- Cancels the delayed execution set using
setTimeout()
.
- Cancels the delayed execution set using
EventTarget and Event
The
EventTarget
and
Event
API allow objects to publish and subscribe to events.
AbortController and AbortSignal
The
AbortController
and
AbortSignal
APIs provide a common model for canceling asynchronous operations.
Fetch global
Encoding API
Both TextEncoder
and TextDecoder
support UTF-8 encoding/decoding.
Refer to the MDN documentation for more information.
URL API
The URL API supports URLs conforming to HTTP and HTTPs schemes.
Refer to the MDN documentation for more information
URLPattern API
The URLPattern API provides a mechanism for matching URLs based on a convenient pattern syntax.
Refer to the MDN documentation for more information.
navigator.userAgent
When the
global_navigator
compatibility flag is set, the
navigator.userAgent
property is available with the value 'Cloudflare-Workers'
. This can be used, for example, to reliably determine that code is running within the Workers environment.