Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (175058 => 175059)
--- trunk/Source/_javascript_Core/ChangeLog 2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-10-22 19:11:18 UTC (rev 175059)
@@ -1,3 +1,21 @@
+2014-10-22 Joseph Pecoraro <[email protected]>
+
+ Web Inspector: Fix generator importing of protocol type "any", treat as value
+ https://bugs.webkit.org/show_bug.cgi?id=137931
+
+ Reviewed by Timothy Hatcher.
+
+ Treat incoming "any" objects as InspectorValues, which can be any type.
+ Add the necessary boilerplate to import.
+
+ * inspector/InspectorBackendDispatcher.cpp:
+ (Inspector::AsMethodBridges::asValue):
+ (Inspector::InspectorBackendDispatcher::getValue):
+ * inspector/InspectorBackendDispatcher.h:
+ * inspector/scripts/codegen/generator.py:
+ (Generator.keyed_get_method_for_type):
+ * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
+
2014-10-22 Michael Saboff <[email protected]>
REGRESSION(r174996): Broke C_LOOP
Modified: trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.cpp (175058 => 175059)
--- trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.cpp 2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.cpp 2014-10-22 19:11:18 UTC (rev 175059)
@@ -227,6 +227,7 @@
static bool asBoolean(InspectorValue& value, bool& output) { return value.asBoolean(output); }
static bool asObject(InspectorValue& value, RefPtr<InspectorObject>& output) { return value.asObject(output); }
static bool asArray(InspectorValue& value, RefPtr<InspectorArray>& output) { return value.asArray(output); }
+ static bool asValue(InspectorValue& value, RefPtr<InspectorValue>& output) { return value.asValue(output); }
};
int InspectorBackendDispatcher::getInteger(InspectorObject* object, const String& name, bool* valueFound, InspectorArray* protocolErrors)
@@ -259,6 +260,11 @@
return getPropertyValue<PassRefPtr<InspectorArray>, RefPtr<InspectorArray>, InspectorArray*>(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asArray, "Array");
}
+PassRefPtr<InspectorValue> InspectorBackendDispatcher::getValue(InspectorObject* object, const String& name, bool* valueFound, InspectorArray* protocolErrors)
+{
+ return getPropertyValue<PassRefPtr<InspectorValue>, RefPtr<InspectorValue>, InspectorValue*>(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asValue, "Value");
+}
+
} // namespace Inspector
#endif // ENABLE(INSPECTOR)
Modified: trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.h (175058 => 175059)
--- trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.h 2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.h 2014-10-22 19:11:18 UTC (rev 175059)
@@ -90,6 +90,7 @@
static double getDouble(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
static String getString(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
static bool getBoolean(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
+ static PassRefPtr<InspectorValue> getValue(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
static PassRefPtr<InspectorObject> getObject(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
static PassRefPtr<InspectorArray> getArray(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generator.py (175058 => 175059)
--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generator.py 2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generator.py 2014-10-22 19:11:18 UTC (rev 175059)
@@ -235,6 +235,8 @@
return 'getInteger'
elif _type.raw_name() is 'number':
return 'getDouble'
+ elif _type.raw_name() is 'any':
+ return 'getValue'
else:
return 'get' + ucfirst(_type.raw_name())
if isinstance(_type, AliasedType):
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result (175058 => 175059)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result 2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result 2014-10-22 19:11:18 UTC (rev 175059)
@@ -204,7 +204,7 @@
bool values_valueFound = false;
RefPtr<Inspector::InspectorObject> in_values = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral("values"), &values_valueFound, protocolErrorsPtr);
bool payload_valueFound = false;
- RefPtr<Inspector::InspectorValue> in_payload = InspectorBackendDispatcher::getAny(paramsContainerPtr, ASCIILiteral("payload"), &payload_valueFound, protocolErrorsPtr);
+ RefPtr<Inspector::InspectorValue> in_payload = InspectorBackendDispatcher::getValue(paramsContainerPtr, ASCIILiteral("payload"), &payload_valueFound, protocolErrorsPtr);
bool databaseId_valueFound = false;
int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral("databaseId"), &databaseId_valueFound, protocolErrorsPtr);
bool sqlError_valueFound = false;
@@ -265,7 +265,7 @@
String in_notes = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral("notes"), nullptr, protocolErrorsPtr);
double in_timestamp = InspectorBackendDispatcher::getDouble(paramsContainerPtr, ASCIILiteral("timestamp"), nullptr, protocolErrorsPtr);
RefPtr<Inspector::InspectorObject> in_values = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral("values"), nullptr, protocolErrorsPtr);
- RefPtr<Inspector::InspectorValue> in_payload = InspectorBackendDispatcher::getAny(paramsContainerPtr, ASCIILiteral("payload"), nullptr, protocolErrorsPtr);
+ RefPtr<Inspector::InspectorValue> in_payload = InspectorBackendDispatcher::getValue(paramsContainerPtr, ASCIILiteral("payload"), nullptr, protocolErrorsPtr);
int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral("databaseId"), nullptr, protocolErrorsPtr);
RefPtr<Inspector::InspectorObject> in_sqlError = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral("sqlError"), nullptr, protocolErrorsPtr);
String in_screenColor = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral("screenColor"), nullptr, protocolErrorsPtr);