es5-compliance

ES5 Compliance for ServiceNow

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "es5-compliance" with this command: npx skills add groeimetai/snow-flow/groeimetai-snow-flow-es5-compliance

ES5 Compliance for ServiceNow

ServiceNow runs on Mozilla Rhino engine which only supports ES5 JavaScript (2009 standard). All server-side scripts MUST use ES5 syntax.

Forbidden Syntax (WILL CAUSE SyntaxError)

ES6+ Syntax ES5 Alternative

const x = 5

var x = 5

let items = []

var items = []

() => {}

function() {}

Hello ${name}

'Hello ' + name

for (x of arr)

for (var i = 0; i < arr.length; i++)

{a, b} = obj

var a = obj.a; var b = obj.b;

[a, b] = arr

var a = arr[0]; var b = arr[1];

...spread

Use Array.prototype.slice.call()

class MyClass {}

Use constructor functions

async/await

Use GlideRecord callbacks

Promise

Use GlideRecord with callbacks

Common Patterns

Variable Declarations

// WRONG - ES6 const MAX_RETRIES = 3 let currentUser = gs.getUser()

// CORRECT - ES5 var MAX_RETRIES = 3 var currentUser = gs.getUser()

Functions

// WRONG - Arrow functions var active = incidents.filter((inc) => inc.active) var process = () => { return "done" }

// CORRECT - ES5 functions var active = [] for (var i = 0; i < incidents.length; i++) { if (incidents[i].active) { active.push(incidents[i]) } } var process = function () { return "done" }

String Concatenation

// WRONG - Template literals var message = Incident ${number} assigned to ${user}

// CORRECT - String concatenation var message = "Incident " + number + " assigned to " + user

Loops

// WRONG - for...of for (var item of items) { gs.info(item) }

// CORRECT - Traditional for loop for (var i = 0; i < items.length; i++) { gs.info(items[i]) }

Default Parameters

// WRONG - Default parameters function process(incident, priority = 3) { // ... }

// CORRECT - Manual defaults function process(incident, priority) { if (typeof priority === "undefined") { priority = 3 } // ... }

Automatic Validation

Before deploying any server-side script:

  • Check for const /let declarations - convert to var

  • Check for arrow functions =>

  • convert to function()

  • Check for template literals `

  • convert to string concatenation

  • Check for destructuring {a, b}

  • convert to explicit property access

  • Check for for...of loops - convert to index-based loops

Exception: Client Scripts

Client-side scripts (Client Scripts, UI Policies) run in the browser and MAY support ES6+ depending on user's browser. However, for maximum compatibility, ES5 is still recommended.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

predictive-intelligence

No summary provided by upstream source.

Repository SourceNeeds Review
General

scheduled-jobs

No summary provided by upstream source.

Repository SourceNeeds Review
General

document-management

No summary provided by upstream source.

Repository SourceNeeds Review
General

reporting-dashboards

No summary provided by upstream source.

Repository SourceNeeds Review