1 /* 2 * Copyright (C) 2003, 2007, 2009 Apple Inc. All rights reserved. 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public License 15 * along with this library; see the file COPYING.LIB. If not, write to 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 * Boston, MA 02110-1301, USA. 18 * 19 */ 20 21 #ifndef CommonIdentifiers_h 22 #define CommonIdentifiers_h 23 24 #include "Identifier.h" 25 #include <wtf/Noncopyable.h> 26 27 // MarkedArgumentBuffer of property names, passed to a macro so we can do set them up various 28 // ways without repeating the list. 29 #define JSC_COMMON_IDENTIFIERS_EACH_PROPERTY_NAME(macro) \ 30 macro(__defineGetter__) \ 31 macro(__defineSetter__) \ 32 macro(__lookupGetter__) \ 33 macro(__lookupSetter__) \ 34 macro(apply) \ 35 macro(arguments) \ 36 macro(call) \ 37 macro(callee) \ 38 macro(caller) \ 39 macro(compile) \ 40 macro(configurable) \ 41 macro(constructor) \ 42 macro(create) \ 43 macro(defineProperty) \ 44 macro(defineProperties) \ 45 macro(enumerable) \ 46 macro(eval) \ 47 macro(exec) \ 48 macro(fromCharCode) \ 49 macro(global) \ 50 macro(get) \ 51 macro(getPrototypeOf) \ 52 macro(getOwnPropertyDescriptor) \ 53 macro(getOwnPropertyNames) \ 54 macro(hasOwnProperty) \ 55 macro(ignoreCase) \ 56 macro(index) \ 57 macro(input) \ 58 macro(isArray) \ 59 macro(isPrototypeOf) \ 60 macro(keys) \ 61 macro(length) \ 62 macro(message) \ 63 macro(multiline) \ 64 macro(name) \ 65 macro(now) \ 66 macro(parse) \ 67 macro(propertyIsEnumerable) \ 68 macro(prototype) \ 69 macro(set) \ 70 macro(source) \ 71 macro(test) \ 72 macro(toExponential) \ 73 macro(toFixed) \ 74 macro(toISOString) \ 75 macro(toJSON) \ 76 macro(toLocaleString) \ 77 macro(toPrecision) \ 78 macro(toString) \ 79 macro(UTC) \ 80 macro(value) \ 81 macro(valueOf) \ 82 macro(writable) \ 83 macro(displayName) 84 85 namespace JSC { 86 87 class CommonIdentifiers : public Noncopyable { 88 private: 89 CommonIdentifiers(JSGlobalData*); 90 friend class JSGlobalData; 91 92 public: 93 const Identifier emptyIdentifier; 94 const Identifier underscoreProto; 95 const Identifier thisIdentifier; 96 97 #define JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL(name) const Identifier name; 98 JSC_COMMON_IDENTIFIERS_EACH_PROPERTY_NAME(JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL) 99 #undef JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL 100 }; 101 102 } // namespace JSC 103 104 #endif // CommonIdentifiers_h 105