File indexing completed on 2024-05-12 15:43:16

0001 /*
0002  *  Copyright (C) 2003, 2007 Apple Inc. All rights reserved.
0003  *
0004  *  This library is free software; you can redistribute it and/or
0005  *  modify it under the terms of the GNU Library General Public
0006  *  License as published by the Free Software Foundation; either
0007  *  version 2 of the License, or (at your option) any later version.
0008  *
0009  *  This library is distributed in the hope that it will be useful,
0010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  *  Library General Public License for more details.
0013  *
0014  *  You should have received a copy of the GNU Library General Public License
0015  *  along with this library; see the file COPYING.LIB.  If not, write to
0016  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  *  Boston, MA 02110-1301, USA.
0018  *
0019  */
0020 
0021 #include "CommonIdentifiers.h"
0022 
0023 #include "JSLock.h"
0024 
0025 namespace KJS
0026 {
0027 
0028 const char *const nullCString = nullptr;
0029 
0030 #define INITIALIZE_PROPERTY_NAME(name) , name ( #name )
0031 
0032 CommonIdentifiers::CommonIdentifiers()
0033     : nullIdentifier(nullCString)
0034     , underscoreProto("__proto__")
0035     KJS_COMMON_IDENTIFIERS_EACH_PROPERTY_NAME(INITIALIZE_PROPERTY_NAME)
0036 {
0037 }
0038 
0039 CommonIdentifiers *CommonIdentifiers::shared()
0040 {
0041     static CommonIdentifiers *sharedInstance;
0042     if (!sharedInstance) {
0043         JSLock lock;
0044         sharedInstance = new CommonIdentifiers;
0045     }
0046     return sharedInstance;
0047 }
0048 
0049 } // namespace KJS