Index: Source/bindings/core/v8/Dictionary.cpp |
diff --git a/Source/bindings/core/v8/Dictionary.cpp b/Source/bindings/core/v8/Dictionary.cpp |
index 95e90911ddcdb7f0c8208f82b6f821f5aaf79a9e..ae523a4a0de41c747a6d442d6ce9af17441084f0 100644 |
--- a/Source/bindings/core/v8/Dictionary.cpp |
+++ b/Source/bindings/core/v8/Dictionary.cpp |
@@ -264,6 +264,29 @@ bool Dictionary::getOwnPropertyNames(Vector<String>& names) const |
return true; |
} |
+bool Dictionary::getPropertyNames(Vector<String>& names) const |
+{ |
+ if (!isObject()) |
+ return false; |
+ |
+ v8::Handle<v8::Object> options = m_options->ToObject(); |
+ if (options.IsEmpty()) |
+ return false; |
+ |
+ v8::Local<v8::Array> properties = options->GetPropertyNames(); |
+ if (properties.IsEmpty()) |
+ return true; |
+ for (uint32_t i = 0; i < properties->Length(); ++i) { |
+ v8::Local<v8::String> key = properties->Get(i)->ToString(); |
+ if (!options->Has(key)) |
+ continue; |
+ TOSTRING_DEFAULT(V8StringResource<>, stringKey, key, false); |
+ names.append(stringKey); |
+ } |
+ |
+ return true; |
+} |
+ |
void Dictionary::ConversionContext::resetPerPropertyContext() |
{ |
if (m_dirty) { |