Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(680)

Side by Side Diff: Source/bindings/core/v8/Dictionary.cpp

Issue 1154943009: bindings: Remove [EventConstructor] and [InitializedByEventConstructor] (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 146
147 if (v8Value->IsObject()) { 147 if (v8Value->IsObject()) {
148 ASSERT(m_isolate); 148 ASSERT(m_isolate);
149 ASSERT(m_isolate == v8::Isolate::GetCurrent()); 149 ASSERT(m_isolate == v8::Isolate::GetCurrent());
150 value = Dictionary(v8Value, m_isolate, *m_exceptionState); 150 value = Dictionary(v8Value, m_isolate, *m_exceptionState);
151 } 151 }
152 152
153 return true; 153 return true;
154 } 154 }
155 155
156 bool Dictionary::convert(ConversionContext& context, const String& key, Dictiona ry& value) const
157 {
158 ConversionContextScope scope(context);
159
160 v8::Local<v8::Value> v8Value;
161 if (!getKey(key, v8Value))
162 return true;
163
164 if (v8Value->IsObject())
165 return get(key, value);
166
167 if (context.isNullable() && blink::isUndefinedOrNull(v8Value))
168 return true;
169
170 context.throwTypeError(ExceptionMessages::incorrectPropertyType(key, "does n ot have a Dictionary type."));
171 return false;
172 }
173
174 static inline bool propertyKey(v8::Local<v8::Context> v8Context, v8::Local<v8::A rray> properties, uint32_t index, v8::Local<v8::String>& key) 156 static inline bool propertyKey(v8::Local<v8::Context> v8Context, v8::Local<v8::A rray> properties, uint32_t index, v8::Local<v8::String>& key)
175 { 157 {
176 v8::Local<v8::Value> property; 158 v8::Local<v8::Value> property;
177 if (!properties->Get(v8Context, index).ToLocal(&property)) 159 if (!properties->Get(v8Context, index).ToLocal(&property))
178 return false; 160 return false;
179 return property->ToString(v8Context).ToLocal(&key); 161 return property->ToString(v8Context).ToLocal(&key);
180 } 162 }
181 163
182 bool Dictionary::getOwnPropertiesAsStringHashMap(HashMap<String, String>& hashMa p) const 164 bool Dictionary::getOwnPropertiesAsStringHashMap(HashMap<String, String>& hashMa p) const
183 { 165 {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 continue; 204 continue;
223 if (!v8CallBoolean(object->Has(v8Context(), key))) 205 if (!v8CallBoolean(object->Has(v8Context(), key)))
224 continue; 206 continue;
225 TOSTRING_DEFAULT(V8StringResource<>, stringKey, key, false); 207 TOSTRING_DEFAULT(V8StringResource<>, stringKey, key, false);
226 names.append(stringKey); 208 names.append(stringKey);
227 } 209 }
228 210
229 return true; 211 return true;
230 } 212 }
231 213
232 void Dictionary::ConversionContext::resetPerPropertyContext()
233 {
234 if (m_dirty) {
235 m_dirty = false;
236 m_isNullable = false;
237 m_propertyTypeName = "";
238 }
239 }
240
241 Dictionary::ConversionContext& Dictionary::ConversionContext::setConversionType( const String& typeName, bool isNullable)
242 {
243 ASSERT(!m_dirty);
244 m_dirty = true;
245 m_isNullable = isNullable;
246 m_propertyTypeName = typeName;
247
248 return *this;
249 }
250
251 void Dictionary::ConversionContext::throwTypeError(const String& detail)
252 {
253 exceptionState().throwTypeError(detail);
254 }
255
256 bool Dictionary::toObject(v8::Local<v8::Object>& object) const 214 bool Dictionary::toObject(v8::Local<v8::Object>& object) const
257 { 215 {
258 return !isUndefinedOrNull() && m_options->ToObject(v8Context()).ToLocal(&obj ect); 216 return !isUndefinedOrNull() && m_options->ToObject(v8Context()).ToLocal(&obj ect);
259 } 217 }
260 218
261 } // namespace blink 219 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698