OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 25 matching lines...) Expand all Loading... |
36 #include "EntityReference.h" | 36 #include "EntityReference.h" |
37 #include "HTMLElement.h" | 37 #include "HTMLElement.h" |
38 #include "JSAttr.h" | 38 #include "JSAttr.h" |
39 #include "JSCDATASection.h" | 39 #include "JSCDATASection.h" |
40 #include "JSComment.h" | 40 #include "JSComment.h" |
41 #include "JSDocument.h" | 41 #include "JSDocument.h" |
42 #include "JSDocumentFragment.h" | 42 #include "JSDocumentFragment.h" |
43 #include "JSDocumentType.h" | 43 #include "JSDocumentType.h" |
44 #include "JSEntity.h" | 44 #include "JSEntity.h" |
45 #include "JSEntityReference.h" | 45 #include "JSEntityReference.h" |
46 #include "JSEventListener.h" | |
47 #include "JSHTMLElement.h" | 46 #include "JSHTMLElement.h" |
48 #include "JSHTMLElementWrapperFactory.h" | 47 #include "JSHTMLElementWrapperFactory.h" |
49 #include "JSNotation.h" | 48 #include "JSNotation.h" |
50 #include "JSProcessingInstruction.h" | 49 #include "JSProcessingInstruction.h" |
51 #include "JSText.h" | 50 #include "JSText.h" |
52 #include "Node.h" | 51 #include "Node.h" |
53 #include "Notation.h" | 52 #include "Notation.h" |
54 #include "ProcessingInstruction.h" | 53 #include "ProcessingInstruction.h" |
55 #include "Text.h" | 54 #include "Text.h" |
56 #include <wtf/PassRefPtr.h> | 55 #include <wtf/PassRefPtr.h> |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 JSValuePtr JSNode::appendChild(ExecState* exec, const ArgList& args) | 99 JSValuePtr JSNode::appendChild(ExecState* exec, const ArgList& args) |
101 { | 100 { |
102 ExceptionCode ec = 0; | 101 ExceptionCode ec = 0; |
103 bool ok = impl()->appendChild(toNode(args.at(exec, 0)), ec, true); | 102 bool ok = impl()->appendChild(toNode(args.at(exec, 0)), ec, true); |
104 setDOMException(exec, ec); | 103 setDOMException(exec, ec); |
105 if (ok) | 104 if (ok) |
106 return args.at(exec, 0); | 105 return args.at(exec, 0); |
107 return jsNull(); | 106 return jsNull(); |
108 } | 107 } |
109 | 108 |
110 JSValuePtr JSNode::addEventListener(ExecState* exec, const ArgList& args) | |
111 { | |
112 JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(impl()->scriptExecutio
nContext()); | |
113 if (!globalObject) | |
114 return jsUndefined(); | |
115 | |
116 if (RefPtr<JSEventListener> listener = globalObject->findOrCreateJSEventList
ener(exec, args.at(exec, 1))) | |
117 impl()->addEventListener(args.at(exec, 0).toString(exec), listener.relea
se(), args.at(exec, 2).toBoolean(exec)); | |
118 | |
119 return jsUndefined(); | |
120 } | |
121 | |
122 JSValuePtr JSNode::removeEventListener(ExecState* exec, const ArgList& args) | |
123 { | |
124 JSDOMGlobalObject* globalObject = toJSDOMGlobalObject(impl()->scriptExecutio
nContext()); | |
125 if (!globalObject) | |
126 return jsUndefined(); | |
127 | |
128 if (JSEventListener* listener = globalObject->findJSEventListener(args.at(ex
ec, 1))) | |
129 impl()->removeEventListener(args.at(exec, 0).toString(exec), listener, a
rgs.at(exec, 2).toBoolean(exec)); | |
130 | |
131 return jsUndefined(); | |
132 } | |
133 | |
134 void JSNode::pushEventHandlerScope(ExecState*, ScopeChain&) const | |
135 { | |
136 } | |
137 | |
138 void JSNode::mark() | 109 void JSNode::mark() |
139 { | 110 { |
140 ASSERT(!marked()); | 111 ASSERT(!marked()); |
141 | 112 |
142 Node* node = m_impl.get(); | 113 Node* node = m_impl.get(); |
143 | 114 |
144 // Nodes in the document are kept alive by JSDocument::mark, | 115 // Nodes in the document are kept alive by JSDocument::mark, |
145 // so we have no special responsibilities and can just call the base class h
ere. | 116 // so we have no special responsibilities and can just call the base class h
ere. |
146 if (node->inDocument()) { | 117 if (node->inDocument()) { |
147 // But if the document isn't marked we have to mark it to ensure that | 118 // But if the document isn't marked we have to mark it to ensure that |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 | 233 |
263 JSNode* wrapper = getCachedDOMNodeWrapper(node->document(), node); | 234 JSNode* wrapper = getCachedDOMNodeWrapper(node->document(), node); |
264 if (wrapper) | 235 if (wrapper) |
265 return wrapper; | 236 return wrapper; |
266 | 237 |
267 return createWrapper(exec, node); | 238 return createWrapper(exec, node); |
268 } | 239 } |
269 | 240 |
270 } // namespace WebCore | 241 } // namespace WebCore |
271 | 242 |
OLD | NEW |