Control characters are special, invisible characters in the ASCII range 0-31. These characters are rarely used in JavaScript strings so a regular expression containing these characters is most likely a mistake.

ECMAScript provides several global objects that are intended to be used as-is. Some of these objects look as if they could be constructors due their capitalization (such as Math and JSON) but will throw an error if you try to execute them as functions.

It's a common mistake in JavaScript to create an object with just a setter for a property but never have a corresponding getter defined for it. Without a getter, you cannot read the property, so it ends up not being used.

Implement the actual logic for your rule in /eslint/lib/load-rules-async.js.

Run the tests again. This time they should all pass.

To get your rule running in the Orion product's validator, there are additional steps:

Create strings for the validation message(s) generated by your rule in /javascript/nls/root/problems.js.

Create a short string describing what your rule does in /javascript/nls/root/messages.js.

Add an entry to the orion.core.setting declaration in /javascript/plugins/javascriptPlugin.js. This allows your rule to be configured from the JS validator settings page. Make sure it references the same nameKey used in messages.js.

Add a config entry for your rule to /javascript/ruleData.js.

Add your rule to the #updated() handler in /javascript/validator.js.

Reload the JS plugin, and your rule should now be configurable from the Settings page, and properly set up for translation too.