Changeset 23841 in webkit
- Timestamp:
- Jun 27, 2007 8:34:49 PM (17 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r23840 r23841 1 2007-06-27 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej. 4 5 2nd patch for http://bugs.webkit.org/show_bug.cgi?id=14111 6 Autogenerate Event JS binding 7 8 - Cleanup kjs_events 9 10 * bindings/js/kjs_events.cpp: 11 (WebCore::JSAbstractEventListener::JSAbstractEventListener): 12 (WebCore::JSAbstractEventListener::handleEvent): 13 (WebCore::JSAbstractEventListener::isHTMLEventListener): 14 (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener): 15 (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener): 16 (WebCore::JSUnprotectedEventListener::listenerObj): 17 (WebCore::JSUnprotectedEventListener::windowObj): 18 (WebCore::JSUnprotectedEventListener::clearWindowObj): 19 (WebCore::JSUnprotectedEventListener::mark): 20 (WebCore::JSEventListener::JSEventListener): 21 (WebCore::JSEventListener::~JSEventListener): 22 (WebCore::JSEventListener::listenerObj): 23 (WebCore::JSEventListener::windowObj): 24 (WebCore::JSEventListener::clearWindowObj): 25 (WebCore::JSLazyEventListener::JSLazyEventListener): 26 (WebCore::JSLazyEventListener::listenerObj): 27 (WebCore::JSLazyEventListener::parseCode): 28 (WebCore::getNodeEventListener): 29 (WebCore::JSClipboard::JSClipboard): 30 (WebCore::JSClipboard::getValueProperty): 31 (WebCore::JSClipboard::putValueProperty): 32 (WebCore::JSClipboardPrototypeFunction::callAsFunction): 33 (WebCore::toJS): 34 (WebCore::toClipboard): 35 * bindings/js/kjs_events.h: 36 (WebCore::JSClipboard::classInfo): 37 (WebCore::JSClipboard::impl): 38 * bindings/js/kjs_window.h: 39 * ksvg2/events/JSSVGLazyEventListener.h: 40 1 41 2007-06-27 Sam Weinig <sam@webkit.org> 2 42 -
trunk/WebCore/bindings/js/kjs_events.cpp
r23795 r23841 35 35 #include "JSEvent.h" 36 36 #include "JSEventTargetNode.h" 37 #include "JSKeyboardEvent.h"38 #include "JSMouseEvent.h"39 #include "JSMutationEvent.h"40 #include "JSOverflowEvent.h"41 #include "JSTextEvent.h"42 #include "JSWheelEvent.h"43 37 #include "KURL.h" 44 #include "KeyboardEvent.h"45 #include "MouseEvent.h"46 #include "MutationEvent.h"47 #include "OverflowEvent.h"48 38 #include "Page.h" 49 #include "TextEvent.h"50 #include "UIEvent.h"51 #include "WheelEvent.h"52 39 #include "kjs_proxy.h" 53 40 #include "kjs_window.h" … … 55 42 #include "kjs_events.lut.h" 56 43 57 using namespace WebCore; 44 namespace WebCore { 45 46 using namespace KJS; 58 47 using namespace EventNames; 59 48 using namespace HTMLNames; 60 49 61 namespace KJS { 62 63 JSAbstractEventListener::JSAbstractEventListener(bool _html) 64 : html(_html) 50 JSAbstractEventListener::JSAbstractEventListener(bool html) 51 : m_html(html) 65 52 { 66 53 } … … 73 60 #endif 74 61 75 Event *event = ele;62 Event* event = ele; 76 63 77 64 JSObject* listener = listenerObj(); … … 92 79 93 80 JSLock lock; 94 81 95 82 ScriptInterpreter* interpreter = proxy->interpreter(); 96 83 ExecState* exec = interpreter->globalExec(); 97 84 98 85 JSValue* handleEventFuncValue = listener->get(exec, "handleEvent"); 99 86 JSObject* handleEventFunc = 0; 100 if (handleEventFuncValue->isObject()) { 87 if (handleEventFuncValue->isObject()) { 101 88 handleEventFunc = static_cast<JSObject*>(handleEventFuncValue); 102 89 if (!handleEventFunc->implementsCall()) 103 90 handleEventFunc = 0; 104 91 } 105 92 106 93 if (handleEventFunc || listener->implementsCall()) { 107 94 ref(); 108 95 109 96 List args; 110 97 args.append(toJS(exec, event)); 111 98 112 99 // Set the event we're handling in the Window object 113 100 window->setCurrentEvent(event); 114 101 // ... and in the interpreter 115 102 interpreter->setCurrentEvent(event); 116 103 117 104 JSValue* retval; 118 105 if (handleEventFunc) { … … 146 133 if (!retval->isUndefinedOrNull() && event->storesResultAsString()) 147 134 event->storeResult(retval->toString(exec)); 148 if ( html) {135 if (m_html) { 149 136 bool retvalbool; 150 137 if (retval->getBoolean(retvalbool) && !retvalbool) … … 160 147 bool JSAbstractEventListener::isHTMLEventListener() const 161 148 { 162 return html;149 return m_html; 163 150 } 164 151 165 152 // ------------------------------------------------------------------------- 166 153 167 JSUnprotectedEventListener::JSUnprotectedEventListener(JSObject* _listener, Window* _win, bool _html)168 : JSAbstractEventListener(_html)169 , listener(_listener)170 , win(_win)171 { 172 if ( _listener) {173 Window::UnprotectedListenersMap& listeners = _html174 ? _win->jsUnprotectedHTMLEventListeners() :_win->jsUnprotectedEventListeners();175 listeners.set( _listener, this);154 JSUnprotectedEventListener::JSUnprotectedEventListener(JSObject* listener, Window* win, bool html) 155 : JSAbstractEventListener(html) 156 , m_listener(listener) 157 , m_win(win) 158 { 159 if (m_listener) { 160 Window::UnprotectedListenersMap& listeners = html 161 ? m_win->jsUnprotectedHTMLEventListeners() : m_win->jsUnprotectedEventListeners(); 162 listeners.set(m_listener, this); 176 163 } 177 164 } … … 179 166 JSUnprotectedEventListener::~JSUnprotectedEventListener() 180 167 { 181 if ( listener &&win) {168 if (m_listener && m_win) { 182 169 Window::UnprotectedListenersMap& listeners = isHTMLEventListener() 183 ? win->jsUnprotectedHTMLEventListeners() :win->jsUnprotectedEventListeners();184 listeners.remove( listener);170 ? m_win->jsUnprotectedHTMLEventListeners() : m_win->jsUnprotectedEventListeners(); 171 listeners.remove(m_listener); 185 172 } 186 173 } 187 174 188 175 JSObject* JSUnprotectedEventListener::listenerObj() const 189 { 190 return listener;176 { 177 return m_listener; 191 178 } 192 179 193 180 Window* JSUnprotectedEventListener::windowObj() const 194 181 { 195 return win;182 return m_win; 196 183 } 197 184 198 185 void JSUnprotectedEventListener::clearWindowObj() 199 186 { 200 win = 0;187 m_win = 0; 201 188 } 202 189 203 190 void JSUnprotectedEventListener::mark() 204 191 { 205 if ( listener && !listener->marked())206 listener->mark();192 if (m_listener && !m_listener->marked()) 193 m_listener->mark(); 207 194 } 208 195 … … 227 214 // ------------------------------------------------------------------------- 228 215 229 JSEventListener::JSEventListener(JSObject* _listener, Window* _win, bool _html)230 : JSAbstractEventListener( _html)231 , listener(_listener)232 , win(_win)233 { 234 if ( _listener) {235 Window::ListenersMap& listeners = _html236 ? _win->jsHTMLEventListeners() :_win->jsEventListeners();237 listeners.set( _listener, this);216 JSEventListener::JSEventListener(JSObject* listener, Window* win, bool html) 217 : JSAbstractEventListener(html) 218 , m_listener(listener) 219 , m_win(win) 220 { 221 if (m_listener) { 222 Window::ListenersMap& listeners = html 223 ? m_win->jsHTMLEventListeners() : m_win->jsEventListeners(); 224 listeners.set(m_listener, this); 238 225 } 239 226 #ifndef NDEBUG … … 244 231 JSEventListener::~JSEventListener() 245 232 { 246 if ( listener &&win) {233 if (m_listener && m_win) { 247 234 Window::ListenersMap& listeners = isHTMLEventListener() 248 ? win->jsHTMLEventListeners() :win->jsEventListeners();249 listeners.remove( listener);235 ? m_win->jsHTMLEventListeners() : m_win->jsEventListeners(); 236 listeners.remove(m_listener); 250 237 } 251 238 #ifndef NDEBUG … … 255 242 256 243 JSObject* JSEventListener::listenerObj() const 257 { 258 return listener;244 { 245 return m_listener; 259 246 } 260 247 261 248 Window* JSEventListener::windowObj() const 262 249 { 263 return win;250 return m_win; 264 251 } 265 252 266 253 void JSEventListener::clearWindowObj() 267 254 { 268 win = 0;255 m_win = 0; 269 256 } 270 257 271 258 // ------------------------------------------------------------------------- 272 259 273 JSLazyEventListener::JSLazyEventListener(const String& functionName, const String& code, Window* win, Node* node, int line no)274 : JSEventListener(0, win, true)275 , m_functionName(functionName)276 ,code(code)277 ,parsed(false)278 , lineNumber(lineno)279 ,originalNode(node)260 JSLazyEventListener::JSLazyEventListener(const String& functionName, const String& code, Window* win, Node* node, int lineNumber) 261 : JSEventListener(0, win, true) 262 , m_functionName(functionName) 263 , m_code(code) 264 , m_parsed(false) 265 , m_lineNumber(lineNumber) 266 , m_originalNode(node) 280 267 { 281 268 // We don't retain the original node because we assume it … … 289 276 { 290 277 parseCode(); 291 return listener;278 return m_listener; 292 279 } 293 280 … … 300 287 void JSLazyEventListener::parseCode() const 301 288 { 302 if ( parsed)289 if (m_parsed) 303 290 return; 304 parsed = true;305 306 Frame *frame = windowObj()->frame();307 KJSProxy *proxy = 0;291 m_parsed = true; 292 293 Frame* frame = windowObj()->frame(); 294 KJSProxy* proxy = 0; 308 295 if (frame) 309 296 proxy = frame->scriptProxy(); … … 319 306 UString sourceURL(frame->loader()->url().url()); 320 307 args.append(eventParameterName()); 321 args.append(jsString( code));322 listener = constr->construct(exec, args, m_functionName, sourceURL, lineNumber); // ###is globalExec ok ?323 324 FunctionImp* listenerAsFunction = static_cast<FunctionImp*>( listener.get());308 args.append(jsString(m_code)); 309 m_listener = constr->construct(exec, args, m_functionName, sourceURL, m_lineNumber); // FIXME: is globalExec ok ? 310 311 FunctionImp* listenerAsFunction = static_cast<FunctionImp*>(m_listener.get()); 325 312 326 313 if (exec->hadException()) { … … 328 315 329 316 // failed to parse, so let's just make this listener a no-op 330 listener = 0;331 } else if ( originalNode) {317 m_listener = 0; 318 } else if (m_originalNode) { 332 319 // Add the event's home element to the scope 333 320 // (and the document, and the form - see JSHTMLElement::eventHandlerScope) 334 321 ScopeChain scope = listenerAsFunction->scope(); 335 322 336 JSValue* thisObj = toJS(exec, originalNode);323 JSValue* thisObj = toJS(exec, m_originalNode); 337 324 if (thisObj->isObject()) { 338 325 static_cast<JSEventTargetNode*>(thisObj)->pushEventHandlerScope(exec, scope); … … 344 331 // no more need to keep the unparsed code around 345 332 m_functionName = String(); 346 code = String();347 348 if ( listener) {333 m_code = String(); 334 335 if (m_listener) { 349 336 Window::ListenersMap& listeners = isHTMLEventListener() 350 337 ? windowObj()->jsHTMLEventListeners() : windowObj()->jsEventListeners(); 351 listeners.set( listener, const_cast<JSLazyEventListener*>(this));338 listeners.set(m_listener, const_cast<JSLazyEventListener*>(this)); 352 339 } 353 340 } … … 355 342 JSValue* getNodeEventListener(EventTargetNode* n, const AtomicString& eventType) 356 343 { 357 if (JSAbstractEventListener* listener = static_cast<JSAbstractEventListener*>(n->getHTMLEventListener(eventType))) 344 if (JSAbstractEventListener* listener = static_cast<JSAbstractEventListener*>(n->getHTMLEventListener(eventType))) { 358 345 if (JSValue* obj = listener->listenerObj()) 359 346 return obj; 347 } 360 348 return jsNull(); 361 349 } … … 367 355 /* Source for JSClipboardTable. Use "make hashtables" to regenerate. 368 356 @begin JSClipboardTable 3 369 dropEffect JSClipboard::DropEffect DontDelete370 effectAllowed JSClipboard::EffectAllowed DontDelete371 types JSClipboard::Types DontDelete|ReadOnly357 dropEffect WebCore::JSClipboard::DropEffect DontDelete 358 effectAllowed WebCore::JSClipboard::EffectAllowed DontDelete 359 types WebCore::JSClipboard::Types DontDelete|ReadOnly 372 360 @end 373 361 @begin JSClipboardPrototypeTable 4 374 clearData JSClipboard::ClearData DontDelete|Function 0375 getData JSClipboard::GetData DontDelete|Function 1376 setData JSClipboard::SetData DontDelete|Function 2377 setDragImage JSClipboard::SetDragImage DontDelete|Function 3362 clearData WebCore::JSClipboard::ClearData DontDelete|Function 0 363 getData WebCore::JSClipboard::GetData DontDelete|Function 1 364 setData WebCore::JSClipboard::SetData DontDelete|Function 2 365 setDragImage WebCore::JSClipboard::SetDragImage DontDelete|Function 3 378 366 @end 379 367 */ … … 383 371 KJS_IMPLEMENT_PROTOTYPE("Clipboard", JSClipboardPrototype, JSClipboardPrototypeFunction) 384 372 385 JSClipboard::JSClipboard(ExecState* exec, WebCore::Clipboard* cb)386 : m_impl(c b)373 JSClipboard::JSClipboard(ExecState* exec, Clipboard* clipboard) 374 : m_impl(clipboard) 387 375 { 388 376 setPrototype(JSClipboardPrototype::self(exec)); … … 401 389 JSValue* JSClipboard::getValueProperty(ExecState* exec, int token) const 402 390 { 403 WebCore::Clipboard* clipboard = impl();391 Clipboard* clipboard = impl(); 404 392 switch (token) { 405 393 case DropEffect: … … 434 422 void JSClipboard::putValueProperty(ExecState* exec, int token, JSValue* value, int /*attr*/) 435 423 { 436 WebCore::Clipboard* clipboard = impl();424 Clipboard* clipboard = impl(); 437 425 switch (token) { 438 426 case DropEffect: … … 454 442 return throwError(exec, TypeError); 455 443 456 WebCore::Clipboard* clipboard = static_cast<JSClipboard*>(thisObj)->impl();444 Clipboard* clipboard = static_cast<JSClipboard*>(thisObj)->impl(); 457 445 switch (id) { 458 446 case JSClipboard::ClearData: … … 495 483 if (!node) 496 484 return throwError(exec, TypeError); 497 485 498 486 if (!node->isElementNode()) 499 487 return throwError(exec, SyntaxError, "setDragImageFromElement: Invalid first argument"); 500 488 501 if (static_cast<Element*>(node)->hasLocalName(imgTag) && 489 if (static_cast<Element*>(node)->hasLocalName(imgTag) && 502 490 !node->inDocument()) 503 491 clipboard->setDragImage(static_cast<HTMLImageElement*>(node)->cachedImage(), IntPoint(x, y)); 504 492 else 505 clipboard->setDragImageElement(node, IntPoint(x, y)); 506 493 clipboard->setDragImageElement(node, IntPoint(x, y)); 494 507 495 return jsUndefined(); 508 496 } … … 511 499 } 512 500 513 JSValue* toJS(ExecState* exec, WebCore::Clipboard* obj)514 { 515 return cacheDOMObject< WebCore::Clipboard, JSClipboard>(exec, obj);516 } 517 518 WebCore::Clipboard* toClipboard(JSValue* val)501 JSValue* toJS(ExecState* exec, Clipboard* obj) 502 { 503 return cacheDOMObject<Clipboard, JSClipboard>(exec, obj); 504 } 505 506 Clipboard* toClipboard(JSValue* val) 519 507 { 520 508 return val->isObject(&JSClipboard::info) ? static_cast<JSClipboard*>(val)->impl() : 0; 521 509 } 522 510 523 } 511 } // namespace WebCore -
trunk/WebCore/bindings/js/kjs_events.h
r23795 r23841 27 27 #include "kjs_html.h" 28 28 29 30 namespace KJS { 31 class Window; 32 } 33 29 34 namespace WebCore { 35 30 36 class Clipboard; 31 37 class Event; 32 class KeyboardEvent;33 class MouseEvent;34 class MutationEvent;35 class UIEvent;36 }37 38 38 namespace KJS { 39 class JSAbstractEventListener : public EventListener { 40 public: 41 JSAbstractEventListener(bool html = false); 39 42 40 class Window; 41 class JSClipboard; 42 43 class JSAbstractEventListener : public WebCore::EventListener { 44 public: 45 JSAbstractEventListener(bool HTML = false); 46 virtual void handleEvent(WebCore::Event*, bool isWindowEvent); 43 virtual void handleEvent(Event*, bool isWindowEvent); 47 44 virtual bool isHTMLEventListener() const; 48 virtual JSObject* listenerObj() const = 0; 49 virtual Window* windowObj() const = 0; 45 virtual KJS::JSObject* listenerObj() const = 0; 46 virtual KJS::Window* windowObj() const = 0; 47 50 48 private: 51 bool html;49 bool m_html; 52 50 }; 53 51 54 52 class JSUnprotectedEventListener : public JSAbstractEventListener { 55 53 public: 56 JSUnprotectedEventListener( JSObject* listener, Window*, bool HTML= false);54 JSUnprotectedEventListener(KJS::JSObject* listener, KJS::Window*, bool html = false); 57 55 virtual ~JSUnprotectedEventListener(); 58 virtual JSObject* listenerObj() const; 59 virtual Window* windowObj() const; 56 57 virtual KJS::JSObject* listenerObj() const; 58 virtual KJS::Window* windowObj() const; 60 59 void clearWindowObj(); 61 60 virtual void mark(); 62 61 private: 63 JSObject*listener;64 Window*win;62 KJS::JSObject* m_listener; 63 KJS::Window* m_win; 65 64 }; 66 65 67 66 class JSEventListener : public JSAbstractEventListener { 68 67 public: 69 JSEventListener( JSObject* listener, Window*, bool HTML= false);68 JSEventListener(KJS::JSObject* listener, KJS::Window*, bool html = false); 70 69 virtual ~JSEventListener(); 71 virtual JSObject* listenerObj() const; 72 virtual Window* windowObj() const; 70 71 virtual KJS::JSObject* listenerObj() const; 72 virtual KJS::Window* windowObj() const; 73 73 void clearWindowObj(); 74 74 75 protected: 75 mutable ProtectedPtr<JSObject> listener; 76 mutable KJS::ProtectedPtr<KJS::JSObject> m_listener; 77 76 78 private: 77 ProtectedPtr<Window>win;79 KJS::ProtectedPtr<KJS::Window> m_win; 78 80 }; 79 81 80 82 class JSLazyEventListener : public JSEventListener { 81 83 public: 82 JSLazyEventListener(const WebCore::String& functionName, const WebCore::String& code, Window*, WebCore::Node*, int lineno = 0); 83 virtual JSObject* listenerObj() const; 84 JSLazyEventListener(const String& functionName, const String& code, KJS::Window*, Node*, int lineNumber = 0); 85 virtual KJS::JSObject* listenerObj() const; 86 84 87 private: 85 virtual JSValue* eventParameterName() const;88 virtual KJS::JSValue* eventParameterName() const; 86 89 void parseCode() const; 87 90 88 mutable WebCore::String m_functionName;89 mutable WebCore::Stringcode;90 mutable bool parsed;91 int lineNumber;92 WebCore::Node*originalNode;91 mutable String m_functionName; 92 mutable String m_code; 93 mutable bool m_parsed; 94 int m_lineNumber; 95 Node* m_originalNode; 93 96 }; 94 97 95 JSValue* getNodeEventListener(WebCore::Node* n, const WebCore::AtomicString& eventType);98 KJS::JSValue* getNodeEventListener(Node*, const AtomicString& eventType); 96 99 97 class JSClipboard : public DOMObject { 98 friend class JSClipboardPrototypeFunction; 100 class JSClipboard : public KJS::DOMObject { 99 101 public: 100 JSClipboard( ExecState*, WebCore::Clipboard* ds);102 JSClipboard(KJS::ExecState*, Clipboard*); 101 103 virtual ~JSClipboard(); 102 104 103 virtual bool getOwnPropertySlot( ExecState*, const Identifier&,PropertySlot&);104 JSValue* getValueProperty(ExecState*, int token) const;105 virtual void put( ExecState*, const Identifier&, JSValue*, int attr =None);106 void putValueProperty( ExecState*, int token,JSValue*, int attr);105 virtual bool getOwnPropertySlot(KJS::ExecState*, const KJS::Identifier&, KJS::PropertySlot&); 106 KJS::JSValue* getValueProperty(KJS::ExecState*, int token) const; 107 virtual void put(KJS::ExecState*, const KJS::Identifier&, KJS::JSValue*, int attr = KJS::None); 108 void putValueProperty(KJS::ExecState*, int token, KJS::JSValue*, int attr); 107 109 108 virtual const ClassInfo* classInfo() const { return &info; }109 static const ClassInfo info;110 virtual const KJS::ClassInfo* classInfo() const { return &info; } 111 static const KJS::ClassInfo info; 110 112 111 113 enum { ClearData, GetData, SetData, Types, SetDragImage, DropEffect, EffectAllowed }; 112 114 113 WebCore::Clipboard* impl() const { return m_impl.get(); }115 Clipboard* impl() const { return m_impl.get(); } 114 116 115 117 private: 116 RefPtr< WebCore::Clipboard> m_impl;118 RefPtr<Clipboard> m_impl; 117 119 }; 118 120 119 JSValue* toJS(ExecState*, WebCore::Clipboard*);120 WebCore::Clipboard* toClipboard(JSValue*);121 KJS::JSValue* toJS(KJS::ExecState*, Clipboard*); 122 Clipboard* toClipboard(KJS::JSValue*); 121 123 122 } // namespace 124 } // namespace WebCore 123 125 124 #endif 126 #endif // kjs_events_h -
trunk/WebCore/bindings/js/kjs_window.h
r23584 r23841 32 32 class FrameView; 33 33 class JSDOMWindow; 34 class JSEventListener; 35 class JSUnprotectedEventListener; 34 36 class Node; 35 37 } … … 37 39 namespace KJS { 38 40 39 class JSEventListener;40 class JSLazyEventListener;41 class JSUnprotectedEventListener;42 41 class Location; 43 42 class PausedTimeout; … … 120 119 121 120 // Finds a wrapper of a JS EventListener, returns 0 if no existing one. 122 JSEventListener* findJSEventListener(JSValue*, bool html = false);121 WebCore::JSEventListener* findJSEventListener(JSValue*, bool html = false); 123 122 124 123 // Finds or creates a wrapper of a JS EventListener. JS EventListener object is GC-protected. 125 JSEventListener *findOrCreateJSEventListener(JSValue*, bool html = false);124 WebCore::JSEventListener *findOrCreateJSEventListener(JSValue*, bool html = false); 126 125 127 126 // Finds a wrapper of a GC-unprotected JS EventListener, returns 0 if no existing one. 128 JSUnprotectedEventListener* findJSUnprotectedEventListener(JSValue*, bool html = false);127 WebCore::JSUnprotectedEventListener* findJSUnprotectedEventListener(JSValue*, bool html = false); 129 128 130 129 // Finds or creates a wrapper of a JS EventListener. JS EventListener object is *NOT* GC-protected. 131 JSUnprotectedEventListener *findOrCreateJSUnprotectedEventListener(JSValue*, bool html = false);130 WebCore::JSUnprotectedEventListener *findOrCreateJSUnprotectedEventListener(JSValue*, bool html = false); 132 131 133 132 void clear(); … … 139 138 void setReturnValueSlot(JSValue **slot); 140 139 141 typedef HashMap<JSObject*, JSEventListener*> ListenersMap;142 typedef HashMap<JSObject*, JSUnprotectedEventListener*> UnprotectedListenersMap;140 typedef HashMap<JSObject*, WebCore::JSEventListener*> ListenersMap; 141 typedef HashMap<JSObject*, WebCore::JSUnprotectedEventListener*> UnprotectedListenersMap; 143 142 144 143 ListenersMap& jsEventListeners(); -
trunk/WebCore/ksvg2/events/JSSVGLazyEventListener.h
r19855 r23841 28 28 namespace WebCore { 29 29 30 class JSSVGLazyEventListener : public KJS::JSLazyEventListener {30 class JSSVGLazyEventListener : public JSLazyEventListener { 31 31 public: 32 32 JSSVGLazyEventListener(const String& functionName, const String& code, KJS::Window*, Node*, int lineno = 0);
Note: See TracChangeset
for help on using the changeset viewer.