/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* vim: set sw=4 ts=8 et tw=80 ft=c: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * Declare pre-interned atoms for easy use by SpiderMonkey's C++ code. * These entries define two things, where is the macros' first * argument: * * - js::PropertyName *Atom: a member of JSAtomState pointing to the * atom itself. Usually accessed as cx->runtime->atomState.Atom. * * - const char js__str[]: a global within SpiderMonkey, holding the * atom's name. Some macros skip this, because it's already defined * elsewhere. * * DEFINE_ATOM(id, name) * Define an atom whose JavaScript string's value is |name|. * * DEFINE_PROTOTYPE_ATOM(id) * Define an atom whose name is the same as one of those defined in * jsproto.tbl. The code that processes that has already declared and * defined the js__str global, so this defines only the JSAtomState * member. * * DEFINE_KEYWORD_ATOM(id) * Define an atom whose name is the same as one of those defined in * jskeyword.tbl. The code that processes that has already declared and * defined the js__str global, so this defines only the JSAtomState * member. */ DEFINE_ATOM(anonymous, "anonymous") DEFINE_ATOM(apply, "apply") DEFINE_ATOM(arguments, "arguments") DEFINE_ATOM(arity, "arity") DEFINE_ATOM(BYTES_PER_ELEMENT, "BYTES_PER_ELEMENT") DEFINE_ATOM(call, "call") DEFINE_ATOM(callee, "callee") DEFINE_ATOM(caller, "caller") DEFINE_ATOM(classPrototype, "prototype") DEFINE_ATOM(constructor, "constructor") DEFINE_ATOM(each, "each") DEFINE_ATOM(eval, "eval") DEFINE_ATOM(fileName, "fileName") DEFINE_ATOM(get, "get") DEFINE_ATOM(global, "global") DEFINE_ATOM(ignoreCase, "ignoreCase") DEFINE_ATOM(index, "index") DEFINE_ATOM(input, "input") DEFINE_ATOM(toISOString, "toISOString") DEFINE_ATOM(iterator, "__iterator__") DEFINE_ATOM(join, "join") DEFINE_ATOM(lastIndex, "lastIndex") DEFINE_ATOM(length, "length") DEFINE_ATOM(lineNumber, "lineNumber") DEFINE_ATOM(message, "message") DEFINE_ATOM(multiline, "multiline") DEFINE_ATOM(name, "name") DEFINE_ATOM(next, "next") DEFINE_ATOM(noSuchMethod, "__noSuchMethod__") DEFINE_ATOM(objectNull, "[object Null]") DEFINE_ATOM(objectUndefined, "[object Undefined]") DEFINE_ATOM(of, "of") DEFINE_ATOM(proto, "__proto__") DEFINE_ATOM(set, "set") DEFINE_ATOM(source, "source") DEFINE_ATOM(stack, "stack") DEFINE_ATOM(sticky, "sticky") DEFINE_ATOM(toGMTString, "toGMTString") DEFINE_ATOM(toLocaleString, "toLocaleString") DEFINE_ATOM(toSource, "toSource") DEFINE_ATOM(toString, "toString") DEFINE_ATOM(toUTCString, "toUTCString") DEFINE_ATOM(valueOf, "valueOf") DEFINE_ATOM(toJSON, "toJSON") DEFINE_ATOM(void0, "(void 0)") DEFINE_ATOM(enumerable, "enumerable") DEFINE_ATOM(configurable, "configurable") DEFINE_ATOM(writable, "writable") DEFINE_ATOM(value, "value") DEFINE_ATOM(test, "test") DEFINE_ATOM(useStrict, "use strict") DEFINE_ATOM(loc, "loc") DEFINE_ATOM(line, "line") DEFINE_ATOM(Infinity, "Infinity") DEFINE_ATOM(NaN, "NaN") DEFINE_ATOM(builder, "builder") #if JS_HAS_XML_SUPPORT DEFINE_ATOM(etago, "") DEFINE_ATOM(qualifier, "::") DEFINE_ATOM(space, " ") DEFINE_ATOM(stago, "<") DEFINE_ATOM(star, "*") DEFINE_ATOM(starQualifier, "*::") DEFINE_ATOM(tagc, ">") DEFINE_ATOM(xml, "xml") DEFINE_ATOM(functionNamespaceURI, "@mozilla.org/js/function") #endif DEFINE_PROTOTYPE_ATOM(Proxy) DEFINE_ATOM(getOwnPropertyDescriptor, "getOwnPropertyDescriptor") DEFINE_ATOM(getPropertyDescriptor, "getPropertyDescriptor") DEFINE_ATOM(defineProperty, "defineProperty") DEFINE_KEYWORD_ATOM(delete) DEFINE_ATOM(getOwnPropertyNames, "getOwnPropertyNames") DEFINE_ATOM(enumerate, "enumerate") DEFINE_ATOM(fix, "fix") DEFINE_ATOM(has, "has") DEFINE_ATOM(hasOwn, "hasOwn") DEFINE_ATOM(keys, "keys") DEFINE_ATOM(iterate, "iterate") DEFINE_PROTOTYPE_ATOM(WeakMap) DEFINE_ATOM(buffer, "buffer") DEFINE_ATOM(byteLength, "byteLength") DEFINE_ATOM(byteOffset, "byteOffset") DEFINE_KEYWORD_ATOM(return) DEFINE_KEYWORD_ATOM(throw) DEFINE_ATOM(url, "url") DEFINE_ATOM(innermost, "innermost") DEFINE_ATOM(XMLList, "XMLList") DEFINE_ATOM(decodeURI, "decodeURI") DEFINE_ATOM(decodeURIComponent, "decodeURIComponent") DEFINE_ATOM(defineGetter, "__defineGetter__") DEFINE_ATOM(defineSetter, "__defineSetter__") DEFINE_ATOM(encodeURI, "encodeURI") DEFINE_ATOM(encodeURIComponent, "encodeURIComponent") DEFINE_ATOM(escape, "escape") DEFINE_ATOM(hasOwnProperty, "hasOwnProperty") DEFINE_ATOM(isFinite, "isFinite") DEFINE_ATOM(isNaN, "isNaN") DEFINE_ATOM(isPrototypeOf, "isPrototypeOf") DEFINE_ATOM(isXMLName, "isXMLName") DEFINE_ATOM(lookupGetter, "__lookupGetter__") DEFINE_ATOM(lookupSetter, "__lookupSetter__") DEFINE_ATOM(parseFloat, "parseFloat") DEFINE_ATOM(parseInt, "parseInt") DEFINE_ATOM(propertyIsEnumerable, "propertyIsEnumerable") DEFINE_ATOM(unescape, "unescape") DEFINE_ATOM(uneval, "uneval") DEFINE_ATOM(unwatch, "unwatch") DEFINE_ATOM(watch, "watch")