OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google 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 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 ConversionContextScope scope(context); | 192 ConversionContextScope scope(context); |
193 | 193 |
194 bool hasValue = false; | 194 bool hasValue = false; |
195 if (!get(key, value, hasValue) && hasValue) { | 195 if (!get(key, value, hasValue) && hasValue) { |
196 context.throwTypeError(ExceptionMessages::incorrectPropertyType(key, "is
not of type 'double'.")); | 196 context.throwTypeError(ExceptionMessages::incorrectPropertyType(key, "is
not of type 'double'.")); |
197 return false; | 197 return false; |
198 } | 198 } |
199 return true; | 199 return true; |
200 } | 200 } |
201 | 201 |
202 bool Dictionary::get(const String& key, String& value) const | 202 template<typename StringType> |
| 203 inline bool Dictionary::getStringType(const String& key, StringType& value) cons
t |
203 { | 204 { |
204 v8::Local<v8::Value> v8Value; | 205 v8::Local<v8::Value> v8Value; |
205 if (!getKey(key, v8Value)) | 206 if (!getKey(key, v8Value)) |
206 return false; | 207 return false; |
207 | 208 |
208 V8TRYCATCH_FOR_V8STRINGRESOURCE_RETURN(V8StringResource<>, stringValue, v8Va
lue, false); | 209 V8TRYCATCH_FOR_V8STRINGRESOURCE_RETURN(V8StringResource<>, stringValue, v8Va
lue, false); |
209 value = stringValue; | 210 value = stringValue; |
210 return true; | 211 return true; |
211 } | 212 } |
212 | 213 |
| 214 bool Dictionary::get(const String& key, String& value) const |
| 215 { |
| 216 return getStringType(key, value); |
| 217 } |
| 218 |
| 219 bool Dictionary::get(const String& key, AtomicString& value) const |
| 220 { |
| 221 return getStringType(key, value); |
| 222 } |
| 223 |
213 bool Dictionary::convert(ConversionContext& context, const String& key, String&
value) const | 224 bool Dictionary::convert(ConversionContext& context, const String& key, String&
value) const |
214 { | 225 { |
215 ConversionContextScope scope(context); | 226 ConversionContextScope scope(context); |
216 | 227 |
217 v8::Local<v8::Value> v8Value; | 228 v8::Local<v8::Value> v8Value; |
218 if (!getKey(key, v8Value)) | 229 if (!getKey(key, v8Value)) |
219 return true; | 230 return true; |
220 | 231 |
221 V8TRYCATCH_FOR_V8STRINGRESOURCE_RETURN(V8StringResource<>, stringValue, v8Va
lue, false); | 232 V8TRYCATCH_FOR_V8STRINGRESOURCE_RETURN(V8StringResource<>, stringValue, v8Va
lue, false); |
222 value = stringValue; | 233 value = stringValue; |
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
760 { | 771 { |
761 if (forConstructor()) { | 772 if (forConstructor()) { |
762 exceptionState().throwTypeError(detail); | 773 exceptionState().throwTypeError(detail); |
763 } else { | 774 } else { |
764 ASSERT(!methodName().isEmpty()); | 775 ASSERT(!methodName().isEmpty()); |
765 exceptionState().throwTypeError(ExceptionMessages::failedToExecute(inter
faceName(), methodName(), detail)); | 776 exceptionState().throwTypeError(ExceptionMessages::failedToExecute(inter
faceName(), methodName(), detail)); |
766 } | 777 } |
767 } | 778 } |
768 | 779 |
769 } // namespace WebCore | 780 } // namespace WebCore |
OLD | NEW |