Last change
on this file since 14902 was 14834, checked in by ggaren, 19 years ago |
JavaScriptCore:
Reviewed by TimO, Maciej.
- Merged InterpreterImp code into Interpreter, which implements
all interpreter functionality now. This is part of my continuing quest
to create an external notion of JS "execution context" that is unified and simple --
something to replace the mix of Context, ContextImp, ExecState, Interpreter,
InterpreterImp, and JSRun.
All tests pass. Leaks test has not regressed from its baseline ~207 leaks
with ~3460 leaked nodes.
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bindings/NP_jsobject.cpp:
- bindings/objc/WebScriptObject.mm:
(+[WebScriptObject throwException:]):
- bindings/runtime_root.cpp:
- bindings/runtime_root.h:
- kjs/Context.cpp:
(KJS::Context::Context):
- kjs/ExecState.cpp: Added.
(KJS::ExecState::lexicalInterpreter):
- kjs/ExecState.h: Added.
(KJS::ExecState::dynamicInterpreter):
- kjs/SavedBuiltins.h: Added.
- kjs/bool_object.cpp:
(BooleanPrototype::BooleanPrototype):
- kjs/collector.cpp:
(KJS::Collector::collect):
(KJS::Collector::numInterpreters):
- kjs/context.h:
- kjs/debugger.cpp:
(Debugger::attach):
(Debugger::detach):
- kjs/function.cpp:
(KJS::FunctionImp::callAsFunction):
(KJS::GlobalFuncImp::callAsFunction):
- kjs/function_object.cpp:
(FunctionObjectImp::construct):
- kjs/internal.cpp:
- kjs/internal.h:
- kjs/interpreter.cpp:
(KJS::interpreterMap):
(KJS::Interpreter::Interpreter):
(KJS::Interpreter::init):
(KJS::Interpreter::~Interpreter):
(KJS::Interpreter::globalObject):
(KJS::Interpreter::initGlobalObject):
(KJS::Interpreter::globalExec):
(KJS::Interpreter::checkSyntax):
(KJS::Interpreter::evaluate):
(KJS::Interpreter::builtinObject):
(KJS::Interpreter::builtinFunction):
(KJS::Interpreter::builtinArray):
(KJS::Interpreter::builtinBoolean):
(KJS::Interpreter::builtinString):
(KJS::Interpreter::builtinNumber):
(KJS::Interpreter::builtinDate):
(KJS::Interpreter::builtinRegExp):
(KJS::Interpreter::builtinError):
(KJS::Interpreter::builtinObjectPrototype):
(KJS::Interpreter::builtinFunctionPrototype):
(KJS::Interpreter::builtinArrayPrototype):
(KJS::Interpreter::builtinBooleanPrototype):
(KJS::Interpreter::builtinStringPrototype):
(KJS::Interpreter::builtinNumberPrototype):
(KJS::Interpreter::builtinDatePrototype):
(KJS::Interpreter::builtinRegExpPrototype):
(KJS::Interpreter::builtinErrorPrototype):
(KJS::Interpreter::builtinEvalError):
(KJS::Interpreter::builtinRangeError):
(KJS::Interpreter::builtinReferenceError):
(KJS::Interpreter::builtinSyntaxError):
(KJS::Interpreter::builtinTypeError):
(KJS::Interpreter::builtinURIError):
(KJS::Interpreter::builtinEvalErrorPrototype):
(KJS::Interpreter::builtinRangeErrorPrototype):
(KJS::Interpreter::builtinReferenceErrorPrototype):
(KJS::Interpreter::builtinSyntaxErrorPrototype):
(KJS::Interpreter::builtinTypeErrorPrototype):
(KJS::Interpreter::builtinURIErrorPrototype):
(KJS::Interpreter::mark):
(KJS::Interpreter::interpreterWithGlobalObject):
(KJS::Interpreter::saveBuiltins):
(KJS::Interpreter::restoreBuiltins):
- kjs/interpreter.h:
(KJS::Interpreter::setCompatMode):
(KJS::Interpreter::compatMode):
(KJS::Interpreter::firstInterpreter):
(KJS::Interpreter::nextInterpreter):
(KJS::Interpreter::prevInterpreter):
(KJS::Interpreter::debugger):
(KJS::Interpreter::setDebugger):
(KJS::Interpreter::setContext):
(KJS::Interpreter::context):
- kjs/nodes.cpp:
(StatementNode::hitStatement):
(RegExpNode::evaluate):
- kjs/protect.h:
JavaScriptGlue:
Reviewed by TimO, Maciej.
- JSGlue part of merging InterpreterImp into Interpreter.
Since there's now a kjs forwarding header, I moved all forwarding
headers into a "ForwardingHeaders" directory, like in WebCore.
- ForwardingHeaders: Added.
- ForwardingHeaders/kjs: Added.
- ForwardingHeaders/kjs/ExecState.h: Added.
- ForwardingHeaders/wtf: Added.
- JavaScriptGlue.xcodeproj/project.pbxproj:
- config.h:
- wtf: Removed.
- wtf/AlwaysInline.h: Removed.
- wtf/Assertions.h: Removed.
- wtf/FastMalloc.h: Removed.
- wtf/Forward.h: Removed.
- wtf/HashCountedSet.h: Removed.
- wtf/HashSet.h: Removed.
- wtf/Noncopyable.h: Removed.
- wtf/OwnArrayPtr.h: Removed.
- wtf/OwnPtr.h: Removed.
- wtf/PassRefPtr.h: Removed.
- wtf/Platform.h: Removed.
- wtf/RefPtr.h: Removed.
- wtf/Vector.h: Removed.
WebCore:
Reviewed by TimO, Maciej.
- WebCore part of merging InterpreterImp into Interpreter. No test
because there's no behavior change.
A substantive change here is that ScriptInterpreter::mark must now chain to
Interpreter::mark, since Interpreter needs to mark the things that
InterpreterImp used to mark.
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/kjs_binding.cpp:
- bindings/js/kjs_window.cpp:
(KJS::Window::put):
- bridge/mac/WebCoreFrameBridge.mm:
- bridge/mac/WebCoreScriptDebugger.mm:
(-[WebCoreScriptCallFrame evaluateWebScript:]):
- kwq/KWQPageState.mm:
|
-
Property svn:eol-style
set to
native
|
File size:
1.4 KB
|
Line | |
---|
1 | // -*- c-basic-offset: 2 -*-
|
---|
2 | /*
|
---|
3 | * This file is part of the KDE libraries
|
---|
4 | * Copyright (C) 1999-2001 Harri Porten ([email protected])
|
---|
5 | * Copyright (C) 2001 Peter Kelly ([email protected])
|
---|
6 | * Copyright (C) 2003 Apple Computer, Inc.
|
---|
7 | *
|
---|
8 | * This library is free software; you can redistribute it and/or
|
---|
9 | * modify it under the terms of the GNU Library General Public
|
---|
10 | * License as published by the Free Software Foundation; either
|
---|
11 | * version 2 of the License, or (at your option) any later version.
|
---|
12 | *
|
---|
13 | * This library is distributed in the hope that it will be useful,
|
---|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
16 | * Library General Public License for more details.
|
---|
17 | *
|
---|
18 | * You should have received a copy of the GNU Library General Public License
|
---|
19 | * along with this library; see the file COPYING.LIB. If not, write to
|
---|
20 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
---|
21 | * Boston, MA 02110-1301, USA.
|
---|
22 | *
|
---|
23 | */
|
---|
24 |
|
---|
25 | #include "Context.h"
|
---|
26 | #include "ExecState.h"
|
---|
27 | #include "internal.h"
|
---|
28 |
|
---|
29 | namespace KJS {
|
---|
30 |
|
---|
31 | Interpreter* ExecState::lexicalInterpreter() const
|
---|
32 | {
|
---|
33 | if (!m_context)
|
---|
34 | return dynamicInterpreter();
|
---|
35 |
|
---|
36 | Interpreter* result = Interpreter::interpreterWithGlobalObject(m_context->scopeChain().bottom());
|
---|
37 |
|
---|
38 | if (!result)
|
---|
39 | return dynamicInterpreter();
|
---|
40 |
|
---|
41 | return result;
|
---|
42 | }
|
---|
43 |
|
---|
44 | } // namespace KJS
|
---|
Note:
See
TracBrowser
for help on using the repository browser.