source: webkit/trunk/JavaScriptCore/runtime/ScopeChain.cpp@ 48331

Last change on this file since 48331 was 47288, checked in by Darin Adler, 16 years ago

JavaScriptCore: Rename the confusing isObject(<class>) to inherits(<class>).
It still works on non-objects, returning false.

Patch by Darin Adler <Darin Adler> on 2009-08-14
Reviewed by Sam Weinig.

  • runtime/ArrayConstructor.cpp:

(JSC::arrayConstructorIsArray): Removed unneeded isObject call
and updated remaining isObject call to new name, inherits.

  • runtime/JSCell.h: Renamed isObject(<class>) to inherits(<class>)

but more importantly, made it non-virtual (it was already inline)
so it is now as fast as JSObject::inherits was.

  • runtime/JSObject.h: Removed inherits function since the one

in the base class is fine as-is. Also made various JSCell functions
that should not be called on JSObject uncallable by making them
both private and not implemented.
(JSC::JSCell::inherits): Updated name.
(JSC::JSValue::inherits): Ditto.

  • debugger/Debugger.cpp:

(JSC::Debugger::recompileAllJSFunctions):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::unwindCallFrame):

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncToLocaleString):
(JSC::arrayProtoFuncConcat):

  • runtime/BooleanPrototype.cpp:

(JSC::booleanProtoFuncToString):
(JSC::booleanProtoFuncValueOf):

  • runtime/DateConstructor.cpp:

(JSC::constructDate):

  • runtime/DatePrototype.cpp:

(JSC::dateProtoFuncToString):
(JSC::dateProtoFuncToUTCString):
(JSC::dateProtoFuncToISOString):
(JSC::dateProtoFuncToDateString):
(JSC::dateProtoFuncToTimeString):
(JSC::dateProtoFuncToLocaleString):
(JSC::dateProtoFuncToLocaleDateString):
(JSC::dateProtoFuncToLocaleTimeString):
(JSC::dateProtoFuncGetTime):
(JSC::dateProtoFuncGetFullYear):
(JSC::dateProtoFuncGetUTCFullYear):
(JSC::dateProtoFuncToGMTString):
(JSC::dateProtoFuncGetMonth):
(JSC::dateProtoFuncGetUTCMonth):
(JSC::dateProtoFuncGetDate):
(JSC::dateProtoFuncGetUTCDate):
(JSC::dateProtoFuncGetDay):
(JSC::dateProtoFuncGetUTCDay):
(JSC::dateProtoFuncGetHours):
(JSC::dateProtoFuncGetUTCHours):
(JSC::dateProtoFuncGetMinutes):
(JSC::dateProtoFuncGetUTCMinutes):
(JSC::dateProtoFuncGetSeconds):
(JSC::dateProtoFuncGetUTCSeconds):
(JSC::dateProtoFuncGetMilliSeconds):
(JSC::dateProtoFuncGetUTCMilliseconds):
(JSC::dateProtoFuncGetTimezoneOffset):
(JSC::dateProtoFuncSetTime):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::dateProtoFuncSetYear):
(JSC::dateProtoFuncGetYear):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • runtime/JSActivation.cpp:

(JSC::JSActivation::argumentsGetter):

  • runtime/JSValue.h:
  • runtime/RegExpConstructor.cpp:

(JSC::constructRegExp):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncTest):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncCompile):
(JSC::regExpProtoFuncToString):

  • runtime/ScopeChain.cpp:

(JSC::ScopeChain::localDepth):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncReplace):
(JSC::stringProtoFuncToString):
(JSC::stringProtoFuncMatch):
(JSC::stringProtoFuncSearch):
(JSC::stringProtoFuncSplit):
Updated to new name, inherits, from old name, isObject.

WebCore: Rename the confusing isObject(<class>) to inherits(<class>).
It still works on non-objects, returning false.

Patch by Darin Adler <Darin Adler> on 2009-08-14
Reviewed by Sam Weinig.

  • bindings/js/JSEventTarget.cpp:

(WebCore::toEventTarget):

  • bindings/js/JSGeolocationCustom.cpp:

(WebCore::createPositionCallback):
(WebCore::createPositionErrorCallback):

  • bindings/js/JSNodeFilterCustom.cpp:

(WebCore::toNodeFilter):

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::send):

  • bindings/js/JSXSLTProcessorCustom.cpp:

(WebCore::JSXSLTProcessor::importStylesheet):
(WebCore::JSXSLTProcessor::transformToFragment):
(WebCore::JSXSLTProcessor::transformToDocument):

  • bindings/scripts/CodeGeneratorJS.pm:
  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::callObjCFallbackObject):

  • bridge/runtime_method.cpp:

(JSC::callRuntimeMethod):
Updated to new name, inherits, from old name, isObject.

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1/*
2 * Copyright (C) 2003, 2006, 2008 Apple Inc.
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#include "config.h"
22#include "ScopeChain.h"
23
24#include "JSActivation.h"
25#include "JSGlobalObject.h"
26#include "JSObject.h"
27#include "PropertyNameArray.h"
28#include <stdio.h>
29
30namespace JSC {
31
32#ifndef NDEBUG
33
34void ScopeChainNode::print() const
35{
36 ScopeChainIterator scopeEnd = end();
37 for (ScopeChainIterator scopeIter = begin(); scopeIter != scopeEnd; ++scopeIter) {
38 JSObject* o = *scopeIter;
39 PropertyNameArray propertyNames(globalObject()->globalExec());
40 o->getPropertyNames(globalObject()->globalExec(), propertyNames);
41 PropertyNameArray::const_iterator propEnd = propertyNames.end();
42
43 fprintf(stderr, "----- [scope %p] -----\n", o);
44 for (PropertyNameArray::const_iterator propIter = propertyNames.begin(); propIter != propEnd; propIter++) {
45 Identifier name = *propIter;
46 fprintf(stderr, "%s, ", name.ascii());
47 }
48 fprintf(stderr, "\n");
49 }
50}
51
52#endif
53
54int ScopeChain::localDepth() const
55{
56 int scopeDepth = 0;
57 ScopeChainIterator iter = this->begin();
58 ScopeChainIterator end = this->end();
59 while (!(*iter)->inherits(&JSActivation::info)) {
60 ++iter;
61 if (iter == end)
62 break;
63 ++scopeDepth;
64 }
65 return scopeDepth;
66}
67
68} // namespace JSC
Note: See TracBrowser for help on using the repository browser.