# Library Reference ## Global functions Function | Description --------------------------------|----------------------- regex(pattern, text) | Returns true if the regex pattern matches the text, false otherwise. match(pattern, text) | Returns true if the wildcard pattern matches the text, false otherwise. len(value) | Returns the length of the value, i.e. the number of elements for an array or dictionary, or the length of the string in bytes. union(array, array, ...) | Returns an array containing all unique elements from the specified arrays. intersection(array, array, ...) | Returns an array containing all unique elements which are common to all specified arrays. keys(dict) | Returns an array containing the dictionary's keys. string(value) | Converts the value to a string. number(value) | Converts the value to a number. bool(value) | Converts the value to a bool. random() | Returns a random value between 0 and RAND_MAX (as defined in stdlib.h). log(value) | Writes a message to the log. Non-string values are converted to a JSON string. log(severity, facility, value) | Writes a message to the log. `severity` can be one of `LogDebug`, `LogNotice`, `LogInformation`, `LogWarning`, and `LogCritical`. Non-string values are converted to a JSON string. typeof(value) | Returns the type object for a value. exit(integer) | Terminates the application. ## Math object The global `Math` object can be used to access a number of mathematical constants and functions. ### Math.E Euler's constant. ### Math.LN2 Natural logarithm of 2. ### Math.LN10 Natural logarithm of 10. ### Math.LOG2E Base 2 logarithm of E. ### Math.PI The mathematical constant Pi. ### Math.SQRT1_2 Square root of 1/2. ### Math.SQRT2 Square root of 2. ### Math.abs Signature: function abs(x); Returns the absolute value of `x`. ### Math.acos Signature: function acos(x); Returns the arccosine of `x`. ### Math.asin Signature: function asin(x); Returns the arcsine of `x`. ### Math.atan Signature: function atan(x); Returns the arctangent of `x`. ### Math.atan2 Signature: function atan2(y, x); Returns the arctangent of the quotient of `y` and `x`. ### Math.ceil Signature: function ceil(x); Returns the smallest integer value not less than `x`. ### Math.cos Signature: function cos(x); Returns the cosine of `x`. ### Math.exp Signature: function exp(x); Returns E raised to the `x`th power. ### Math.floor Signature: function floor(x); Returns the largest integer value not greater than `x`. ### Math.isinf Signature: function isinf(x); Returns whether `x` is infinite. ### Math.isnan Signature: function isnan(x); Returns whether `x` is NaN (not-a-number). ### Math.log Signature: function log(x); Returns the natural logarithm of `x`. ### Math.max Signature: function max(...); Returns the largest argument. A variable number of arguments can be specified. If no arguments are given -Infinity is returned. ### Math.min Signature: function min(...); Returns the smallest argument. A variable number of arguments can be specified. If no arguments are given +Infinity is returned. ### Math.pow Signature: function pow(x, y); Returns `x` raised to the `y`th power. ### Math.random Signature: function random(); Returns a pseudo-random number between 0 and 1. ### Math.round Signature: function round(x); Returns `x` rounded to the nearest integer value. ### Math.sign Signature: function sign(x); Returns -1 if `x` is negative, 1 if `x` is positive and 0 if `x` is 0. ### Math.sin Signature: function sin(x); Returns the sine of `x`. ### Math.sqrt Signature: function sqrt(x); Returns the square root of `x`. ### Math.tan Signature: function tan(x); Returns the tangent of `x`. ## Number type ### Number#to_string Signature: function to_string(); The `to_string` method returns a string representation of the number. Example: var example = 7 example.to_string() /* Returns "7" */ ## Boolean type ### Boolean#to_string Signature: function to_string(); The `to_string` method returns a string representation of the boolean value. Example: var example = true example.to_string() /* Returns "true" */ ## String type ### String#find Signature: function find(str, start); Returns the zero-based index at which the string `str` was found in the string. If the string was not found -1 is returned. `start` specifies the zero-based index at which `find` should start looking for the string (defaults to 0 when not specified). Example: "Hello World".find("World") /* Returns 6 */ ### String#len Signature function len(); Returns the length of the string in bytes. Note that depending on the encoding type of the string this is not necessarily the number of characters. Example: "Hello World".len() /* Returns 11 */ ### String#lower Signature: function lower(); Returns a copy of the string with all of its characters converted to lower-case. Example: "Hello World".lower() /* Returns "hello world" */ ### String#upper Signature: function upper(); Returns a copy of the string with all of its characters converted to upper-case. Example: "Hello World".upper() /* Returns "HELLO WORLD" */ ### String#replace Signature: function replace(search, replacement); Returns a copy of the string with all occurences of the string specified in `search` replaced with the string specified in `replacement`. ### String#split Signature: function split(delimiters); Splits a string into individual parts and returns them as an array. The `delimiters` argument specifies the characters which should be used as delimiters between parts. Example: "x-7,y".split("-,") /* Returns [ "x", "7", "y" ] */ ### String#substr Signature: function substr(start, len); Returns a part of a string. The `start` argument specifies the zero-based index at which the part begins. The optional `len` argument specifies the length of the part ("until the end of the string" if omitted). Example: "Hello World".substr(6) /* Returns "World" */ ### String#to_string Signature: function to_string(); Returns a copy of the string. ## Array type ### Array#add Signature: function add(value); Adds a new value after the last element in the array. ### Array#clear Signature: function clear(); Removes all elements from the array. ### Array#clone function clone(); Returns a copy of the array. Note that for elements which are reference values (e.g. objects such as arrays and dictionaries) only the references are copied. ### Array#contains Signature: function contains(value); Returns true if the array contains the specified value, false otherwise. ### Array#len Signature: function len(); Returns the number of elements contained in the array. ### Array#remove Signature: function remove(index); Removes the element at the specified zero-based index. ### Array#set Signature: function set(index, value); Sets the element at the zero-based index to the specified value. The `index` must refer to an element which already exists in the array. ### Array#sort Signature: function sort(less_cmp); Returns a copy of the array where all items are sorted. The items are compared using the `<` (less-than) operator. A custom comparator function can be specified with the `less_cmp` argument. ### Array#join Signature: function join(separator); Joins all elements of the array using the specified separator. ## Dictionary type ### Dictionary#clone Signature: function clone(); Returns a copy of the dictionary. Note that for elements which are reference values (e.g. objects such as arrays and dictionaries) only the references are copied. ### Dictionary#contains Signature: function contains(key); Returns true if a dictionary item with the specified `key` exists, false otherwise. ### Dictionary#len Signature: function len(); Returns the number of items contained in the dictionary. ### Dictionary#remove Signature: function remove(key); Removes the item with the specified `key`. Trying to remove an item which does not exist is a no-op. ### Dictionary#set Signature: function set(key, value); Creates or updates an item with the specified `key` and `value`. ## Function type ### Function#call Signature: function call(thisArg, ...); Invokes the function using an alternative `this` scope. The `thisArg` argument specifies the `this` scope for the function. All other arguments are passed directly to the function. Example: function set_x(val) { this.x = val } dict = {} set_x.call(dict, 7) /* Invokes set_x using `dict` as `this` */ ### Function#callv Signature: function callv(thisArg, args); Invokes the function using an alternative `this` scope. The `thisArg` argument specifies the `this` scope for the function. The items in the `args` array are passed to the function as individual arguments. Example: function set_x(val) { this.x = val } var dict = {} var args = [ 7 ] set_x.callv(dict, args) /* Invokes set_x using `dict` as `this` */