summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/scripts')
-rw-r--r--WebCore/bindings/scripts/CodeGeneratorCPP.pm4
-rw-r--r--WebCore/bindings/scripts/CodeGeneratorGObject.pm78
-rw-r--r--WebCore/bindings/scripts/CodeGeneratorV8.pm46
-rw-r--r--WebCore/bindings/scripts/test/CPP/WebDOMTestCallback.h2
-rw-r--r--WebCore/bindings/scripts/test/CPP/WebDOMTestInterface.h2
-rw-r--r--WebCore/bindings/scripts/test/CPP/WebDOMTestObj.h2
-rw-r--r--WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp21
-rw-r--r--WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp63
-rw-r--r--WebCore/bindings/scripts/test/TestObj.idl8
9 files changed, 160 insertions, 66 deletions
diff --git a/WebCore/bindings/scripts/CodeGeneratorCPP.pm b/WebCore/bindings/scripts/CodeGeneratorCPP.pm
index 6bafb1e..f9dd5f2 100644
--- a/WebCore/bindings/scripts/CodeGeneratorCPP.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorCPP.pm
@@ -393,7 +393,9 @@ sub GenerateHeader
# Destructor
if ($parentName eq "WebDOMObject") {
- push(@headerContent, " ~$className();\n");
+ push(@headerContent, " virtual ~$className();\n");
+ } else {
+ push(@headerContent, " virtual ~$className() { }\n");
}
push(@headerContent, "\n");
diff --git a/WebCore/bindings/scripts/CodeGeneratorGObject.pm b/WebCore/bindings/scripts/CodeGeneratorGObject.pm
index 5700ff7..6a1d115 100644
--- a/WebCore/bindings/scripts/CodeGeneratorGObject.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorGObject.pm
@@ -479,23 +479,11 @@ sub EventSignalName {
}
sub GenerateEventListener {
- my $attribute = shift;
+ my $name = shift;
my $object = shift;
my $interfaceName = shift;
- # This marks event listeners in some subclasses of Element. We
- # cannot add them, otherwise we'll get runtime errors because of
- # duplicated signal definitions between a class and some ancestor.
-
- # FIXME: it would be very good to be a lot more precise in how we
- # do this...
- if ($attribute->signature->extendedAttributes->{"WindowEventListener"}) {
- return;
- }
-
- my $name = $attribute->signature->name;
- my $domSignalName = substr($name, 2);
- my $gobjectSignalName = EventSignalName($domSignalName);
+ my $gobjectSignalName = EventSignalName($name);
my $txtInstallSignal = << "EOF";
g_signal_new("${gobjectSignalName}",
@@ -510,11 +498,11 @@ sub GenerateEventListener {
EOF
push(@txtInstallSignals, $txtInstallSignal);
- my ${listenerName} = $domSignalName . "Listener";
+ my ${listenerName} = $name . "Listener";
my $txtInstallEventListener = << "EOF";
RefPtr<WebCore::GObjectEventListener> ${listenerName} = WebCore::GObjectEventListener::create(reinterpret_cast<GObject*>(object), "${gobjectSignalName}");
- coreObject->addEventListener("${domSignalName}", ${listenerName}, false);
+ coreObject->addEventListener("${name}", ${listenerName}, false);
EOF
push(@txtInstallEventListeners, $txtInstallEventListener);
@@ -522,6 +510,34 @@ EOF
$implIncludes{"GObjectEventListener.h"} = 1;
}
+my @eventSignalNames = (
+ # User Interface Event types
+ "focus", "blur",
+ # Basic Event types
+ "load", "unload", "abort", "error", "select", "change", "submit", "reset",
+ "resize", "scroll",
+ # Mouse Event types
+ "click", "dblclick", "mousedown", "mouseup",
+ "mousemove", "mouseover", "mouseout",
+ # Mouse Wheel Event types
+ "mousewheel",
+ # Keyboard Event types
+ "keydown", "keypress", "keyup",
+ # -- Events not in the spec but defined in WebKit
+ # Media Event types,
+ "loadstart", "progress", "suspend", "emptied", "stalled", "play",
+ "loadedmetadata", "loadeddata", "waiting", "playing", "canplay",
+ "canplaythrough", "seeking", "seeked", "timeupdate", "ended",
+ "ratechange", "durationchange", "volumechange",
+ # Drag and Drop Event types
+ "drag", "dragend", "dragenter", "dragleave", "dragover", "dragstart", "drop",
+ # Cut and Paste Event types
+ "beforecut", "cut", "beforecopy", "copy", "beforepaste", "paste",
+ # Animations
+ "webkitanimationend", "webkitanimationstart", "webkitanimationiteration",
+ # Other
+ "contextmenu", "input", "invalid", "search", "selectstart");
+
sub GenerateProperties {
my ($object, $interfaceName, $dataNode) = @_;
@@ -584,13 +600,20 @@ EOF
push(@txtSetProps, $txtSetProps);
foreach my $attribute (@readableProperties) {
- if ($attribute->signature->type eq "EventListener") {
- GenerateEventListener($attribute, $object, $interfaceName);
- } else {
+ if ($attribute->signature->type ne "EventListener") {
GenerateProperty($attribute, $interfaceName, \@writeableProperties);
}
}
+ # We need to define all the events there are in all base classes
+ # that implement EventTarget. For now we only care about these
+ # two.
+ if ($interfaceName eq "Node" || $interfaceName eq "DOMWindow") {
+ foreach my $signalName (@eventSignalNames) {
+ GenerateEventListener($signalName, $object, $interfaceName);
+ }
+ }
+
push(@cBodyPriv, "};\n\n");
$txtGetProp = << "EOF";
@@ -888,7 +911,11 @@ sub GenerateFunction {
if (!$paramTypeIsPrimitive) {
if ($returnType ne "void") {
# TODO: return proper default result
- push(@cBody, " g_return_val_if_fail($paramName, 0);\n");
+ # FIXME: Temporary hack for generating a proper implementation
+ # of the webkit_dom_document_evaluate function (Bug-ID: 42115)
+ if (!(($functionName eq "webkit_dom_document_evaluate") && ($paramIDLType eq "XPathResult"))) {
+ push(@cBody, " g_return_val_if_fail($paramName, 0);\n");
+ }
} else {
push(@cBody, " g_return_if_fail($paramName);\n");
}
@@ -906,13 +933,18 @@ sub GenerateFunction {
} elsif ($paramIDLType eq "CompareHow") {
push(@cBody, " WebCore::Range::CompareHow converted_${paramName} = static_cast<WebCore::Range::CompareHow>($paramName);\n");
} elsif ($paramIsGDOMType) {
- push(@cBody, " WebCore::${paramIDLType} * converted_${paramName} = WebKit::core($paramName);\n");
+ push(@cBody, " WebCore::${paramIDLType} * converted_${paramName} = NULL;\n");
+ push(@cBody, " if (${paramName} != NULL) {\n");
+ push(@cBody, " converted_${paramName} = WebKit::core($paramName);\n");
+
if ($returnType ne "void") {
# TODO: return proper default result
- push(@cBody, " g_return_val_if_fail(converted_${paramName}, 0);\n");
+ push(@cBody, " g_return_val_if_fail(converted_${paramName}, 0);\n");
} else {
- push(@cBody, " g_return_if_fail(converted_${paramName});\n");
+ push(@cBody, " g_return_if_fail(converted_${paramName});\n");
}
+
+ push(@cBody, " }\n");
}
$returnParamName = "converted_".$paramName if $param->extendedAttributes->{"Return"};
}
diff --git a/WebCore/bindings/scripts/CodeGeneratorV8.pm b/WebCore/bindings/scripts/CodeGeneratorV8.pm
index 56838ca..028169f 100644
--- a/WebCore/bindings/scripts/CodeGeneratorV8.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorV8.pm
@@ -762,8 +762,11 @@ END
}
if ($useExceptions) {
- push(@implContentDecls, " $nativeType v = ");
- push(@implContentDecls, "$getterString;\n");
+ if ($nativeType =~ /^V8Parameter/) {
+ push(@implContentDecls, " " . ConvertToV8Parameter($attribute->signature, $nativeType, "v", $getterString) . ";\n");
+ } else {
+ push(@implContentDecls, " $nativeType v = $getterString;\n");
+ }
push(@implContentDecls, GenerateSetDOMException(" "));
$result = "v";
$result .= ".release()" if (IsRefPtrType($returnType));
@@ -830,6 +833,8 @@ sub GenerateNormalAttrSetter
my $implClassName = shift;
my $interfaceName = shift;
+ $implIncludes{"V8BindingMacros.h"} = 1;
+
my $attrExt = $attribute->signature->extendedAttributes;
my $conditionalString = GenerateConditionalString($attribute->signature);
@@ -890,7 +895,12 @@ END
push(@implContentDecls, " return;\n");
}
} else {
- push(@implContentDecls, " $nativeType v = " . JSValueToNative($attribute->signature, "value") . ";\n");
+ my $value = JSValueToNative($attribute->signature, "value");
+ if ($nativeType =~ /^V8Parameter/) {
+ push(@implContentDecls, " " . ConvertToV8Parameter($attribute->signature, $nativeType, "v", $value, "VOID") . "\n");
+ } else {
+ push(@implContentDecls, " $nativeType v = $value;\n");
+ }
}
my $result = "v";
@@ -1236,13 +1246,7 @@ END
push(@implContentDecls, " }\n");
} elsif ($nativeType =~ /^V8Parameter/) {
my $value = JSValueToNative($parameter, "args[$paramIndex]", BasicTypeCanFailConversion($parameter) ? "${parameterName}Ok" : undef);
- if ($parameter->type eq "DOMString") {
- $implIncludes{"V8BindingMacros.h"} = 1;
- push(@implContentDecls, " STRING_TO_V8PARAMETER_EXCEPTION_BLOCK($nativeType, $parameterName, $value);\n");
- } else {
- # Don't know how to properly check for conversion exceptions when $parameter->type is "DOMUserData"
- push(@implContentDecls, " $nativeType $parameterName = $value;\n");
- }
+ push(@implContentDecls, " " . ConvertToV8Parameter($parameter, $nativeType, $parameterName, $value) . "\n");
} else {
$implIncludes{"V8BindingMacros.h"} = 1;
# For functions with "StrictTypeChecking", if an input parameter's type does not match the signature,
@@ -3055,7 +3059,8 @@ my %non_wrapper_types = (
'EventTarget' => 1,
'NodeFilter' => 1,
'EventListener' => 1,
- 'IDBKey' => 1
+ 'IDBKey' => 1,
+ 'Date' => 1
);
@@ -3316,6 +3321,25 @@ sub GetCallbackClassName
return "V8$interfaceName";
}
+sub ConvertToV8Parameter
+{
+ my $signature = shift;
+ my $nativeType = shift;
+ my $variableName = shift;
+ my $value = shift;
+ my $suffix = shift;
+
+ die "Wrong native type passed: $nativeType" unless $nativeType =~ /^V8Parameter/;
+ if ($signature->type eq "DOMString") {
+ my $macro = "STRING_TO_V8PARAMETER_EXCEPTION_BLOCK";
+ $macro .= "_$suffix" if $suffix;
+ return "$macro($nativeType, $variableName, $value);"
+ } else {
+ # Don't know how to properly check for conversion exceptions when $parameter->type is "DOMUserData"
+ return "$nativeType $variableName($value, true);";
+ }
+}
+
sub DebugPrint
{
my $output = shift;
diff --git a/WebCore/bindings/scripts/test/CPP/WebDOMTestCallback.h b/WebCore/bindings/scripts/test/CPP/WebDOMTestCallback.h
index a4d130e..91ff787 100644
--- a/WebCore/bindings/scripts/test/CPP/WebDOMTestCallback.h
+++ b/WebCore/bindings/scripts/test/CPP/WebDOMTestCallback.h
@@ -44,7 +44,7 @@ public:
explicit WebDOMTestCallback(WebCore::TestCallback*);
WebDOMTestCallback(const WebDOMTestCallback&);
WebDOMTestCallback& operator=(const WebDOMTestCallback&);
- ~WebDOMTestCallback();
+ virtual ~WebDOMTestCallback();
bool callbackWithClass1Param(const WebDOMClass1& class1Param);
bool callbackWithClass2Param(const WebDOMClass2& class2Param, const WebDOMString& strArg);
diff --git a/WebCore/bindings/scripts/test/CPP/WebDOMTestInterface.h b/WebCore/bindings/scripts/test/CPP/WebDOMTestInterface.h
index ca20c4e..5db5db8 100644
--- a/WebCore/bindings/scripts/test/CPP/WebDOMTestInterface.h
+++ b/WebCore/bindings/scripts/test/CPP/WebDOMTestInterface.h
@@ -39,7 +39,7 @@ public:
explicit WebDOMTestInterface(WebCore::TestInterface*);
WebDOMTestInterface(const WebDOMTestInterface&);
WebDOMTestInterface& operator=(const WebDOMTestInterface&);
- ~WebDOMTestInterface();
+ virtual ~WebDOMTestInterface();
WebCore::TestInterface* impl() const;
diff --git a/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.h b/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.h
index 2fedf41..770ce51 100644
--- a/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.h
+++ b/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.h
@@ -41,7 +41,7 @@ public:
explicit WebDOMTestObj(WebCore::TestObj*);
WebDOMTestObj(const WebDOMTestObj&);
WebDOMTestObj& operator=(const WebDOMTestObj&);
- ~WebDOMTestObj();
+ virtual ~WebDOMTestObj();
enum {
WEBDOM_CONST_VALUE_0 = 0,
diff --git a/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp b/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp
index e547d35..fbe538d 100644
--- a/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp
+++ b/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp
@@ -62,8 +62,11 @@ webkit_dom_test_callback_callback_with_class1param(WebKitDOMTestCallback* self,
g_return_val_if_fail(self, 0);
WebCore::TestCallback * item = WebKit::core(self);
g_return_val_if_fail(class1param, 0);
- WebCore::Class1 * converted_class1param = WebKit::core(class1param);
- g_return_val_if_fail(converted_class1param, 0);
+ WebCore::Class1 * converted_class1param = NULL;
+ if (class1param != NULL) {
+ converted_class1param = WebKit::core(class1param);
+ g_return_val_if_fail(converted_class1param, 0);
+ }
gboolean res = item->callbackWithClass1Param(converted_class1param);
return res;
}
@@ -76,8 +79,11 @@ webkit_dom_test_callback_callback_with_class2param(WebKitDOMTestCallback* self,
WebCore::TestCallback * item = WebKit::core(self);
g_return_val_if_fail(class2param, 0);
g_return_val_if_fail(str_arg, 0);
- WebCore::Class2 * converted_class2param = WebKit::core(class2param);
- g_return_val_if_fail(converted_class2param, 0);
+ WebCore::Class2 * converted_class2param = NULL;
+ if (class2param != NULL) {
+ converted_class2param = WebKit::core(class2param);
+ g_return_val_if_fail(converted_class2param, 0);
+ }
WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
gboolean res = item->callbackWithClass2Param(converted_class2param, converted_str_arg);
return res;
@@ -90,8 +96,11 @@ webkit_dom_test_callback_callback_with_non_bool_return_type(WebKitDOMTestCallbac
g_return_val_if_fail(self, 0);
WebCore::TestCallback * item = WebKit::core(self);
g_return_val_if_fail(class3param, 0);
- WebCore::Class3 * converted_class3param = WebKit::core(class3param);
- g_return_val_if_fail(converted_class3param, 0);
+ WebCore::Class3 * converted_class3param = NULL;
+ if (class3param != NULL) {
+ converted_class3param = WebKit::core(class3param);
+ g_return_val_if_fail(converted_class3param, 0);
+ }
glong res = item->callbackWithNonBoolReturnType(converted_class3param);
return res;
}
diff --git a/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp b/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp
index 56c6e14..3c27b81 100644
--- a/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp
+++ b/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp
@@ -70,8 +70,11 @@ webkit_dom_test_obj_void_method_with_args(WebKitDOMTestObj* self, glong int_arg,
g_return_if_fail(str_arg);
g_return_if_fail(obj_arg);
WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
- WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
- g_return_if_fail(converted_obj_arg);
+ WebCore::TestObj * converted_obj_arg = NULL;
+ if (obj_arg != NULL) {
+ converted_obj_arg = WebKit::core(obj_arg);
+ g_return_if_fail(converted_obj_arg);
+ }
item->voidMethodWithArgs(int_arg, converted_str_arg, converted_obj_arg);
}
@@ -94,8 +97,11 @@ webkit_dom_test_obj_int_method_with_args(WebKitDOMTestObj* self, glong int_arg,
g_return_val_if_fail(str_arg, 0);
g_return_val_if_fail(obj_arg, 0);
WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
- WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
- g_return_val_if_fail(converted_obj_arg, 0);
+ WebCore::TestObj * converted_obj_arg = NULL;
+ if (obj_arg != NULL) {
+ converted_obj_arg = WebKit::core(obj_arg);
+ g_return_val_if_fail(converted_obj_arg, 0);
+ }
glong res = item->intMethodWithArgs(int_arg, converted_str_arg, converted_obj_arg);
return res;
}
@@ -120,8 +126,11 @@ webkit_dom_test_obj_obj_method_with_args(WebKitDOMTestObj* self, glong int_arg,
g_return_val_if_fail(str_arg, 0);
g_return_val_if_fail(obj_arg, 0);
WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
- WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
- g_return_val_if_fail(converted_obj_arg, 0);
+ WebCore::TestObj * converted_obj_arg = NULL;
+ if (obj_arg != NULL) {
+ converted_obj_arg = WebKit::core(obj_arg);
+ g_return_val_if_fail(converted_obj_arg, 0);
+ }
PassRefPtr<WebCore::TestObj> g_res = WTF::getPtr(item->objMethodWithArgs(int_arg, converted_str_arg, converted_obj_arg));
WebKitDOMTestObj* res = static_cast<WebKitDOMTestObj*>(WebKit::kit(g_res.get()));
return res;
@@ -136,8 +145,11 @@ webkit_dom_test_obj_method_that_requires_all_args(WebKitDOMTestObj* self, const
g_return_val_if_fail(str_arg, 0);
g_return_val_if_fail(obj_arg, 0);
WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
- WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
- g_return_val_if_fail(converted_obj_arg, 0);
+ WebCore::TestObj * converted_obj_arg = NULL;
+ if (obj_arg != NULL) {
+ converted_obj_arg = WebKit::core(obj_arg);
+ g_return_val_if_fail(converted_obj_arg, 0);
+ }
PassRefPtr<WebCore::TestObj> g_res = WTF::getPtr(item->methodThatRequiresAllArgs(converted_str_arg, converted_obj_arg));
WebKitDOMTestObj* res = static_cast<WebKitDOMTestObj*>(WebKit::kit(g_res.get()));
return res;
@@ -152,8 +164,11 @@ webkit_dom_test_obj_method_that_requires_all_args_and_throws(WebKitDOMTestObj* s
g_return_val_if_fail(str_arg, 0);
g_return_val_if_fail(obj_arg, 0);
WTF::String converted_str_arg = WTF::String::fromUTF8(str_arg);
- WebCore::TestObj * converted_obj_arg = WebKit::core(obj_arg);
- g_return_val_if_fail(converted_obj_arg, 0);
+ WebCore::TestObj * converted_obj_arg = NULL;
+ if (obj_arg != NULL) {
+ converted_obj_arg = WebKit::core(obj_arg);
+ g_return_val_if_fail(converted_obj_arg, 0);
+ }
WebCore::ExceptionCode ec = 0;
PassRefPtr<WebCore::TestObj> g_res = WTF::getPtr(item->methodThatRequiresAllArgsAndThrows(converted_str_arg, converted_obj_arg, ec));
if (ec) {
@@ -172,8 +187,11 @@ webkit_dom_test_obj_serialized_value(WebKitDOMTestObj* self, WebKitDOMSerialized
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(serialized_arg);
- WebCore::SerializedScriptValue * converted_serialized_arg = WebKit::core(serialized_arg);
- g_return_if_fail(converted_serialized_arg);
+ WebCore::SerializedScriptValue * converted_serialized_arg = NULL;
+ if (serialized_arg != NULL) {
+ converted_serialized_arg = WebKit::core(serialized_arg);
+ g_return_if_fail(converted_serialized_arg);
+ }
item->serializedValue(converted_serialized_arg);
}
@@ -184,8 +202,11 @@ webkit_dom_test_obj_idb_key(WebKitDOMTestObj* self, WebKitDOMIDBKey* key)
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(key);
- WebCore::IDBKey * converted_key = WebKit::core(key);
- g_return_if_fail(converted_key);
+ WebCore::IDBKey * converted_key = NULL;
+ if (key != NULL) {
+ converted_key = WebKit::core(key);
+ g_return_if_fail(converted_key);
+ }
item->idbKey(converted_key);
}
@@ -470,8 +491,11 @@ webkit_dom_test_obj_set_test_obj_attr(WebKitDOMTestObj* self, WebKitDOMTestObj*
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::TestObj * converted_value = WebKit::core(value);
- g_return_if_fail(converted_value);
+ WebCore::TestObj * converted_value = NULL;
+ if (value != NULL) {
+ converted_value = WebKit::core(value);
+ g_return_if_fail(converted_value);
+ }
item->setTestObjAttr(converted_value);
}
@@ -493,8 +517,11 @@ webkit_dom_test_obj_set_xml_obj_attr(WebKitDOMTestObj* self, WebKitDOMTestObj* v
g_return_if_fail(self);
WebCore::TestObj * item = WebKit::core(self);
g_return_if_fail(value);
- WebCore::TestObj * converted_value = WebKit::core(value);
- g_return_if_fail(converted_value);
+ WebCore::TestObj * converted_value = NULL;
+ if (value != NULL) {
+ converted_value = WebKit::core(value);
+ g_return_if_fail(converted_value);
+ }
item->setXMLObjAttr(converted_value);
}
diff --git a/WebCore/bindings/scripts/test/TestObj.idl b/WebCore/bindings/scripts/test/TestObj.idl
index a2bc89d..94f734b 100644
--- a/WebCore/bindings/scripts/test/TestObj.idl
+++ b/WebCore/bindings/scripts/test/TestObj.idl
@@ -50,13 +50,13 @@ module test {
attribute [Reflect] DOMString reflectedStringAttr;
attribute [Reflect] long reflectedIntegralAttr;
attribute [Reflect] boolean reflectedBooleanAttr;
- attribute [Reflect,URL] DOMString reflectedURLAttr;
- attribute [Reflect,NonEmpty,URL] DOMString reflectedNonEmptyURLAttr;
+ attribute [Reflect, URL] DOMString reflectedURLAttr;
+ attribute [Reflect, NonEmpty, URL] DOMString reflectedNonEmptyURLAttr;
attribute [Reflect=customContentStringAttr] DOMString reflectedStringAttr;
attribute [Reflect=customContentIntegralAttr] long reflectedCustomIntegralAttr;
attribute [Reflect=customContentBooleanAttr] boolean reflectedCustomBooleanAttr;
- attribute [Reflect=customContentURLAttr,URL] DOMString reflectedCustomURLAttr;
- attribute [Reflect=customContentNonEmptyURLAttr,NonEmpty,URL] DOMString reflectedCustomNonEmptyURLAttr;
+ attribute [Reflect=customContentURLAttr, URL] DOMString reflectedCustomURLAttr;
+ attribute [Reflect=customContentNonEmptyURLAttr, NonEmpty, URL] DOMString reflectedCustomNonEmptyURLAttr;
// Methods
void voidMethod();