W3cubDocs

/nginx

Compatibility

njs is created in compliance with ECMAScript 5.1 (strict mode) with some ECMAScript 6 and later extensions. The compliance is still evolving.

What is currently supported

  • Boolean values, numbers, strings, objects, arrays, functions, and regular expressions
  • ES5.1 operators, ES7 exponentiation operators
  • ES5.1 statements: break, catch, continue, do while, else, finally, for, for in, if, return, switch, throw, try, var, while, labeled statements (0.2.8)
  • Math properties:
    • ES6: E, LN10, LN2, LOG10E, LOG2E, PI, SQRT1_2, SQRT2
  • Math methods:
    • ES6: abs, acos, acosh, asin, asinh, atan, atan2, atanh, cbrt, ceil, clz32, cos, cosh, exp, expm1, floor, fround, hypot, imul, log, log10, log1p, log2, max, min, pow, random, round, sign, sin, sinh, sqrt, tan, tanh, trunc
  • Number properties:
    • ES6: EPSILON, MAX_SAFE_INTEGER, MAX_VALUE, MIN_SAFE_INTEGER, MIN_VALUE, NEGATIVE_INFINITY, NaN, POSITIVE_INFINITY
  • Number methods:
    • ES6: isFinite, isInteger, isNaN, isSafeInteger, parseFloat, parseInt
  • String methods:
  • String instance methods:
  • Object methods:
    • ES5.1: create (support without properties list), defineProperties (support without accessor descriptors), defineProperty (support without accessor descriptors), freeze, getOwnPropertyDescriptor, getOwnPropertyDescriptors (0.3.1), getOwnPropertyNames (0.3.1), getPrototypeOf, isExtensible, isFrozen, isSealed, keys, preventExtensions, seal
    • ES8: entries (0.2.7), values (0.2.7)
  • Object instance methods:
    • ES5.1: hasOwnProperty, isPrototypeOf, (0.3.0), propertyIsEnumerable, toString, valueOf
  • Array methods:
    • ES5.1: isArray
    • ES6: of
  • Array instance methods:
    • ES5.1: concat, every, filter, forEach, indexOf, join, lastIndexOf, map, pop, push, reduce, reduceRight, reverse, shift, slice, some, sort, splice, unshift
    • ES6: fill, find, findIndex
    • ES7: includes
  • Function instance methods:
    • ES5.1: apply, bind, call
  • RegExp instance methods:
    • ES5.1: exec, test, toString
  • RegExp ES9 named capture groups (0.3.2)
  • Date methods:
    • ES5.1: now, parse, UTC
  • Date instance methods:
    • ES5.1: getDate, getDay, getFullYear, getHours, getMilliseconds, getMinutes, getMonth, getSeconds, getTime, getTimezoneOffset, getUTCDate, getUTCDay, getUTCFullYear, getUTCHours, getUTCMilliseconds, getUTCMinutes, getUTCMonth, getUTCSeconds, toDateString, toISOString, toLocaleDateString, toLocaleString, toLocaleTimeString, toTimeString, toUTCString, setDate, setFullYear, setHours, setMinutes, setMilliseconds, setMonth, setSeconds, setTime, setUTCDate, setUTCFullYear, setUTCHours, setUTCMilliseconds, setUTCMinutes, setUTCMonth, setUTCSeconds
  • JSON methods:
  • ES5.1 arguments object (0.2.5)
  • ES6 rest parameters syntax (without destructuring support) (0.2.7)
  • ES5.1 global functions: decodeURI, decodeURIComponent, encodeURI, encodeURIComponent, isFinite, isNaN, parseFloat, parseInt
  • Error objects: Error, EvalError, InternalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError
  • clearTimeout and setTimeout functions (0.2.0)
  • File system methods: fs.appendFileSync, fs.readFileSync, fs.writeFileSync
  • Crypto methods (0.2.0): crypto.createHash, crypto.createHmac
  • ES6 modules support: default export and default import statements (0.3.0)
  • ES6 arrow functions (0.3.1)
  • Template literals: multiline strings, expression interpolation, nesting templates (0.3.2)
  • Global objects (0.3.3):

© 2002-2019 Igor Sysoev
© 2011-2019 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/njs/compatibility.html