OLD | NEW |
1 // Copyright 2011, Google Inc. | 1 // Copyright 2011, Google Inc. |
2 // All rights reserved. | 2 // 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 are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 | 48 |
49 namespace DartNodeInternal { | 49 namespace DartNodeInternal { |
50 | 50 |
51 // This function is customized to take advantage of the optional 4th argument: s
houldLazyAttach. | 51 // This function is customized to take advantage of the optional 4th argument: s
houldLazyAttach. |
52 void insertBeforeCallback(Dart_NativeArguments args) | 52 void insertBeforeCallback(Dart_NativeArguments args) |
53 { | 53 { |
54 Dart_Handle exception = 0; | 54 Dart_Handle exception = 0; |
55 { | 55 { |
56 Node* receiver = DartDOMWrapper::receiver<Node>(args); | 56 Node* receiver = DartDOMWrapper::receiver<Node>(args); |
57 | 57 |
58 Node* newChild = DartNode::toNative(args, 1, exception); | 58 Node* newChild = DartNode::toNativeWithNullCheck(args, 1, exception); |
59 if (exception) | 59 if (exception) |
60 goto fail; | 60 goto fail; |
61 | 61 |
62 Node* refChild = DartNode::toNative(args, 2, exception); | 62 Node* refChild = DartNode::toNativeWithNullCheck(args, 2, exception); |
63 if (exception) | 63 if (exception) |
64 goto fail; | 64 goto fail; |
65 | 65 |
66 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; | 66 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; |
67 | 67 |
68 DartExceptionState es; | 68 DartExceptionState es; |
69 receiver->insertBefore(newChild, refChild, es); | 69 receiver->insertBefore(newChild, refChild, es); |
70 if (es.hadException()) { | 70 if (es.hadException()) { |
71 exception = DartDOMWrapper::exceptionCodeToDartException(es); | 71 exception = DartDOMWrapper::exceptionCodeToDartException(es); |
72 goto fail; | 72 goto fail; |
73 } | 73 } |
74 | 74 |
75 DartDOMWrapper::returnToDart<DartNode>(args, newChild); | 75 DartDOMWrapper::returnToDart<DartNode>(args, newChild); |
76 return; | 76 return; |
77 } | 77 } |
78 | 78 |
79 fail: | 79 fail: |
80 Dart_ThrowException(exception); | 80 Dart_ThrowException(exception); |
81 ASSERT_NOT_REACHED(); | 81 ASSERT_NOT_REACHED(); |
82 } | 82 } |
83 | 83 |
84 // This function is customized to take advantage of the optional 4th argument: s
houldLazyAttach. | 84 // This function is customized to take advantage of the optional 4th argument: s
houldLazyAttach. |
85 void replaceChildCallback(Dart_NativeArguments args) | 85 void replaceChildCallback(Dart_NativeArguments args) |
86 { | 86 { |
87 Dart_Handle exception = 0; | 87 Dart_Handle exception = 0; |
88 { | 88 { |
89 Node* receiver = DartDOMWrapper::receiver<Node>(args); | 89 Node* receiver = DartDOMWrapper::receiver<Node>(args); |
90 | 90 |
91 Node* newChild = DartNode::toNative(args, 1, exception); | 91 Node* newChild = DartNode::toNativeWithNullCheck(args, 1, exception); |
92 if (exception) | 92 if (exception) |
93 goto fail; | 93 goto fail; |
94 | 94 |
95 Node* oldChild = DartNode::toNative(args, 2, exception); | 95 Node* oldChild = DartNode::toNativeWithNullCheck(args, 2, exception); |
96 if (exception) | 96 if (exception) |
97 goto fail; | 97 goto fail; |
98 | 98 |
99 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; | 99 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; |
100 | 100 |
101 DartExceptionState es; | 101 DartExceptionState es; |
102 receiver->replaceChild(newChild, oldChild, es); | 102 receiver->replaceChild(newChild, oldChild, es); |
103 if (es.hadException()) { | 103 if (es.hadException()) { |
104 exception = DartDOMWrapper::exceptionCodeToDartException(es); | 104 exception = DartDOMWrapper::exceptionCodeToDartException(es); |
105 goto fail; | 105 goto fail; |
106 } | 106 } |
107 | 107 |
108 DartDOMWrapper::returnToDart<DartNode>(args, newChild); | 108 DartDOMWrapper::returnToDart<DartNode>(args, newChild); |
109 return; | 109 return; |
110 } | 110 } |
111 | 111 |
112 fail: | 112 fail: |
113 Dart_ThrowException(exception); | 113 Dart_ThrowException(exception); |
114 ASSERT_NOT_REACHED(); | 114 ASSERT_NOT_REACHED(); |
115 } | 115 } |
116 | 116 |
117 // Custom handling of the return value. | 117 // Custom handling of the return value. |
118 void removeChildCallback(Dart_NativeArguments args) | 118 void removeChildCallback(Dart_NativeArguments args) |
119 { | 119 { |
120 Dart_Handle exception = 0; | 120 Dart_Handle exception = 0; |
121 { | 121 { |
122 Node* receiver = DartDOMWrapper::receiver<Node>(args); | 122 Node* receiver = DartDOMWrapper::receiver<Node>(args); |
123 | 123 |
124 Node* child = DartNode::toNative(args, 1, exception); | 124 Node* child = DartNode::toNativeWithNullCheck(args, 1, exception); |
125 if (exception) | 125 if (exception) |
126 goto fail; | 126 goto fail; |
127 | 127 |
128 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; | 128 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; |
129 | 129 |
130 DartExceptionState es; | 130 DartExceptionState es; |
131 receiver->removeChild(child, es); | 131 receiver->removeChild(child, es); |
132 if (es.hadException()) { | 132 if (es.hadException()) { |
133 exception = DartDOMWrapper::exceptionCodeToDartException(es); | 133 exception = DartDOMWrapper::exceptionCodeToDartException(es); |
134 goto fail; | 134 goto fail; |
135 } | 135 } |
136 | 136 |
137 DartDOMWrapper::returnToDart<DartNode>(args, child); | 137 DartDOMWrapper::returnToDart<DartNode>(args, child); |
138 return; | 138 return; |
139 } | 139 } |
140 | 140 |
141 fail: | 141 fail: |
142 Dart_ThrowException(exception); | 142 Dart_ThrowException(exception); |
143 ASSERT_NOT_REACHED(); | 143 ASSERT_NOT_REACHED(); |
144 } | 144 } |
145 | 145 |
146 // This function is customized to enable lazy attaching - see the last argument
to appendChild. | 146 // This function is customized to enable lazy attaching - see the last argument
to appendChild. |
147 void appendChildCallback(Dart_NativeArguments args) | 147 void appendChildCallback(Dart_NativeArguments args) |
148 { | 148 { |
149 Dart_Handle exception = 0; | 149 Dart_Handle exception = 0; |
150 { | 150 { |
151 Node* receiver = DartDOMWrapper::receiver<Node>(args); | 151 Node* receiver = DartDOMWrapper::receiver<Node>(args); |
152 | 152 |
153 Node* child = DartNode::toNative(args, 1, exception); | 153 Node* child = DartNode::toNativeWithNullCheck(args, 1, exception); |
154 if (exception) | 154 if (exception) |
155 goto fail; | 155 goto fail; |
156 | 156 |
157 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; | 157 CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope; |
158 | 158 |
159 DartExceptionState es; | 159 DartExceptionState es; |
160 receiver->appendChild(child, es); | 160 receiver->appendChild(child, es); |
161 if (es.hadException()) { | 161 if (es.hadException()) { |
162 exception = DartDOMWrapper::exceptionCodeToDartException(es); | 162 exception = DartDOMWrapper::exceptionCodeToDartException(es); |
163 goto fail; | 163 goto fail; |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 case Node::DOCUMENT_FRAGMENT_NODE: | 225 case Node::DOCUMENT_FRAGMENT_NODE: |
226 if (node->isShadowRoot()) | 226 if (node->isShadowRoot()) |
227 return DartShadowRoot::createWrapper(domData, static_cast<ShadowRoot
*>(node)); | 227 return DartShadowRoot::createWrapper(domData, static_cast<ShadowRoot
*>(node)); |
228 return DartDocumentFragment::createWrapper(domData, static_cast<Document
Fragment*>(node)); | 228 return DartDocumentFragment::createWrapper(domData, static_cast<Document
Fragment*>(node)); |
229 default: break; // XPATH_NAMESPACE_NODE | 229 default: break; // XPATH_NAMESPACE_NODE |
230 } | 230 } |
231 return DartDOMWrapper::createWrapper<DartNode>(domData, node); | 231 return DartDOMWrapper::createWrapper<DartNode>(domData, node); |
232 } | 232 } |
233 | 233 |
234 } | 234 } |
OLD | NEW |