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