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

0001 /*
0002  *  This file is part of the KDE libraries
0003  *  Copyright (C) 2003 Apple Computer, Inc.
0004  *
0005  *  This library is free software; you can redistribute it and/or
0006  *  modify it under the terms of the GNU Library General Public
0007  *  License as published by the Free Software Foundation; either
0008  *  version 2 of the License, or (at your option) any later version.
0009  *
0010  *  This library is distributed in the hope that it will be useful,
0011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013  *  Library General Public License for more details.
0014  *
0015  *  You should have received a copy of the GNU Library General Public License
0016  *  along with this library; see the file COPYING.LIB.  If not, write to
0017  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0018  *  Boston, MA 02110-1301, USA.
0019  *
0020  */
0021 
0022 #include "scope_chain.h"
0023 #include "PropertyNameArray.h"
0024 #include "object.h"
0025 #include "JSVariableObject.h"
0026 
0027 #include <stdio.h>
0028 
0029 namespace KJS
0030 {
0031 
0032 #ifndef NDEBUG
0033 
0034 void ScopeChain::print()
0035 {
0036     ScopeChainIterator scopeEnd = end();
0037     for (ScopeChainIterator scopeIter = begin(); scopeIter != scopeEnd; ++scopeIter) {
0038         JSObject *o = *scopeIter;
0039         PropertyNameArray propertyNames;
0040         // FIXME: should pass ExecState here!
0041         o->getPropertyNames(nullptr, propertyNames);
0042         PropertyNameArrayIterator propEnd = propertyNames.end();
0043 
0044         fprintf(stderr, "----- [scope %p] -----\n", (void *)o);
0045         for (PropertyNameArrayIterator propIter = propertyNames.begin(); propIter != propEnd; ++propIter) {
0046             Identifier name = *propIter;
0047             fprintf(stderr, "%s, ", name.ascii());
0048         }
0049         fprintf(stderr, "\n");
0050     }
0051 }
0052 
0053 #endif
0054 
0055 } // namespace KJS