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(constructor) \ 41 macro(eval) \ 42 macro(exec) \ 43 macro(fromCharCode) \ 44 macro(global) \ 45 macro(getPrototypeOf) \ 46 macro(hasOwnProperty) \ 47 macro(ignoreCase) \ 48 macro(index) \ 49 macro(input) \ 50 macro(isPrototypeOf) \ 51 macro(length) \ 52 macro(message) \ 53 macro(multiline) \ 54 macro(name) \ 55 macro(now) \ 56 macro(parse) \ 57 macro(propertyIsEnumerable) \ 58 macro(prototype) \ 59 macro(source) \ 60 macro(test) \ 61 macro(toExponential) \ 62 macro(toFixed) \ 63 macro(toISOString) \ 64 macro(toJSON) \ 65 macro(toLocaleString) \ 66 macro(toPrecision) \ 67 macro(toString) \ 68 macro(UTC) \ 69 macro(valueOf) \ 70 macro(displayName) 71 72 namespace JSC { 73 74 class CommonIdentifiers : public Noncopyable { 75 private: 76 CommonIdentifiers(JSGlobalData*); 77 friend class JSGlobalData; 78 79 public: 80 const Identifier nullIdentifier; 81 const Identifier emptyIdentifier; 82 const Identifier underscoreProto; 83 const Identifier thisIdentifier; 84 85 #define JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL(name) const Identifier name; 86 JSC_COMMON_IDENTIFIERS_EACH_PROPERTY_NAME(JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL) 87 #undef JSC_IDENTIFIER_DECLARE_PROPERTY_NAME_GLOBAL 88 }; 89 90 } // namespace JSC 91 92 #endif // CommonIdentifiers_h 93