Changeset 129723 in webkit
- Timestamp:
- Sep 26, 2012 7:11:13 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r129721 r129723 1 2012-08-09 Takashi Sakamoto <tasak@google.com> 2 3 Move IDL extended attributes to the location specified in WebIDL 4 https://bugs.webkit.org/show_bug.cgi?id=26398 5 6 Reviewed by Kentaro Hara. 7 8 Recreated a new IDLParser based on the WebIDL spec: 9 http://dev.w3.org/2006/webapi/WebIDL/ 10 11 Firstly merges two grammars (editors draft and WebKit current IDL) and 12 generates IDL parser by using python script. The generated parser is 13 modified to generate the same outputs as the previous IDLParser.pm. 14 The new IDLParser.pm can parse both WebIDL grammar. 15 16 No new tests. Tested by comparing with sources generated by 17 the previous IDLParser.pm. 18 19 * bindings/scripts/IDLParser.pm: 20 (new): 21 (assertTokenValue): 22 (assertTokenType): 23 (assertUnexpectedToken): 24 (Parse): 25 A method to start parsing a IDL file. Arguments and return values are 26 the same as the previous IDLParser.pm's Parse method. 27 (nextToken): 28 Implemented to see a next token, because of LL(1). 29 (getToken): 30 Returns current token, and update next and current token. 31 (getTokenInternal): 32 According to the regular expressions defined in WebIDL spec, extracts 33 one new token from a text string. The order of the regular expressions 34 to be tested is important, i.e. "0." should be considered as a float 35 token, but if firstly checks the integer regular expression, "0." is 36 considered as "0" and ".". 37 (parseDefinition): 38 (parseCallbackOrInterface): 39 (parseCallbackRestOrInterface): 40 (parseInterface): 41 (parsePartial): 42 (parsePartialDefinition): 43 (parsePartialInterface): 44 (parseInterfaceMember): 45 (parseDictionary): 46 (parseDictionaryMember): 47 (parsePartialDictionary): 48 (parseDefaultValue): 49 (parseException): 50 (parseExceptionMembers): 51 (parseEnum): 52 (parseEnumValueList): 53 (parseCallbackRest): 54 (parseTypedef): 55 (parseImplementsStatement): 56 (parseConst): 57 (parseConstValue): 58 (parseBooleanLiteral): 59 (parseFloatLiteral): 60 (parseAttributeOrOperationOrIterator): 61 (parseSerializer): 62 (parseSerializationPattern): 63 (parseQualifier): 64 (parseAttributeOrOperationRest): 65 (parseAttribute): 66 (parseAttributeRest): 67 (parseOperationOrIterator): 68 (parseSpecialOperation): 69 (parseSpecial): 70 (parseOperationOrIteratorRest): 71 (parseIteratorRest): 72 (parseOptionalIteratorInterfaceOrObject): 73 (parseOperationRest): 74 (parseArguments): 75 (parseArgument): 76 (parseOptionalOrRequiredArgument): 77 (parseArgumentName): 78 (parseExceptionMember): 79 (parseExceptionField): 80 (parseExtendedAttributeList): 81 (parseExtendedAttribute): 82 (parseExtendedAttributeRest2): 83 (parseArgumentNameKeyword): 84 (parseType): 85 (parseSingleType): 86 (parseUnionType): 87 (parseNonAnyType): 88 (parsePrimitiveType): 89 (parseUnrestrictedFloatType): 90 (parseFloatType): 91 (parseUnsignedIntegerType): 92 (parseNull): 93 (parseGet): 94 (parseInheritsGetter): 95 (parseSetGetRaises): 96 (parseGetRaises2): 97 (parseSetRaises): 98 (parseSetRaises3): 99 (parseDefinitionOld): 100 (parseModule): 101 (parseInterfaceOld): 102 (parseInterfaceMemberOld): 103 (parseDictionaryOld): 104 (parseDictionaryMemberOld): 105 (parseExceptionOld): 106 (parseEnumOld): 107 (parseAttributeOrOperationOrIteratorOld): 108 (parseAttributeOrOperationRestOld): 109 (parseAttributeOld): 110 (parseIn): 111 (parseOptionalSemicolon): 112 (applyMemberList): 113 (applyExtendedAttributeList): 114 * bindings/scripts/test/CPP/WebDOMTestObj.cpp: 115 (WebDOMTestObj::longAttr): 116 (WebDOMTestObj::setLongAttr): 117 (WebDOMTestObj::voidMethodWithArgs): 118 (WebDOMTestObj::longMethod): 119 (WebDOMTestObj::longMethodWithArgs): 120 (WebDOMTestObj::objMethodWithArgs): 121 (WebDOMTestObj::convert1): 122 (WebDOMTestObj::convert2): 123 (WebDOMTestObj::convert3): 124 (WebDOMTestObj::convert4): 125 (WebDOMTestObj::convert5): 126 * bindings/scripts/test/CPP/WebDOMTestObj.h: 127 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: 128 (webkit_dom_test_obj_set_property): 129 (webkit_dom_test_obj_get_property): 130 (webkit_dom_test_obj_class_init): 131 (webkit_dom_test_obj_void_method_with_args): 132 (webkit_dom_test_obj_long_method): 133 (webkit_dom_test_obj_long_method_with_args): 134 (webkit_dom_test_obj_obj_method_with_args): 135 (webkit_dom_test_obj_convert1): 136 (webkit_dom_test_obj_convert2): 137 (webkit_dom_test_obj_convert3): 138 (webkit_dom_test_obj_convert4): 139 (webkit_dom_test_obj_convert5): 140 (webkit_dom_test_obj_get_long_attr): 141 (webkit_dom_test_obj_set_long_attr): 142 * bindings/scripts/test/GObject/WebKitDOMTestObj.h: 143 * bindings/scripts/test/JS/JSTestObj.cpp: 144 (WebCore): 145 (WebCore::jsTestObjLongAttr): 146 (WebCore::setJSTestObjLongAttr): 147 (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs): 148 (WebCore::jsTestObjPrototypeFunctionLongMethod): 149 (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs): 150 (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs): 151 (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence): 152 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2): 153 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4): 154 (WebCore::jsTestObjPrototypeFunctionConvert1): 155 (WebCore::jsTestObjPrototypeFunctionConvert2): 156 (WebCore::jsTestObjPrototypeFunctionConvert3): 157 (WebCore::jsTestObjPrototypeFunctionConvert4): 158 (WebCore::jsTestObjPrototypeFunctionConvert5): 159 * bindings/scripts/test/JS/JSTestObj.h: 160 (WebCore): 161 * bindings/scripts/test/ObjC/DOMTestObj.h: 162 * bindings/scripts/test/ObjC/DOMTestObj.mm: 163 (-[DOMTestObj longAttr]): 164 (-[DOMTestObj setLongAttr:]): 165 (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]): 166 (-[DOMTestObj longMethod]): 167 (-[DOMTestObj longMethodWithArgs:strArg:objArg:]): 168 (-[DOMTestObj objMethodWithArgs:strArg:objArg:]): 169 (-[DOMTestObj customMethodWithArgs:strArg:objArg:]): 170 (-[DOMTestObj convert1:]): 171 (-[DOMTestObj convert2:]): 172 (-[DOMTestObj convert3:]): 173 (-[DOMTestObj convert4:]): 174 (-[DOMTestObj convert5:]): 175 * bindings/scripts/test/TestObj.idl: 176 Removed the line which has only "JSC, V8". 177 Added argument to convert1, ... convert5. 178 * bindings/scripts/test/V8/V8TestObj.cpp: 179 (WebCore::TestObjV8Internal::longAttrAttrGetter): 180 (WebCore::TestObjV8Internal::longAttrAttrSetter): 181 (WebCore::TestObjV8Internal::voidMethodWithArgsCallback): 182 (WebCore::TestObjV8Internal::longMethodCallback): 183 (WebCore::TestObjV8Internal::longMethodWithArgsCallback): 184 (WebCore::TestObjV8Internal::objMethodWithArgsCallback): 185 (WebCore::TestObjV8Internal::methodReturningSequenceCallback): 186 (WebCore::TestObjV8Internal::overloadedMethod2Callback): 187 (WebCore::TestObjV8Internal::overloadedMethod4Callback): 188 (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback): 189 (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback): 190 (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback): 191 (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback): 192 (WebCore::TestObjV8Internal::convert1Callback): 193 (WebCore::TestObjV8Internal::convert2Callback): 194 (WebCore::TestObjV8Internal::convert3Callback): 195 (WebCore::TestObjV8Internal::convert4Callback): 196 (WebCore::TestObjV8Internal::convert5Callback): 197 (WebCore): 198 (WebCore::ConfigureV8TestObjTemplate): 199 * Modules/webaudio/AudioBufferSourceNode.idl: 200 As only restricted extended attribute syntax is supported, modify the 201 idl from [...] [...] to [..., ...]. 202 1 203 2012-09-26 Yoshifumi Inoue <yosin@chromium.org> 2 204 -
trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl
r129260 r129723 46 46 47 47 [V8MeasureAs=WebAudioStart] void start(in double when); 48 [V8MeasureAs=WebAudioStart ] [ImplementedAs=startGrain] void start(in double when, in double grainOffset, in double grainDuration);48 [V8MeasureAs=WebAudioStart, ImplementedAs=startGrain] void start(in double when, in double grainOffset, in double grainDuration); 49 49 void stop(in double when); 50 50 -
trunk/Source/WebCore/bindings/scripts/IDLParser.pm
r122912 r129723 22 22 package IDLParser; 23 23 24 use Class::Struct; 25 24 26 use strict; 25 use re 'eval';26 27 27 28 use IPC::Open2; … … 29 30 use preprocessor; 30 31 31 use constant MODE_UNDEF => 0; # Default mode. 32 33 use constant MODE_MODULE => 10; # 'module' section 34 use constant MODE_INTERFACE => 11; # 'interface' section 35 use constant MODE_EXCEPTION => 12; # 'exception' section 36 37 # Helper variables 38 my @temporaryContent; 39 40 my $parseMode; 41 my $preservedParseMode; 42 43 my $beQuiet; # Should not display anything on STDOUT? 44 my $document; # Will hold the resulting 'idlDocument' 45 my $parentsOnly; # If 1, parse only enough to populate parents list 46 47 sub InitializeGlobalData 48 { 49 @temporaryContent = ""; 50 51 $parseMode = MODE_UNDEF; 52 $preservedParseMode = MODE_UNDEF; 53 54 $document = 0; 55 $parentsOnly = 0; 56 } 57 58 # Default Constructor 59 sub new 60 { 61 my $object = shift; 62 my $reference = { }; 63 64 InitializeGlobalData(); 65 66 $beQuiet = shift; 67 68 bless($reference, $object); 69 return $reference; 70 } 71 72 # Returns the parsed 'idlDocument' 32 use constant StringToken => 0; 33 use constant IntegerToken => 1; 34 use constant FloatToken => 2; 35 use constant IdentifierToken => 3; 36 use constant OtherToken => 4; 37 use constant EmptyToken => 5; 38 39 struct( Token => { 40 type => '$', # type of token 41 value => '$' # value of token 42 }); 43 44 sub new { 45 my $class = shift; 46 47 my $emptyToken = Token->new(); 48 $emptyToken->type(EmptyToken); 49 $emptyToken->value("empty"); 50 51 my $self = { 52 DocumentContent => "", 53 EmptyToken => $emptyToken, 54 NextToken => $emptyToken, 55 Token => $emptyToken, 56 Line => "", 57 LineNumber => 1 58 }; 59 return bless $self, $class; 60 } 61 62 sub assertTokenValue 63 { 64 my $self = shift; 65 my $token = shift; 66 my $value = shift; 67 my $line = shift; 68 my $msg = "Next token should be " . $value . ", but " . $token->value() . " at " . $self->{Line}; 69 if (defined ($line)) { 70 $msg .= " IDLParser.pm:" . $line; 71 } 72 die $msg unless $token->value() eq $value; 73 } 74 75 sub assertTokenType 76 { 77 my $self = shift; 78 my $token = shift; 79 my $type = shift; 80 die "Next token's type should be " . $type . ", but " . $token->type() . " at " . $self->{Line} unless $token->type() eq $type; 81 } 82 83 sub assertUnexpectedToken 84 { 85 my $self = shift; 86 my $token = shift; 87 my $line = shift; 88 my $msg = "Unexpected token " . $token . " at " . $self->{Line}; 89 if (defined ($line)) { 90 $msg .= " IDLParser.pm:" . $line; 91 } 92 die $msg; 93 } 94 73 95 sub Parse 74 96 { 75 my $ object= shift;97 my $self = shift; 76 98 my $fileName = shift; 77 99 my $defines = shift; 78 100 my $preprocessor = shift; 79 $parentsOnly = shift; 80 81 print " | *** Starting to parse $fileName...\n |\n" unless $beQuiet; 82 my @documentContent = applyPreprocessor($fileName, $defines, $preprocessor); 83 84 my $dataAvailable = 0; 85 86 # Simple IDL Parser (tm) 87 foreach (@documentContent) { 88 my $newParseMode = $object->DetermineParseMode($_); 89 90 if ($newParseMode ne MODE_UNDEF) { 91 if ($dataAvailable eq 0) { 92 $dataAvailable = 1; # Start node building... 93 } else { 94 $object->ProcessSection(); 101 102 my @definitions = (); 103 104 my @lines = applyPreprocessor($fileName, $defines, $preprocessor); 105 $self->{Line} = $lines[0]; 106 $self->{DocumentContent} = join(' ', @lines); 107 108 $self->getToken(); 109 eval { 110 my $result = $self->parseDefinitions(); 111 push(@definitions, @{$result}); 112 113 my $next = $self->nextToken(); 114 $self->assertTokenType($next, EmptyToken); 115 }; 116 die $@ . " in $fileName" if $@; 117 118 die "No document found" unless @definitions; 119 120 my $document; 121 if ($#definitions == 0 && ref($definitions[0]) eq "idlDocument") { 122 $document = $definitions[0]; 123 } else { 124 $document = new idlDocument(); 125 $document->module(""); 126 push(@{$document->classes}, @definitions); 127 } 128 129 $document->fileName($fileName); 130 return $document; 131 } 132 133 sub nextToken 134 { 135 my $self = shift; 136 return $self->{NextToken}; 137 } 138 139 sub getToken 140 { 141 my $self = shift; 142 $self->{Token} = $self->{NextToken}; 143 $self->{NextToken} = $self->getTokenInternal(); 144 return $self->{Token}; 145 } 146 147 my $whitespaceTokenPattern = '^[\t\n\r ]*[\n\r]'; 148 my $floatTokenPattern = '^(-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+))'; 149 my $integerTokenPattern = '^(-?[1-9][0-9]*|-?0[Xx][0-9A-Fa-f]+|-?0[0-7]*)'; 150 my $stringTokenPattern = '^(\"[^\"]*\")'; 151 my $identifierTokenPattern = '^([A-Z_a-z][0-9A-Z_a-z]*)'; 152 my $otherTokenPattern = '^(::|\.\.\.|[^\t\n\r 0-9A-Z_a-z])'; 153 154 sub getTokenInternal 155 { 156 my $self = shift; 157 158 if ($self->{DocumentContent} =~ /$whitespaceTokenPattern/) { 159 $self->{DocumentContent} =~ s/($whitespaceTokenPattern)//; 160 my $skipped = $1; 161 $self->{LineNumber}++ while ($skipped =~ /\n/g); 162 if ($self->{DocumentContent} =~ /^([^\n\r]+)/) { 163 $self->{Line} = $self->{LineNumber} . ":" . $1; 164 } else { 165 $self->{Line} = "Unknown"; 166 } 167 } 168 $self->{DocumentContent} =~ s/^([\t\n\r ]+)//; 169 if ($self->{DocumentContent} eq "") { 170 return $self->{EmptyToken}; 171 } 172 173 my $token = Token->new(); 174 if ($self->{DocumentContent} =~ /$floatTokenPattern/) { 175 $token->type(FloatToken); 176 $token->value($1); 177 $self->{DocumentContent} =~ s/$floatTokenPattern//; 178 return $token; 179 } 180 if ($self->{DocumentContent} =~ /$integerTokenPattern/) { 181 $token->type(IntegerToken); 182 $token->value($1); 183 $self->{DocumentContent} =~ s/$integerTokenPattern//; 184 return $token; 185 } 186 if ($self->{DocumentContent} =~ /$stringTokenPattern/) { 187 $token->type(StringToken); 188 $token->value($1); 189 $self->{DocumentContent} =~ s/$stringTokenPattern//; 190 return $token; 191 } 192 if ($self->{DocumentContent} =~ /$identifierTokenPattern/) { 193 $token->type(IdentifierToken); 194 $token->value($1); 195 $self->{DocumentContent} =~ s/$identifierTokenPattern//; 196 return $token; 197 } 198 if ($self->{DocumentContent} =~ /$otherTokenPattern/) { 199 $token->type(OtherToken); 200 $token->value($1); 201 $self->{DocumentContent} =~ s/$otherTokenPattern//; 202 return $token; 203 } 204 die "Failed in tokenizing at " . $self->{Line}; 205 } 206 207 my $nextAttributeOld_1 = '^(attribute|inherit|readonly)$'; 208 my $nextPrimitiveType_1 = '^(int|long|short|unsigned)$'; 209 my $nextPrimitiveType_2 = '^(double|float|unrestricted)$'; 210 my $nextSetGetRaises2_1 = '^(;|getraises|setraises)$'; 211 my $nextArgumentList_1 = '^(\(|ByteString|DOMString|Date|\[|any|boolean|byte|double|float|in|int|long|object|octet|optional|sequence|short|unrestricted|unsigned)$'; 212 my $nextNonAnyType_1 = '^(boolean|byte|double|float|int|long|octet|short|unrestricted|unsigned)$'; 213 my $nextInterfaceMemberOld_1 = '^(\(|ByteString|DOMString|Date|any|attribute|boolean|byte|creator|deleter|double|float|getter|inherit|int|legacycaller|long|object|octet|readonly|sequence|serializer|setter|short|static|stringifier|unrestricted|unsigned|void)$'; 214 my $nextOptionalIteratorInterfaceOrObject_1 = '^(;|=)$'; 215 my $nextAttributeOrOperationOrIterator_1 = '^(static|stringifier)$'; 216 my $nextAttributeOrOperationOrIterator_2 = '^(\(|ByteString|DOMString|Date|any|boolean|byte|creator|deleter|double|float|getter|int|legacycaller|long|object|octet|sequence|setter|short|unrestricted|unsigned|void)$'; 217 my $nextUnrestrictedFloatType_1 = '^(double|float)$'; 218 my $nextExtendedAttributeRest3_1 = '^(,|\])$'; 219 my $nextExceptionField_1 = '^(\(|ByteString|DOMString|Date|any|boolean|byte|double|float|int|long|object|octet|sequence|short|unrestricted|unsigned)$'; 220 my $nextType_1 = '^(ByteString|DOMString|Date|any|boolean|byte|double|float|int|long|object|octet|sequence|short|unrestricted|unsigned)$'; 221 my $nextSpecials_1 = '^(creator|deleter|getter|legacycaller|setter)$'; 222 my $nextDefinitions_1 = '^(callback|dictionary|enum|exception|interface|partial|typedef)$'; 223 my $nextExceptionMembers_1 = '^(\(|ByteString|DOMString|Date|\[|any|boolean|byte|const|double|float|int|long|object|octet|optional|sequence|short|unrestricted|unsigned)$'; 224 my $nextAttributeRest_1 = '^(attribute|readonly)$'; 225 my $nextSingleType_1 = '^(ByteString|DOMString|Date|boolean|byte|double|float|int|long|object|octet|sequence|short|unrestricted|unsigned)$'; 226 my $nextGet_1 = '^(;|getraises|getter|setraises|setter)$'; 227 my $nextArgumentName_1 = '^(attribute|callback|const|creator|deleter|dictionary|enum|exception|getter|implements|inherit|interface|legacycaller|partial|serializer|setter|static|stringifier|typedef|unrestricted)$'; 228 my $nextConstValue_1 = '^(false|true)$'; 229 my $nextConstValue_2 = '^(-|Infinity|NaN)$'; 230 my $nextDefinition_1 = '^(callback|interface)$'; 231 my $nextAttributeOrOperationRest_1 = '^(\(|ByteString|DOMString|Date|any|boolean|byte|double|float|int|long|object|octet|sequence|short|unrestricted|unsigned|void)$'; 232 my $nextUnsignedIntegerType_1 = '^(int|long|short)$'; 233 my $nextInterfaceMembers_1 = '^(\(|ByteString|DOMString|Date|any|attribute|boolean|byte|const|creator|deleter|double|float|getter|inherit|int|legacycaller|long|object|octet|readonly|sequence|serializer|setter|short|static|stringifier|unrestricted|unsigned|void)$'; 234 my $nextDefaultValue_1 = '^(-|Infinity|NaN|false|null|true)$'; 235 236 sub parseDefinitions 237 { 238 my $self = shift; 239 my @definitions = (); 240 241 while (1) { 242 my $next = $self->nextToken(); 243 my $definition; 244 if ($next->value() eq "[") { 245 my $extendedAttributeList = $self->parseExtendedAttributeList(); 246 $definition = $self->parseDefinition($extendedAttributeList); 247 } elsif ($next->type() == IdentifierToken || $next->value() =~ /$nextDefinitions_1/) { 248 $definition = $self->parseDefinitionOld(); 249 } else { 250 last; 251 } 252 if (defined ($definition)) { 253 push(@definitions, $definition); 254 } 255 } 256 return \@definitions; 257 } 258 259 sub parseDefinition 260 { 261 my $self = shift; 262 my $extendedAttributeList = shift; 263 264 my $next = $self->nextToken(); 265 if ($next->value() =~ /$nextDefinition_1/) { 266 return $self->parseCallbackOrInterface($extendedAttributeList); 267 } 268 if ($next->value() eq "partial") { 269 return $self->parsePartial($extendedAttributeList); 270 } 271 if ($next->value() eq "dictionary") { 272 return $self->parseDictionary($extendedAttributeList); 273 } 274 if ($next->value() eq "exception") { 275 return $self->parseException($extendedAttributeList); 276 } 277 if ($next->value() eq "enum") { 278 return $self->parseEnum($extendedAttributeList); 279 } 280 if ($next->value() eq "typedef") { 281 return $self->parseTypedef($extendedAttributeList); 282 } 283 if ($next->type() == IdentifierToken) { 284 return $self->parseImplementsStatement($extendedAttributeList); 285 } 286 $self->assertUnexpectedToken($next->value(), __LINE__); 287 } 288 289 sub parseCallbackOrInterface 290 { 291 my $self = shift; 292 my $extendedAttributeList = shift; 293 294 my $next = $self->nextToken(); 295 if ($next->value() eq "callback") { 296 $self->assertTokenValue($self->getToken(), "callback", __LINE__); 297 return $self->parseCallbackRestOrInterface($extendedAttributeList); 298 } 299 if ($next->value() eq "interface") { 300 return $self->parseInterface($extendedAttributeList); 301 } 302 $self->assertUnexpectedToken($next->value(), __LINE__); 303 } 304 305 sub parseCallbackRestOrInterface 306 { 307 my $self = shift; 308 my $extendedAttributeList = shift; 309 310 my $next = $self->nextToken(); 311 if ($next->value() eq "interface") { 312 return $self->parseInterface($extendedAttributeList); 313 } 314 if ($next->type() == IdentifierToken) { 315 return $self->parseCallbackRest($extendedAttributeList); 316 } 317 $self->assertUnexpectedToken($next->value(), __LINE__); 318 } 319 320 sub parseInterface 321 { 322 my $self = shift; 323 my $extendedAttributeList = shift; 324 325 my $next = $self->nextToken(); 326 if ($next->value() eq "interface") { 327 my $dataNode = new domClass(); 328 $self->assertTokenValue($self->getToken(), "interface", __LINE__); 329 my $interfaceNameToken = $self->getToken(); 330 $self->assertTokenType($interfaceNameToken, IdentifierToken); 331 $dataNode->name($interfaceNameToken->value()); 332 push(@{$dataNode->parents}, @{$self->parseInheritance()}); 333 $self->assertTokenValue($self->getToken(), "{", __LINE__); 334 my $interfaceMembers = $self->parseInterfaceMembers(); 335 $self->assertTokenValue($self->getToken(), "}", __LINE__); 336 $self->assertTokenValue($self->getToken(), ";", __LINE__); 337 applyMemberList($dataNode, $interfaceMembers); 338 applyExtendedAttributeList($dataNode, $extendedAttributeList); 339 return $dataNode; 340 } 341 $self->assertUnexpectedToken($next->value(), __LINE__); 342 } 343 344 sub parsePartial 345 { 346 my $self = shift; 347 my $extendedAttributeList = shift; 348 349 my $next = $self->nextToken(); 350 if ($next->value() eq "partial") { 351 $self->assertTokenValue($self->getToken(), "partial", __LINE__); 352 return $self->parsePartialDefinition($extendedAttributeList); 353 } 354 $self->assertUnexpectedToken($next->value(), __LINE__); 355 } 356 357 sub parsePartialDefinition 358 { 359 my $self = shift; 360 my $extendedAttributeList = shift; 361 362 my $next = $self->nextToken(); 363 if ($next->value() eq "interface") { 364 return $self->parsePartialInterface($extendedAttributeList); 365 } 366 if ($next->value() eq "dictionary") { 367 return $self->parsePartialDictionary($extendedAttributeList); 368 } 369 $self->assertUnexpectedToken($next->value(), __LINE__); 370 } 371 372 sub parsePartialInterface 373 { 374 my $self = shift; 375 my $extendedAttributeList = shift; 376 377 my $next = $self->nextToken(); 378 if ($next->value() eq "interface") { 379 $self->assertTokenValue($self->getToken(), "interface", __LINE__); 380 $self->assertTokenType($self->getToken(), IdentifierToken); 381 $self->assertTokenValue($self->getToken(), "{", __LINE__); 382 $self->parseInterfaceMembers(); 383 $self->assertTokenValue($self->getToken(), "}", __LINE__); 384 $self->assertTokenValue($self->getToken(), ";", __LINE__); 385 return; 386 } 387 $self->assertUnexpectedToken($next->value(), __LINE__); 388 } 389 390 sub parseInterfaceMembers 391 { 392 my $self = shift; 393 my @interfaceMembers = (); 394 395 while (1) { 396 my $next = $self->nextToken(); 397 my $interfaceMember; 398 399 if ($next->value() eq "[") { 400 my $extendedAttributeList = $self->parseExtendedAttributeList(); 401 $interfaceMember = $self->parseInterfaceMember($extendedAttributeList); 402 } elsif ($next->type() == IdentifierToken || $next->value() =~ /$nextInterfaceMembers_1/) { 403 $interfaceMember = $self->parseInterfaceMemberOld(); 404 } else { 405 last; 406 } 407 if (defined $interfaceMember) { 408 push(@interfaceMembers, $interfaceMember); 409 } 410 } 411 return \@interfaceMembers; 412 } 413 414 sub parseInterfaceMember 415 { 416 my $self = shift; 417 my $extendedAttributeList = shift; 418 419 my $next = $self->nextToken(); 420 if ($next->value() eq "const") { 421 return $self->parseConst($extendedAttributeList); 422 } 423 if ($next->type() == IdentifierToken || $next->value() =~ /$nextInterfaceMemberOld_1/) { 424 return $self->parseAttributeOrOperationOrIterator($extendedAttributeList); 425 } 426 $self->assertUnexpectedToken($next->value(), __LINE__); 427 } 428 429 sub parseDictionary 430 { 431 my $self = shift; 432 my $extendedAttributeList = shift; 433 434 my $next = $self->nextToken(); 435 if ($next->value() eq "dictionary") { 436 $self->assertTokenValue($self->getToken(), "dictionary", __LINE__); 437 $self->assertTokenType($self->getToken(), IdentifierToken); 438 $self->parseInheritance(); 439 $self->assertTokenValue($self->getToken(), "{", __LINE__); 440 $self->parseDictionaryMembers(); 441 $self->assertTokenValue($self->getToken(), "}", __LINE__); 442 $self->assertTokenValue($self->getToken(), ";", __LINE__); 443 return; 444 } 445 $self->assertUnexpectedToken($next->value(), __LINE__); 446 } 447 448 sub parseDictionaryMembers 449 { 450 my $self = shift; 451 452 while (1) { 453 my $next = $self->nextToken(); 454 if ($next->value() eq "[") { 455 my $extendedAttributeList = $self->parseExtendedAttributeList(); 456 $self->parseDictionaryMember($extendedAttributeList); 457 } elsif ($next->type() == IdentifierToken || $next->value() =~ /$nextExceptionField_1/) { 458 $self->parseDictionaryMemberOld(); 459 } else { 460 last; 461 } 462 } 463 } 464 465 sub parseDictionaryMember 466 { 467 my $self = shift; 468 my $extendedAttributeList = shift; 469 470 my $next = $self->nextToken(); 471 if ($next->type() == IdentifierToken || $next->value() =~ /$nextExceptionField_1/) { 472 $self->parseType(); 473 $self->assertTokenType($self->getToken(), IdentifierToken); 474 $self->parseDefault(); 475 $self->assertTokenValue($self->getToken(), ";", __LINE__); 476 return; 477 } 478 $self->assertUnexpectedToken($next->value(), __LINE__); 479 } 480 481 sub parsePartialDictionary 482 { 483 my $self = shift; 484 my $next = $self->nextToken(); 485 if ($next->value() eq "dictionary") { 486 $self->assertTokenValue($self->getToken(), "dictionary", __LINE__); 487 $self->assertTokenType($self->getToken(), IdentifierToken); 488 $self->assertTokenValue($self->getToken(), "{", __LINE__); 489 $self->parseDictionaryMembers(); 490 $self->assertTokenValue($self->getToken(), "}", __LINE__); 491 $self->assertTokenValue($self->getToken(), ";", __LINE__); 492 return; 493 } 494 $self->assertUnexpectedToken($next->value(), __LINE__); 495 } 496 497 sub parseDefault 498 { 499 my $self = shift; 500 my $next = $self->nextToken(); 501 if ($next->value() eq "=") { 502 $self->assertTokenValue($self->getToken(), "=", __LINE__); 503 return $self->parseDefaultValue(); 504 } 505 } 506 507 sub parseDefaultValue 508 { 509 my $self = shift; 510 my $next = $self->nextToken(); 511 if ($next->type() == FloatToken || $next->type() == IntegerToken || $next->value() =~ /$nextDefaultValue_1/) { 512 return $self->parseConstValue(); 513 } 514 if ($next->type() == StringToken) { 515 return $self->getToken()->value(); 516 } 517 $self->assertUnexpectedToken($next->value(), __LINE__); 518 } 519 520 sub parseException 521 { 522 my $self = shift; 523 my $extendedAttributeList = shift; 524 525 my $next = $self->nextToken(); 526 if ($next->value() eq "exception") { 527 my $dataNode = new domClass(); 528 $self->assertTokenValue($self->getToken(), "exception", __LINE__); 529 my $exceptionNameToken = $self->getToken(); 530 $self->assertTokenType($exceptionNameToken, IdentifierToken); 531 $dataNode->name($exceptionNameToken->value()); 532 $dataNode->isException(1); 533 push(@{$dataNode->parents}, @{$self->parseInheritance()}); 534 $self->assertTokenValue($self->getToken(), "{", __LINE__); 535 my $exceptionMembers = $self->parseExceptionMembers(); 536 $self->assertTokenValue($self->getToken(), "}", __LINE__); 537 $self->assertTokenValue($self->getToken(), ";", __LINE__); 538 applyMemberList($dataNode, $exceptionMembers); 539 applyExtendedAttributeList($dataNode, $extendedAttributeList); 540 return $dataNode; 541 } 542 $self->assertUnexpectedToken($next->value(), __LINE__); 543 } 544 545 sub parseExceptionMembers 546 { 547 my $self = shift; 548 my @members = (); 549 550 while (1) { 551 my $next = $self->nextToken(); 552 if ($next->type() == IdentifierToken || $next->value() =~ /$nextExceptionMembers_1/) { 553 my $extendedAttributeList = $self->parseExtendedAttributeListAllowEmpty(); 554 #my $member = $self->parseExceptionMember($extendedAttributeList); 555 my $member = $self->parseInterfaceMember($extendedAttributeList); 556 if (defined ($member)) { 557 push(@members, $member); 95 558 } 96 } 97 98 # Update detected data stream mode... 99 if ($newParseMode ne MODE_UNDEF) { 100 $parseMode = $newParseMode; 101 } 102 103 push(@temporaryContent, $_); 104 } 105 106 # Check if there is anything remaining to parse... 107 if (($parseMode ne MODE_UNDEF) and ($#temporaryContent > 0)) { 108 $object->ProcessSection(); 109 } 110 111 print " | *** Finished parsing!\n" unless $beQuiet; 112 113 $document->fileName($fileName); 114 115 return $document; 116 } 117 118 sub ParseModule 119 { 120 my $object = shift; 559 } else { 560 last; 561 } 562 } 563 return \@members; 564 } 565 566 sub parseInheritance 567 { 568 my $self = shift; 569 my @parent = (); 570 571 my $next = $self->nextToken(); 572 if ($next->value() eq ":") { 573 $self->assertTokenValue($self->getToken(), ":", __LINE__); 574 my $token = $self->getToken(); 575 $self->assertTokenType($token, IdentifierToken); 576 push(@parent, $token->value()); 577 # Multiple inheritance? 578 push(@parent, @{$self->parseIdentifiers()}); 579 } 580 return \@parent; 581 } 582 583 sub parseEnum 584 { 585 my $self = shift; 586 my $extendedAttributeList = shift; 587 588 my $next = $self->nextToken(); 589 if ($next->value() eq "enum") { 590 $self->assertTokenValue($self->getToken(), "enum", __LINE__); 591 $self->assertTokenType($self->getToken(), IdentifierToken); 592 $self->assertTokenValue($self->getToken(), "{", __LINE__); 593 $self->parseEnumValueList(); 594 $self->assertTokenValue($self->getToken(), "}", __LINE__); 595 $self->assertTokenValue($self->getToken(), ";", __LINE__); 596 return; 597 } 598 $self->assertUnexpectedToken($next->value(), __LINE__); 599 } 600 601 sub parseEnumValueList 602 { 603 my $self = shift; 604 my $next = $self->nextToken(); 605 if ($next->type() == StringToken) { 606 $self->assertTokenType($self->getToken(), StringToken); 607 $self->parseEnumValues(); 608 return; 609 } 610 $self->assertUnexpectedToken($next->value(), __LINE__); 611 } 612 613 sub parseEnumValues 614 { 615 my $self = shift; 616 my $next = $self->nextToken(); 617 if ($next->value() eq ",") { 618 $self->assertTokenValue($self->getToken(), ",", __LINE__); 619 $self->assertTokenType($self->getToken(), StringToken); 620 $self->parseEnumValues(); 621 } 622 } 623 624 sub parseCallbackRest 625 { 626 my $self = shift; 627 my $extendedAttributeList = shift; 628 629 my $next = $self->nextToken(); 630 if ($next->type() == IdentifierToken) { 631 $self->assertTokenType($self->getToken(), IdentifierToken); 632 $self->assertTokenValue($self->getToken(), "=", __LINE__); 633 $self->parseReturnType(); 634 $self->assertTokenValue($self->getToken(), "(", __LINE__); 635 $self->parseArgumentList(); 636 $self->assertTokenValue($self->getToken(), ")", __LINE__); 637 $self->assertTokenValue($self->getToken(), ";", __LINE__); 638 return; 639 } 640 $self->assertUnexpectedToken($next->value(), __LINE__); 641 } 642 643 sub parseTypedef 644 { 645 my $self = shift; 646 my $extendedAttributeList = shift; 647 648 my $next = $self->nextToken(); 649 if ($next->value() eq "typedef") { 650 $self->assertTokenValue($self->getToken(), "typedef", __LINE__); 651 $self->parseExtendedAttributeList(); 652 $self->parseType(); 653 $self->assertTokenType($self->getToken(), IdentifierToken); 654 $self->assertTokenValue($self->getToken(), ";", __LINE__); 655 return; 656 } 657 $self->assertUnexpectedToken($next->value(), __LINE__); 658 } 659 660 sub parseImplementsStatement 661 { 662 my $self = shift; 663 my $extendedAttributeList = shift; 664 665 my $next = $self->nextToken(); 666 if ($next->type() == IdentifierToken) { 667 $self->assertTokenType($self->getToken(), IdentifierToken); 668 $self->assertTokenValue($self->getToken(), "implements", __LINE__); 669 $self->assertTokenType($self->getToken(), IdentifierToken); 670 $self->assertTokenValue($self->getToken(), ";", __LINE__); 671 return; 672 } 673 $self->assertUnexpectedToken($next->value(), __LINE__); 674 } 675 676 sub parseConst 677 { 678 my $self = shift; 679 my $extendedAttributeList = shift; 680 681 my $next = $self->nextToken(); 682 if ($next->value() eq "const") { 683 my $newDataNode = new domConstant(); 684 $self->assertTokenValue($self->getToken(), "const", __LINE__); 685 $newDataNode->type($self->parseConstType()); 686 my $constNameToken = $self->getToken(); 687 $self->assertTokenType($constNameToken, IdentifierToken); 688 $newDataNode->name($constNameToken->value()); 689 $self->assertTokenValue($self->getToken(), "=", __LINE__); 690 $newDataNode->value($self->parseConstValue()); 691 $self->assertTokenValue($self->getToken(), ";", __LINE__); 692 $newDataNode->extendedAttributes($extendedAttributeList); 693 return $newDataNode; 694 } 695 $self->assertUnexpectedToken($next->value(), __LINE__); 696 } 697 698 sub parseConstValue 699 { 700 my $self = shift; 701 my $next = $self->nextToken(); 702 if ($next->value() =~ /$nextConstValue_1/) { 703 return $self->parseBooleanLiteral(); 704 } 705 if ($next->value() eq "null") { 706 $self->assertTokenValue($self->getToken(), "null", __LINE__); 707 return "null"; 708 } 709 if ($next->type() == FloatToken || $next->value() =~ /$nextConstValue_2/) { 710 return $self->parseFloatLiteral(); 711 } 712 # backward compatibility 713 if ($next->type() == StringToken) { 714 return $self->getToken()->value(); 715 } 716 if ($next->type() == IntegerToken) { 717 return $self->getToken()->value(); 718 } 719 $self->assertUnexpectedToken($next->value(), __LINE__); 720 } 721 722 sub parseBooleanLiteral 723 { 724 my $self = shift; 725 my $next = $self->nextToken(); 726 if ($next->value() eq "true") { 727 $self->assertTokenValue($self->getToken(), "true", __LINE__); 728 return "true"; 729 } 730 if ($next->value() eq "false") { 731 $self->assertTokenValue($self->getToken(), "false", __LINE__); 732 return "false"; 733 } 734 $self->assertUnexpectedToken($next->value(), __LINE__); 735 } 736 737 sub parseFloatLiteral 738 { 739 my $self = shift; 740 my $next = $self->nextToken(); 741 if ($next->value() eq "-") { 742 $self->assertTokenValue($self->getToken(), "-", __LINE__); 743 $self->assertTokenValue($self->getToken(), "Infinity", __LINE__); 744 return "-Infinity"; 745 } 746 if ($next->value() eq "Infinity") { 747 $self->assertTokenValue($self->getToken(), "Infinity", __LINE__); 748 return "Infinity"; 749 } 750 if ($next->value() eq "NaN") { 751 $self->assertTokenValue($self->getToken(), "NaN", __LINE__); 752 return "NaN"; 753 } 754 if ($next->type() == FloatToken) { 755 return $self->getToken()->value(); 756 } 757 $self->assertUnexpectedToken($next->value(), __LINE__); 758 } 759 760 sub parseAttributeOrOperationOrIterator 761 { 762 my $self = shift; 763 my $extendedAttributeList = shift; 764 765 my $next = $self->nextToken(); 766 if ($next->value() eq "serializer") { 767 return $self->parseSerializer($extendedAttributeList); 768 } 769 if ($next->value() =~ /$nextAttributeOrOperationOrIterator_1/) { 770 my $qualifier = $self->parseQualifier(); 771 my $newDataNode = $self->parseAttributeOrOperationRest($extendedAttributeList); 772 if (defined($newDataNode) && $qualifier eq "static") { 773 $newDataNode->isStatic(1); 774 } 775 return $newDataNode; 776 } 777 if ($next->value() =~ /$nextAttributeOld_1/) { 778 return $self->parseAttribute($extendedAttributeList); 779 } 780 if ($next->type() == IdentifierToken || $next->value() =~ /$nextAttributeOrOperationOrIterator_2/) { 781 return $self->parseOperationOrIterator($extendedAttributeList); 782 } 783 $self->assertUnexpectedToken($next->value(), __LINE__); 784 } 785 786 sub parseSerializer 787 { 788 my $self = shift; 789 my $extendedAttributeList = shift; 790 791 my $next = $self->nextToken(); 792 if ($next->value() eq "serializer") { 793 $self->assertTokenValue($self->getToken(), "serializer", __LINE__); 794 return $self->parseSerializerRest($extendedAttributeList); 795 } 796 $self->assertUnexpectedToken($next->value(), __LINE__); 797 } 798 799 sub parseSerializerRest 800 { 801 my $self = shift; 802 my $extendedAttributeList = shift; 803 804 my $next = $self->nextToken(); 805 if ($next->value() eq "=") { 806 $self->assertTokenValue($self->getToken(), "=", __LINE__); 807 return $self->parseSerializationPattern($extendedAttributeList); 808 } 809 if ($next->type() == IdentifierToken || $next->value() eq "(") { 810 return $self->parseOperationRest($extendedAttributeList); 811 } 812 } 813 814 sub parseSerializationPattern 815 { 816 my $self = shift; 817 my $extendedAttributeList = shift; 818 819 my $next = $self->nextToken(); 820 if ($next->value() eq "{") { 821 $self->assertTokenValue($self->getToken(), "{", __LINE__); 822 $self->parseSerializationPatternMap(); 823 $self->assertTokenValue($self->getToken(), "}", __LINE__); 824 return; 825 } 826 if ($next->value() eq "[") { 827 $self->assertTokenValue($self->getToken(), "[", __LINE__); 828 $self->parseSerializationPatternList(); 829 $self->assertTokenValue($self->getToken(), "]", __LINE__); 830 return; 831 } 832 if ($next->type() == IdentifierToken) { 833 $self->assertTokenType($self->getToken(), IdentifierToken); 834 return; 835 } 836 $self->assertUnexpectedToken($next->value(), __LINE__); 837 } 838 839 sub parseSerializationPatternMap 840 { 841 my $self = shift; 842 my $next = $self->nextToken(); 843 if ($next->value() eq "getter") { 844 $self->assertTokenValue($self->getToken(), "getter", __LINE__); 845 return; 846 } 847 if ($next->value() eq "inherit") { 848 $self->assertTokenValue($self->getToken(), "inherit", __LINE__); 849 $self->parseIdentifiers(); 850 return; 851 } 852 if ($next->type() == IdentifierToken) { 853 $self->assertTokenType($self->getToken(), IdentifierToken); 854 $self->parseIdentifiers(); 855 } 856 } 857 858 sub parseSerializationPatternList 859 { 860 my $self = shift; 861 my $next = $self->nextToken(); 862 if ($next->value() eq "getter") { 863 $self->assertTokenValue($self->getToken(), "getter", __LINE__); 864 return; 865 } 866 if ($next->type() == IdentifierToken) { 867 $self->assertTokenType($self->getToken(), IdentifierToken); 868 $self->parseIdentifiers(); 869 } 870 } 871 872 sub parseIdentifiers 873 { 874 my $self = shift; 875 my @idents = (); 876 877 while (1) { 878 my $next = $self->nextToken(); 879 if ($next->value() eq ",") { 880 $self->assertTokenValue($self->getToken(), ",", __LINE__); 881 my $token = $self->getToken(); 882 $self->assertTokenType($token, IdentifierToken); 883 push(@idents, $token->value()); 884 } else { 885 last; 886 } 887 } 888 return \@idents; 889 } 890 891 sub parseQualifier 892 { 893 my $self = shift; 894 895 my $next = $self->nextToken(); 896 if ($next->value() eq "static") { 897 $self->assertTokenValue($self->getToken(), "static", __LINE__); 898 return "static"; 899 } 900 if ($next->value() eq "stringifier") { 901 $self->assertTokenValue($self->getToken(), "stringifier", __LINE__); 902 return "stringifier"; 903 } 904 $self->assertUnexpectedToken($next->value(), __LINE__); 905 } 906 907 sub parseAttributeOrOperationRest 908 { 909 my $self = shift; 910 my $extendedAttributeList = shift; 911 912 my $next = $self->nextToken(); 913 if ($next->value() =~ /$nextAttributeRest_1/) { 914 return $self->parseAttributeRest($extendedAttributeList); 915 } 916 if ($next->value() eq ";") { 917 $self->assertTokenValue($self->getToken(), ";", __LINE__); 918 return; 919 } 920 if ($next->type() == IdentifierToken || $next->value() =~ /$nextAttributeOrOperationRest_1/) { 921 my $returnType = $self->parseReturnType(); 922 my $dataNode = $self->parseOperationRest($extendedAttributeList); 923 if (defined ($dataNode)) { 924 $dataNode->signature->type($returnType); 925 } 926 return $dataNode; 927 } 928 $self->assertUnexpectedToken($next->value(), __LINE__); 929 } 930 931 sub parseAttribute 932 { 933 my $self = shift; 934 my $extendedAttributeList = shift; 935 936 my $next = $self->nextToken(); 937 if ($next->value() =~ /$nextAttributeOld_1/) { 938 $self->parseInherit(); 939 return $self->parseAttributeRest($extendedAttributeList); 940 } 941 $self->assertUnexpectedToken($next->value(), __LINE__); 942 } 943 944 sub parseAttributeRest 945 { 946 my $self = shift; 947 my $extendedAttributeList = shift; 948 949 my $next = $self->nextToken(); 950 if ($next->value() =~ /$nextAttributeRest_1/) { 951 my $newDataNode = new domAttribute(); 952 if ($self->parseReadOnly()) { 953 $newDataNode->type("readonly attribute"); 954 } else { 955 $newDataNode->type("attribute"); 956 } 957 $self->assertTokenValue($self->getToken(), "attribute", __LINE__); 958 $newDataNode->signature(new domSignature()); 959 $newDataNode->signature->type($self->parseType()); 960 my $token = $self->getToken(); 961 $self->assertTokenType($token, IdentifierToken); 962 $newDataNode->signature->name($token->value()); 963 my $getRef = $self->parseGet(); 964 if (defined $getRef) { 965 push(@{$newDataNode->getterExceptions}, @{$getRef->{"getraises"}}); 966 push(@{$newDataNode->setterExceptions}, @{$getRef->{"setraises"}}); 967 } 968 $self->assertTokenValue($self->getToken(), ";", __LINE__); 969 $newDataNode->signature->extendedAttributes($extendedAttributeList); 970 return $newDataNode; 971 } 972 $self->assertUnexpectedToken($next->value(), __LINE__); 973 } 974 975 sub parseInherit 976 { 977 my $self = shift; 978 my $next = $self->nextToken(); 979 if ($next->value() eq "inherit") { 980 $self->assertTokenValue($self->getToken(), "inherit", __LINE__); 981 return 1; 982 } 983 return 0; 984 } 985 986 sub parseReadOnly 987 { 988 my $self = shift; 989 my $next = $self->nextToken(); 990 if ($next->value() eq "readonly") { 991 $self->assertTokenValue($self->getToken(), "readonly", __LINE__); 992 return 1; 993 } 994 return 0; 995 } 996 997 sub parseOperationOrIterator 998 { 999 my $self = shift; 1000 my $extendedAttributeList = shift; 1001 1002 my $next = $self->nextToken(); 1003 if ($next->value() =~ /$nextSpecials_1/) { 1004 return $self->parseSpecialOperation($extendedAttributeList); 1005 } 1006 if ($next->type() == IdentifierToken || $next->value() =~ /$nextAttributeOrOperationRest_1/) { 1007 my $returnType = $self->parseReturnType(); 1008 my $dataNode = $self->parseOperationOrIteratorRest($extendedAttributeList); 1009 if (defined ($dataNode)) { 1010 $dataNode->signature->type($returnType); 1011 } 1012 return $dataNode; 1013 } 1014 $self->assertUnexpectedToken($next->value(), __LINE__); 1015 } 1016 1017 sub parseSpecialOperation 1018 { 1019 my $self = shift; 1020 my $extendedAttributeList = shift; 1021 1022 my $next = $self->nextToken(); 1023 if ($next->value() =~ /$nextSpecials_1/) { 1024 $self->parseSpecial(); 1025 $self->parseSpecials(); 1026 my $returnType = $self->parseReturnType(); 1027 my $dataNode = $self->parseOperationRest($extendedAttributeList); 1028 if (defined ($dataNode)) { 1029 $dataNode->signature->type($returnType); 1030 } 1031 return $dataNode; 1032 } 1033 $self->assertUnexpectedToken($next->value(), __LINE__); 1034 } 1035 1036 sub parseSpecials 1037 { 1038 my $self = shift; 1039 1040 while (1) { 1041 my $next = $self->nextToken(); 1042 if ($next->value() =~ /$nextSpecials_1/) { 1043 $self->parseSpecial(); 1044 } else { 1045 last; 1046 } 1047 } 1048 return []; 1049 } 1050 1051 sub parseSpecial 1052 { 1053 my $self = shift; 1054 my $next = $self->nextToken(); 1055 if ($next->value() eq "getter") { 1056 $self->assertTokenValue($self->getToken(), "getter", __LINE__); 1057 return "getter"; 1058 } 1059 if ($next->value() eq "setter") { 1060 $self->assertTokenValue($self->getToken(), "setter", __LINE__); 1061 return "setter"; 1062 } 1063 if ($next->value() eq "creator") { 1064 $self->assertTokenValue($self->getToken(), "creator", __LINE__); 1065 return "creator"; 1066 } 1067 if ($next->value() eq "deleter") { 1068 $self->assertTokenValue($self->getToken(), "deleter", __LINE__); 1069 return "deleter"; 1070 } 1071 if ($next->value() eq "legacycaller") { 1072 $self->assertTokenValue($self->getToken(), "legacycaller", __LINE__); 1073 return "legacycaller"; 1074 } 1075 $self->assertUnexpectedToken($next->value(), __LINE__); 1076 } 1077 1078 sub parseOperationOrIteratorRest 1079 { 1080 my $self = shift; 1081 my $extendedAttributeList = shift; 1082 1083 my $next = $self->nextToken(); 1084 if ($next->value() eq "iterator") { 1085 return $self->parseIteratorRest($extendedAttributeList); 1086 } 1087 if ($next->type() == IdentifierToken || $next->value() eq "(") { 1088 return $self->parseOperationRest($extendedAttributeList); 1089 } 1090 $self->assertUnexpectedToken($next->value(), __LINE__); 1091 } 1092 1093 sub parseIteratorRest 1094 { 1095 my $self = shift; 1096 my $extendedAttributeList = shift; 1097 1098 my $next = $self->nextToken(); 1099 if ($next->value() eq "iterator") { 1100 $self->assertTokenValue($self->getToken(), "iterator", __LINE__); 1101 $self->parseOptionalIteratorInterfaceOrObject($extendedAttributeList); 1102 $self->assertTokenValue($self->getToken(), ";", __LINE__); 1103 return; 1104 } 1105 $self->assertUnexpectedToken($next->value(), __LINE__); 1106 } 1107 1108 sub parseOptionalIteratorInterfaceOrObject 1109 { 1110 my $self = shift; 1111 my $extendedAttributeList = shift; 1112 1113 my $next = $self->nextToken(); 1114 if ($next->value() =~ /$nextOptionalIteratorInterfaceOrObject_1/) { 1115 return $self->parseOptionalIteratorInterface($extendedAttributeList); 1116 } 1117 if ($next->value() eq "object") { 1118 $self->assertTokenValue($self->getToken(), "object", __LINE__); 1119 return; 1120 } 1121 $self->assertUnexpectedToken($next->value(), __LINE__); 1122 } 1123 1124 sub parseOptionalIteratorInterface 1125 { 1126 my $self = shift; 1127 my $extendedAttributeList = shift; 1128 1129 my $next = $self->nextToken(); 1130 if ($next->value() eq "=") { 1131 $self->assertTokenValue($self->getToken(), "=", __LINE__); 1132 $self->assertTokenType($self->getToken(), IdentifierToken); 1133 } 1134 } 1135 1136 sub parseOperationRest 1137 { 1138 my $self = shift; 1139 my $extendedAttributeList = shift; 1140 1141 my $next = $self->nextToken(); 1142 if ($next->type() == IdentifierToken || $next->value() eq "(") { 1143 my $newDataNode = new domFunction(); 1144 $newDataNode->signature(new domSignature()); 1145 my $name = $self->parseOptionalIdentifier(); 1146 $newDataNode->signature->name($name); 1147 $self->assertTokenValue($self->getToken(), "(", $name, __LINE__); 1148 push(@{$newDataNode->parameters}, @{$self->parseArgumentList()}); 1149 $self->assertTokenValue($self->getToken(), ")", __LINE__); 1150 push(@{$newDataNode->raisesExceptions}, @{$self->parseRaises()}); 1151 $self->assertTokenValue($self->getToken(), ";", __LINE__); 1152 $newDataNode->signature->extendedAttributes($extendedAttributeList); 1153 return $newDataNode; 1154 } 1155 $self->assertUnexpectedToken($next->value(), __LINE__); 1156 } 1157 1158 sub parseOptionalIdentifier 1159 { 1160 my $self = shift; 1161 my $next = $self->nextToken(); 1162 if ($next->type() == IdentifierToken) { 1163 my $token = $self->getToken(); 1164 return $token->value(); 1165 } 1166 return ""; 1167 } 1168 1169 sub parseArgumentList 1170 { 1171 my $self = shift; 1172 my @arguments = (); 1173 1174 my $next = $self->nextToken(); 1175 if ($next->type() == IdentifierToken || $next->value() =~ /$nextArgumentList_1/) { 1176 push(@arguments, $self->parseArgument()); 1177 push(@arguments, @{$self->parseArguments()}); 1178 } 1179 return \@arguments; 1180 } 1181 1182 sub parseArguments 1183 { 1184 my $self = shift; 1185 my @arguments = (); 1186 1187 while (1) { 1188 my $next = $self->nextToken(); 1189 if ($next->value() eq ",") { 1190 $self->assertTokenValue($self->getToken(), ",", __LINE__); 1191 push(@arguments, $self->parseArgument()); 1192 } else { 1193 last; 1194 } 1195 } 1196 return \@arguments; 1197 } 1198 1199 sub parseArgument 1200 { 1201 my $self = shift; 1202 my $next = $self->nextToken(); 1203 if ($next->type() == IdentifierToken || $next->value() =~ /$nextArgumentList_1/) { 1204 my $in = $self->parseIn(); 1205 my $extendedAttributeList = $self->parseExtendedAttributeListAllowEmpty(); 1206 my $argument = $self->parseOptionalOrRequiredArgument($extendedAttributeList); 1207 $argument->direction($self->parseIn()); 1208 return $argument; 1209 } 1210 $self->assertUnexpectedToken($next->value(), __LINE__); 1211 } 1212 1213 sub parseOptionalOrRequiredArgument 1214 { 1215 my $self = shift; 1216 my $extendedAttributeList = shift; 1217 1218 my $paramDataNode = new domSignature(); 1219 $paramDataNode->extendedAttributes($extendedAttributeList); 1220 1221 my $next = $self->nextToken(); 1222 if ($next->value() eq "optional") { 1223 $self->assertTokenValue($self->getToken(), "optional", __LINE__); 1224 my $type = $self->parseType(); 1225 # domDataNode can only consider last "?". 1226 if ($type =~ /\?$/) { 1227 $paramDataNode->isNullable(1); 1228 } else { 1229 $paramDataNode->isNullable(0); 1230 } 1231 # Remove all "?" if exists, e.g. "object?[]?" -> "object[]". 1232 $type =~ s/\?//g; 1233 $paramDataNode->type($type); 1234 $paramDataNode->name($self->parseArgumentName()); 1235 $self->parseDefault(); 1236 return $paramDataNode; 1237 } 1238 if ($next->type() == IdentifierToken || $next->value() =~ /$nextExceptionField_1/) { 1239 my $type = $self->parseType(); 1240 # domDataNode can only consider last "?". 1241 if ($type =~ /\?$/) { 1242 $paramDataNode->isNullable(1); 1243 } else { 1244 $paramDataNode->isNullable(0); 1245 } 1246 # Remove all "?" if exists, e.g. "object?[]?" -> "object[]". 1247 $type =~ s/\?//g; 1248 $paramDataNode->type($type); 1249 $self->parseEllipsis(); 1250 $paramDataNode->name($self->parseArgumentName()); 1251 return $paramDataNode; 1252 } 1253 $self->assertUnexpectedToken($next->value(), __LINE__); 1254 } 1255 1256 sub parseArgumentName 1257 { 1258 my $self = shift; 1259 my $next = $self->nextToken(); 1260 if ($next->value() =~ /$nextArgumentName_1/) { 1261 return $self->parseArgumentNameKeyword(); 1262 } 1263 if ($next->type() == IdentifierToken) { 1264 return $self->getToken()->value(); 1265 } 1266 $self->assertUnexpectedToken($next->value(), __LINE__); 1267 } 1268 1269 sub parseEllipsis 1270 { 1271 my $self = shift; 1272 my $next = $self->nextToken(); 1273 if ($next->value() eq "...") { 1274 $self->assertTokenValue($self->getToken(), "...", __LINE__); 1275 return 1; 1276 } 1277 return 0; 1278 } 1279 1280 sub parseExceptionMember 1281 { 1282 my $self = shift; 1283 my $extendedAttributeList = shift; 1284 1285 my $next = $self->nextToken(); 1286 if ($next->value() eq "const") { 1287 return $self->parseConst($extendedAttributeList); 1288 } 1289 if ($next->type() == IdentifierToken || $next->value() =~ /$nextExceptionField_1/) { 1290 return $self->parseExceptionField($extendedAttributeList); 1291 } 1292 $self->assertUnexpectedToken($next->value(), __LINE__); 1293 } 1294 1295 sub parseExceptionField 1296 { 1297 my $self = shift; 1298 my $extendedAttributeList = shift; 1299 1300 my $next = $self->nextToken(); 1301 if ($next->type() == IdentifierToken || $next->value() =~ /$nextExceptionField_1/) { 1302 my $newDataNode = new domAttribute(); 1303 $newDataNode->type("readonly attribute"); 1304 $newDataNode->signature(new domSignature()); 1305 $newDataNode->signature->type($self->parseType()); 1306 my $token = $self->getToken(); 1307 $self->assertTokenType($token, IdentifierToken); 1308 $newDataNode->signature->name($token->value()); 1309 $self->assertTokenValue($self->getToken(), ";", __LINE__); 1310 $newDataNode->signature->extendedAttributes($extendedAttributeList); 1311 return $newDataNode; 1312 } 1313 $self->assertUnexpectedToken($next->value(), __LINE__); 1314 } 1315 1316 sub parseExtendedAttributeListAllowEmpty 1317 { 1318 my $self = shift; 1319 my $next = $self->nextToken(); 1320 if ($next->value() eq "[") { 1321 return $self->parseExtendedAttributeList(); 1322 } 1323 return {}; 1324 } 1325 1326 sub parseExtendedAttributeList 1327 { 1328 my $self = shift; 1329 my $next = $self->nextToken(); 1330 if ($next->value() eq "[") { 1331 $self->assertTokenValue($self->getToken(), "[", __LINE__); 1332 my $extendedAttributeList = {}; 1333 my $attr = $self->parseExtendedAttribute(); 1334 for my $key (keys %{$attr}) { 1335 $extendedAttributeList->{$key} = $attr->{$key}; 1336 } 1337 $attr = $self->parseExtendedAttributes(); 1338 for my $key (keys %{$attr}) { 1339 $extendedAttributeList->{$key} = $attr->{$key}; 1340 } 1341 $self->assertTokenValue($self->getToken(), "]", __LINE__); 1342 return $extendedAttributeList; 1343 } 1344 $self->assertUnexpectedToken($next->value(), __LINE__); 1345 } 1346 1347 sub parseExtendedAttributes 1348 { 1349 my $self = shift; 1350 my $extendedAttributeList = {}; 1351 1352 while (1) { 1353 my $next = $self->nextToken(); 1354 if ($next->value() eq ",") { 1355 $self->assertTokenValue($self->getToken(), ",", __LINE__); 1356 my $attr = $self->parseExtendedAttribute2(); 1357 for my $key (keys %{$attr}) { 1358 $extendedAttributeList->{$key} = $attr->{$key}; 1359 } 1360 } else { 1361 last; 1362 } 1363 } 1364 return $extendedAttributeList; 1365 } 1366 1367 sub parseExtendedAttribute 1368 { 1369 my $self = shift; 1370 my $next = $self->nextToken(); 1371 if ($next->type() == IdentifierToken) { 1372 my $token = $self->getToken(); 1373 return $self->parseExtendedAttributeRest($token->value()); 1374 } 1375 # backward compatibility. Spec doesn' allow "[]". But WebKit requires. 1376 if ($next->value() eq ']') { 1377 return {}; 1378 } 1379 $self->assertUnexpectedToken($next->value(), __LINE__); 1380 } 1381 1382 sub parseExtendedAttribute2 1383 { 1384 my $self = shift; 1385 my $next = $self->nextToken(); 1386 if ($next->type() == IdentifierToken) { 1387 my $token = $self->getToken(); 1388 return $self->parseExtendedAttributeRest($token->value()); 1389 } 1390 return {}; 1391 } 1392 1393 sub parseExtendedAttributeRest 1394 { 1395 my $self = shift; 1396 my $name = shift; 1397 my $attrs = {}; 1398 1399 my $next = $self->nextToken(); 1400 if ($next->value() eq "(") { 1401 $self->assertTokenValue($self->getToken(), "(", __LINE__); 1402 $attrs->{$name} = $self->parseArgumentList(); 1403 $self->assertTokenValue($self->getToken(), ")", __LINE__); 1404 return $attrs; 1405 } 1406 if ($next->value() eq "=") { 1407 $self->assertTokenValue($self->getToken(), "=", __LINE__); 1408 $attrs->{$name} = $self->parseExtendedAttributeRest2(); 1409 return $attrs; 1410 } 1411 1412 if ($name eq "Constructor") { 1413 $attrs->{$name} = []; 1414 } else { 1415 $attrs->{$name} = "VALUE_IS_MISSING"; 1416 } 1417 return $attrs; 1418 } 1419 1420 sub parseExtendedAttributeRest2 1421 { 1422 my $self = shift; 1423 my $next = $self->nextToken(); 1424 if ($next->type() == IdentifierToken) { 1425 my $token = $self->getToken(); 1426 return $self->parseExtendedAttributeRest3($token->value()); 1427 } 1428 if ($next->type() == IntegerToken) { 1429 my $token = $self->getToken(); 1430 return $token->value(); 1431 } 1432 $self->assertUnexpectedToken($next->value(), __LINE__); 1433 } 1434 1435 sub parseExtendedAttributeRest3 1436 { 1437 my $self = shift; 1438 my $name = shift; 1439 1440 my $next = $self->nextToken(); 1441 if ($next->value() eq "&") { 1442 $self->assertTokenValue($self->getToken(), "&", __LINE__); 1443 my $token = $self->getToken(); 1444 $self->assertTokenType($token, IdentifierToken); 1445 return $name . "&" . $token->value(); 1446 } 1447 if ($next->value() eq "|") { 1448 $self->assertTokenValue($self->getToken(), "|", __LINE__); 1449 my $token = $self->getToken(); 1450 $self->assertTokenType($token, IdentifierToken); 1451 return $name . "|" . $token->value(); 1452 } 1453 if ($next->value() eq "(") { 1454 my $attr = {}; 1455 $self->assertTokenValue($self->getToken(), "(", __LINE__); 1456 $attr->{$name} = $self->parseArgumentList(); 1457 $self->assertTokenValue($self->getToken(), ")", __LINE__); 1458 return $attr; 1459 } 1460 if ($next->type() == IdentifierToken || $next->value() =~ /$nextExtendedAttributeRest3_1/) { 1461 my @names = (); 1462 push(@names, $name); 1463 push(@names, @{$self->parseIdentifierList()}); 1464 return join(' ', @names); 1465 } 1466 $self->assertUnexpectedToken($next->value()); 1467 } 1468 1469 sub parseIdentifierList 1470 { 1471 my $self = shift; 1472 my @names = (); 1473 1474 while (1) { 1475 my $next = $self->nextToken(); 1476 if ($next->type() == IdentifierToken) { 1477 push(@names, $self->getToken()->value()); 1478 } else { 1479 last; 1480 } 1481 } 1482 return \@names; 1483 } 1484 1485 sub parseArgumentNameKeyword 1486 { 1487 my $self = shift; 1488 my $next = $self->nextToken(); 1489 if ($next->value() eq "attribute") { 1490 return $self->getToken()->value(); 1491 } 1492 if ($next->value() eq "callback") { 1493 return $self->getToken()->value(); 1494 } 1495 if ($next->value() eq "const") { 1496 return $self->getToken()->value(); 1497 } 1498 if ($next->value() eq "creator") { 1499 return $self->getToken()->value(); 1500 } 1501 if ($next->value() eq "deleter") { 1502 return $self->getToken()->value(); 1503 } 1504 if ($next->value() eq "dictionary") { 1505 return $self->getToken()->value(); 1506 } 1507 if ($next->value() eq "enum") { 1508 return $self->getToken()->value(); 1509 } 1510 if ($next->value() eq "exception") { 1511 return $self->getToken()->value(); 1512 } 1513 if ($next->value() eq "getter") { 1514 return $self->getToken()->value(); 1515 } 1516 if ($next->value() eq "implements") { 1517 return $self->getToken()->value(); 1518 } 1519 if ($next->value() eq "inherit") { 1520 return $self->getToken()->value(); 1521 } 1522 if ($next->value() eq "interface") { 1523 return $self->getToken()->value(); 1524 } 1525 if ($next->value() eq "legacycaller") { 1526 return $self->getToken()->value(); 1527 } 1528 if ($next->value() eq "partial") { 1529 return $self->getToken()->value(); 1530 } 1531 if ($next->value() eq "serializer") { 1532 return $self->getToken()->value(); 1533 } 1534 if ($next->value() eq "setter") { 1535 return $self->getToken()->value(); 1536 } 1537 if ($next->value() eq "static") { 1538 return $self->getToken()->value(); 1539 } 1540 if ($next->value() eq "stringifier") { 1541 return $self->getToken()->value(); 1542 } 1543 if ($next->value() eq "typedef") { 1544 return $self->getToken()->value(); 1545 } 1546 if ($next->value() eq "unrestricted") { 1547 return $self->getToken()->value(); 1548 } 1549 $self->assertUnexpectedToken($next->value(), __LINE__); 1550 } 1551 1552 sub parseType 1553 { 1554 my $self = shift; 1555 my $next = $self->nextToken(); 1556 if ($next->value() eq "(") { 1557 $self->parseUnionType(); 1558 $self->parseTypeSuffix(); 1559 return; 1560 } 1561 if ($next->type() == IdentifierToken || $next->value() =~ /$nextType_1/) { 1562 return $self->parseSingleType(); 1563 } 1564 $self->assertUnexpectedToken($next->value(), __LINE__); 1565 } 1566 1567 sub parseSingleType 1568 { 1569 my $self = shift; 1570 my $next = $self->nextToken(); 1571 if ($next->value() eq "any") { 1572 $self->assertTokenValue($self->getToken(), "any", __LINE__); 1573 return "any" . $self->parseTypeSuffixStartingWithArray(); 1574 } 1575 if ($next->type() == IdentifierToken || $next->value() =~ /$nextSingleType_1/) { 1576 return $self->parseNonAnyType(); 1577 } 1578 $self->assertUnexpectedToken($next->value(), __LINE__); 1579 } 1580 1581 sub parseUnionType 1582 { 1583 my $self = shift; 1584 my $next = $self->nextToken(); 1585 if ($next->value() eq "(") { 1586 $self->assertTokenValue($self->getToken(), "(", __LINE__); 1587 $self->parseUnionMemberType(); 1588 $self->assertTokenValue($self->getToken(), "or", __LINE__); 1589 $self->parseUnionMemberType(); 1590 $self->parseUnionMemberTypes(); 1591 $self->assertTokenValue($self->getToken(), ")", __LINE__); 1592 return; 1593 } 1594 $self->assertUnexpectedToken($next->value(), __LINE__); 1595 } 1596 1597 sub parseUnionMemberType 1598 { 1599 my $self = shift; 1600 my $next = $self->nextToken(); 1601 if ($next->value() eq "(") { 1602 $self->parseUnionType(); 1603 $self->parseTypeSuffix(); 1604 return; 1605 } 1606 if ($next->value() eq "any") { 1607 $self->assertTokenValue($self->getToken(), "any", __LINE__); 1608 $self->assertTokenValue($self->getToken(), "[", __LINE__); 1609 $self->assertTokenValue($self->getToken(), "]", __LINE__); 1610 $self->parseTypeSuffix(); 1611 return; 1612 } 1613 if ($next->type() == IdentifierToken || $next->value() =~ /$nextSingleType_1/) { 1614 $self->parseNonAnyType(); 1615 return; 1616 } 1617 $self->assertUnexpectedToken($next->value(), __LINE__); 1618 } 1619 1620 sub parseUnionMemberTypes 1621 { 1622 my $self = shift; 1623 my $next = $self->nextToken(); 1624 if ($next->value() eq "or") { 1625 $self->assertTokenValue($self->getToken(), "or", __LINE__); 1626 $self->parseUnionMemberType(); 1627 $self->parseUnionMemberTypes(); 1628 } 1629 } 1630 1631 sub parseNonAnyType 1632 { 1633 my $self = shift; 1634 my $next = $self->nextToken(); 1635 if ($next->value() =~ /$nextNonAnyType_1/) { 1636 return $self->parsePrimitiveType() . $self->parseTypeSuffix(); 1637 } 1638 if ($next->value() eq "ByteString") { 1639 $self->assertTokenValue($self->getToken(), "ByteString", __LINE__); 1640 return "ByteString" . $self->parseTypeSuffix(); 1641 } 1642 if ($next->value() eq "DOMString") { 1643 $self->assertTokenValue($self->getToken(), "DOMString", __LINE__); 1644 return "DOMString" . $self->parseTypeSuffix(); 1645 } 1646 if ($next->value() eq "sequence") { 1647 $self->assertTokenValue($self->getToken(), "sequence", __LINE__); 1648 $self->assertTokenValue($self->getToken(), "<", __LINE__); 1649 my $type = $self->parseType(); 1650 $self->assertTokenValue($self->getToken(), ">", __LINE__); 1651 return "sequence<" . $type . ">" . $self->parseNull(); 1652 } 1653 if ($next->value() eq "object") { 1654 $self->assertTokenValue($self->getToken(), "object", __LINE__); 1655 return "object" . $self->parseTypeSuffix(); 1656 } 1657 if ($next->value() eq "Date") { 1658 $self->assertTokenValue($self->getToken(), "Date", __LINE__); 1659 return "Date" . $self->parseTypeSuffix(); 1660 } 1661 if ($next->type() == IdentifierToken) { 1662 my $token = $self->getToken(); 1663 return $token->value() . $self->parseTypeSuffix(); 1664 } 1665 $self->assertUnexpectedToken($next->value(), __LINE__); 1666 } 1667 1668 sub parseConstType 1669 { 1670 my $self = shift; 1671 my $next = $self->nextToken(); 1672 if ($next->value() =~ /$nextNonAnyType_1/) { 1673 return $self->parsePrimitiveType() . $self->parseNull(); 1674 } 1675 if ($next->type() == IdentifierToken) { 1676 my $token = $self->getToken(); 1677 return $token->value() . $self->parseNull(); 1678 } 1679 $self->assertUnexpectedToken($next->value(), __LINE__); 1680 } 1681 1682 sub parsePrimitiveType 1683 { 1684 my $self = shift; 1685 my $next = $self->nextToken(); 1686 if ($next->value() =~ /$nextPrimitiveType_1/) { 1687 return $self->parseUnsignedIntegerType(); 1688 } 1689 if ($next->value() =~ /$nextPrimitiveType_2/) { 1690 return $self->parseUnrestrictedFloatType(); 1691 } 1692 if ($next->value() eq "boolean") { 1693 $self->assertTokenValue($self->getToken(), "boolean", __LINE__); 1694 return "boolean"; 1695 } 1696 if ($next->value() eq "byte") { 1697 $self->assertTokenValue($self->getToken(), "byte", __LINE__); 1698 return "byte"; 1699 } 1700 if ($next->value() eq "octet") { 1701 $self->assertTokenValue($self->getToken(), "octet", __LINE__); 1702 return "octet"; 1703 } 1704 $self->assertUnexpectedToken($next->value(), __LINE__); 1705 } 1706 1707 sub parseUnrestrictedFloatType 1708 { 1709 my $self = shift; 1710 my $next = $self->nextToken(); 1711 if ($next->value() eq "unrestricted") { 1712 $self->assertTokenValue($self->getToken(), "unrestricted", __LINE__); 1713 return "unrestricted" . $self->parseFloatType(); 1714 } 1715 if ($next->value() =~ /$nextUnrestrictedFloatType_1/) { 1716 return $self->parseFloatType(); 1717 } 1718 $self->assertUnexpectedToken($next->value(), __LINE__); 1719 } 1720 1721 sub parseFloatType 1722 { 1723 my $self = shift; 1724 my $next = $self->nextToken(); 1725 if ($next->value() eq "float") { 1726 $self->assertTokenValue($self->getToken(), "float", __LINE__); 1727 return "float"; 1728 } 1729 if ($next->value() eq "double") { 1730 $self->assertTokenValue($self->getToken(), "double", __LINE__); 1731 return "double"; 1732 } 1733 $self->assertUnexpectedToken($next->value(), __LINE__); 1734 } 1735 1736 sub parseUnsignedIntegerType 1737 { 1738 my $self = shift; 1739 my $next = $self->nextToken(); 1740 if ($next->value() eq "unsigned") { 1741 $self->assertTokenValue($self->getToken(), "unsigned", __LINE__); 1742 return "unsigned " . $self->parseIntegerType(); 1743 } 1744 if ($next->value() =~ /$nextUnsignedIntegerType_1/) { 1745 return $self->parseIntegerType(); 1746 } 1747 $self->assertUnexpectedToken($next->value(), __LINE__); 1748 } 1749 1750 sub parseIntegerType 1751 { 1752 my $self = shift; 1753 my $next = $self->nextToken(); 1754 if ($next->value() eq "short") { 1755 $self->assertTokenValue($self->getToken(), "short", __LINE__); 1756 return "short"; 1757 } 1758 if ($next->value() eq "int") { 1759 $self->assertTokenValue($self->getToken(), "int", __LINE__); 1760 return "int"; 1761 } 1762 if ($next->value() eq "long") { 1763 $self->assertTokenValue($self->getToken(), "long", __LINE__); 1764 if ($self->parseOptionalLong()) { 1765 return "long long"; 1766 } 1767 return "long"; 1768 } 1769 $self->assertUnexpectedToken($next->value(), __LINE__); 1770 } 1771 1772 sub parseOptionalLong 1773 { 1774 my $self = shift; 1775 my $next = $self->nextToken(); 1776 if ($next->value() eq "long") { 1777 $self->assertTokenValue($self->getToken(), "long", __LINE__); 1778 return 1; 1779 } 1780 return 0; 1781 } 1782 1783 sub parseTypeSuffix 1784 { 1785 my $self = shift; 1786 my $next = $self->nextToken(); 1787 if ($next->value() eq "[") { 1788 $self->assertTokenValue($self->getToken(), "[", __LINE__); 1789 $self->assertTokenValue($self->getToken(), "]", __LINE__); 1790 return "[]" . $self->parseTypeSuffix(); 1791 } 1792 if ($next->value() eq "?") { 1793 $self->assertTokenValue($self->getToken(), "?", __LINE__); 1794 return "?" . $self->parseTypeSuffixStartingWithArray(); 1795 } 1796 return ""; 1797 } 1798 1799 sub parseTypeSuffixStartingWithArray 1800 { 1801 my $self = shift; 1802 my $next = $self->nextToken(); 1803 if ($next->value() eq "[") { 1804 $self->assertTokenValue($self->getToken(), "[", __LINE__); 1805 $self->assertTokenValue($self->getToken(), "]", __LINE__); 1806 return "[]" . $self->parseTypeSuffix(); 1807 } 1808 return ""; 1809 } 1810 1811 sub parseNull 1812 { 1813 my $self = shift; 1814 my $next = $self->nextToken(); 1815 if ($next->value() eq "?") { 1816 $self->assertTokenValue($self->getToken(), "?", __LINE__); 1817 return "?"; 1818 } 1819 return ""; 1820 } 1821 1822 sub parseReturnType 1823 { 1824 my $self = shift; 1825 my $next = $self->nextToken(); 1826 if ($next->value() eq "void") { 1827 $self->assertTokenValue($self->getToken(), "void", __LINE__); 1828 return "void"; 1829 } 1830 if ($next->type() == IdentifierToken || $next->value() =~ /$nextExceptionField_1/) { 1831 return $self->parseType(); 1832 } 1833 $self->assertUnexpectedToken($next->value(), __LINE__); 1834 } 1835 1836 sub parseGet 1837 { 1838 my $self = shift; 1839 my $next = $self->nextToken(); 1840 if ($next->value() eq "inherits") { 1841 my $attr = {}; 1842 $self->parseInheritsGetter(); 1843 $attr->{"inherits"} = 1; 1844 $attr->{"getraises"} = []; 1845 $attr->{"setraises"} = $self->parseSetRaises(); 1846 return $attr; 1847 } 1848 if ($next->value() =~ /$nextGet_1/) { 1849 return $self->parseSetGetRaises(); 1850 } 1851 } 1852 1853 sub parseInheritsGetter 1854 { 1855 my $self = shift; 1856 my $next = $self->nextToken(); 1857 if ($next->value() eq "inherits") { 1858 $self->assertTokenValue($self->getToken(), "inherits", __LINE__); 1859 $self->assertTokenValue($self->getToken(), "getter", __LINE__); 1860 return; 1861 } 1862 $self->assertUnexpectedToken($next->value(), __LINE__); 1863 } 1864 1865 sub parseSetGetRaises 1866 { 1867 my $self = shift; 1868 my $attr = {}; 1869 $attr->{"inherits"} = 0; 1870 1871 my $next = $self->nextToken(); 1872 if ($next->value() eq "setter") { 1873 $attr->{"setraises"} = $self->parseSetRaises(); 1874 $attr->{"getraises"} = $self->parseGetRaises2(); 1875 return $attr; 1876 } 1877 if ($next->value() eq "getter") { 1878 $attr->{"setraises"} = []; 1879 $attr->{"getraises"} = $self->parseGetRaises(); 1880 return $attr; 1881 } 1882 if ($next->value() =~ /$nextSetGetRaises2_1/) { 1883 return $self->parseSetGetRaises2(); 1884 } 1885 $self->assertUnexpectedToken($next->value(), __LINE__); 1886 } 1887 1888 sub parseGetRaises 1889 { 1890 my $self = shift; 1891 my $next = $self->nextToken(); 1892 1893 if ($next->value() eq "getter") { 1894 $self->assertTokenValue($self->getToken(), "getter", __LINE__); 1895 $self->assertTokenValue($self->getToken(), "raises", __LINE__); 1896 return $self->parseExceptionList(); 1897 } 1898 $self->assertUnexpectedToken($next->value(), __LINE__); 1899 } 1900 1901 sub parseGetRaises2 1902 { 1903 my $self = shift; 1904 my $next = $self->nextToken(); 1905 1906 if ($next->value() eq ",") { 1907 $self->assertTokenValue($self->getToken(), ",", __LINE__); 1908 $self->assertTokenValue($self->getToken(), "getter", __LINE__); 1909 $self->assertTokenValue($self->getToken(), "raises", __LINE__); 1910 return $self->parseExceptionList(); 1911 } 1912 return []; 1913 } 1914 1915 sub parseSetRaises 1916 { 1917 my $self = shift; 1918 my $next = $self->nextToken(); 1919 if ($next->value() eq "setter") { 1920 $self->assertTokenValue($self->getToken(), "setter", __LINE__); 1921 $self->assertTokenValue($self->getToken(), "raises", __LINE__); 1922 return $self->parseExceptionList(); 1923 } 1924 $self->assertUnexpectedToken($next->value(), __LINE__); 1925 } 1926 1927 sub parseSetGetRaises2 1928 { 1929 my $self = shift; 1930 my $next = $self->nextToken(); 1931 if ($next->value() =~ /$nextSetGetRaises2_1/) { 1932 my $attr = {}; 1933 $attr->{"inherits"} = 0; 1934 $attr->{"getraises"} = $self->parseGetRaises3(); 1935 $attr->{"setraises"} = $self->parseSetRaises3(); 1936 return $attr; 1937 } 1938 $self->assertUnexpectedToken($next->value(), __LINE__); 1939 } 1940 1941 sub parseGetRaises3 1942 { 1943 my $self = shift; 1944 my $next = $self->nextToken(); 1945 if ($next->value() eq "getraises") { 1946 $self->assertTokenValue($self->getToken(), "getraises", __LINE__); 1947 return $self->parseExceptionList(); 1948 } 1949 return []; 1950 } 1951 1952 sub parseSetRaises3 1953 { 1954 my $self = shift; 1955 my $next = $self->nextToken(); 1956 if ($next->value() eq "setraises") { 1957 $self->assertTokenValue($self->getToken(), "setraises", __LINE__); 1958 return $self->parseExceptionList(); 1959 } 1960 return []; 1961 } 1962 1963 sub parseExceptionList 1964 { 1965 my $self = shift; 1966 my $next = $self->nextToken(); 1967 if ($next->value() eq "(") { 1968 my @exceptions = (); 1969 $self->assertTokenValue($self->getToken(), "(", __LINE__); 1970 my $token = $self->getToken(); 1971 $self->assertTokenType($token, IdentifierToken); 1972 push(@exceptions, $token->value()); 1973 push(@exceptions, @{$self->parseIdentifiers()}); 1974 $self->assertTokenValue($self->getToken(), ")", __LINE__); 1975 return \@exceptions; 1976 } 1977 $self->assertUnexpectedToken($next->value(), __LINE__); 1978 } 1979 1980 sub parseRaises 1981 { 1982 my $self = shift; 1983 my $next = $self->nextToken(); 1984 if ($next->value() eq "raises") { 1985 $self->assertTokenValue($self->getToken(), "raises", __LINE__); 1986 return $self->parseExceptionList(); 1987 } 1988 return []; 1989 } 1990 1991 sub parseDefinitionOld 1992 { 1993 my $self = shift; 1994 my $next = $self->nextToken(); 1995 if ($next->value() =~ /$nextDefinition_1/) { 1996 return $self->parseCallbackOrInterfaceOld(); 1997 } 1998 if ($next->value() eq "partial") { 1999 return $self->parsePartial({}); 2000 } 2001 if ($next->value() eq "dictionary") { 2002 return $self->parseDictionaryOld(); 2003 } 2004 if ($next->value() eq "exception") { 2005 return $self->parseExceptionOld(); 2006 } 2007 if ($next->value() eq "enum") { 2008 return $self->parseEnumOld(); 2009 } 2010 if ($next->value() eq "typedef") { 2011 return $self->parseTypedef({}); 2012 } 2013 if ($next->value() eq "module") { 2014 return $self->parseModule(); 2015 } 2016 if ($next->type() == IdentifierToken) { 2017 return $self->parseImplementsStatement({}); 2018 } 2019 $self->assertUnexpectedToken($next->value(), __LINE__); 2020 } 2021 2022 sub parseModule 2023 { 2024 my $self = shift; 2025 my $next = $self->nextToken(); 2026 if ($next->value() eq "module") { 2027 my $document = new idlDocument(); 2028 $self->assertTokenValue($self->getToken(), "module", __LINE__); 2029 my $extendedAttributeList = $self->parseExtendedAttributeListAllowEmpty(); 2030 my $token = $self->getToken(); 2031 $self->assertTokenType($token, IdentifierToken); 2032 $self->assertTokenValue($self->getToken(), "{", __LINE__); 2033 $document->module($token->value()); 2034 my $definitions = $self->parseDefinitions(); 2035 push(@{$document->classes}, @{$definitions}); 2036 $self->assertTokenValue($self->getToken(), "}", __LINE__); 2037 $self->parseOptionalSemicolon(); 2038 return $document; 2039 } 2040 $self->assertUnexpectedToken($next->value(), __LINE__); 2041 } 2042 2043 sub parseCallbackOrInterfaceOld 2044 { 2045 my $self = shift; 2046 my $next = $self->nextToken(); 2047 if ($next->value() eq "callback") { 2048 $self->assertTokenValue($self->getToken(), "callback", __LINE__); 2049 return $self->parseCallbackRestOrInterface({}); 2050 } 2051 if ($next->value() eq "interface") { 2052 return $self->parseInterfaceOld(); 2053 } 2054 $self->assertUnexpectedToken($next->value(), __LINE__); 2055 } 2056 2057 sub parseInterfaceOld 2058 { 2059 my $self = shift; 2060 my $next = $self->nextToken(); 2061 if ($next->value() eq "interface") { 2062 my $dataNode = new domClass(); 2063 $self->assertTokenValue($self->getToken(), "interface", __LINE__); 2064 my $extendedAttributeList = $self->parseExtendedAttributeListAllowEmpty(); 2065 my $token = $self->getToken(); 2066 $self->assertTokenType($token, IdentifierToken); 2067 $dataNode->name($token->value()); 2068 $dataNode->isException(0); 2069 push(@{$dataNode->parents}, @{$self->parseInheritance()}); 2070 $self->assertTokenValue($self->getToken(), "{", __LINE__); 2071 my $interfaceMembers = $self->parseInterfaceMembers(); 2072 $self->assertTokenValue($self->getToken(), "}", __LINE__); 2073 $self->assertTokenValue($self->getToken(), ";", __LINE__); 2074 applyMemberList($dataNode, $interfaceMembers); 2075 applyExtendedAttributeList($dataNode, $extendedAttributeList); 2076 return $dataNode; 2077 } 2078 $self->assertUnexpectedToken($next->value(), __LINE__); 2079 } 2080 2081 sub parseInterfaceMemberOld 2082 { 2083 my $self = shift; 2084 my $next = $self->nextToken(); 2085 if ($next->value() eq "const") { 2086 return $self->parseConst({}); 2087 } 2088 if ($next->type() == IdentifierToken || $next->value() =~ /$nextInterfaceMemberOld_1/) { 2089 return $self->parseAttributeOrOperationOrIteratorOld(); 2090 } 2091 $self->assertUnexpectedToken($next->value(), __LINE__); 2092 } 2093 2094 sub parseDictionaryOld 2095 { 2096 my $self = shift; 2097 my $next = $self->nextToken(); 2098 if ($next->value() eq "dictionary") { 2099 $self->assertTokenValue($self->getToken(), "dictionary", __LINE__); 2100 $self->parseExtendedAttributeListAllowEmpty(); 2101 $self->assertTokenType($self->getToken(), IdentifierToken); 2102 $self->parseInheritance(); 2103 $self->assertTokenValue($self->getToken(), "{", __LINE__); 2104 $self->parseDictionaryMembers(); 2105 $self->assertTokenValue($self->getToken(), "}", __LINE__); 2106 $self->assertTokenValue($self->getToken(), ";", __LINE__); 2107 return; 2108 } 2109 $self->assertUnexpectedToken($next->value(), __LINE__); 2110 } 2111 2112 sub parseDictionaryMemberOld 2113 { 2114 my $self = shift; 2115 my $next = $self->nextToken(); 2116 if ($next->type() == IdentifierToken || $next->value() =~ /$nextExceptionField_1/) { 2117 $self->parseType(); 2118 $self->parseExtendedAttributeListAllowEmpty(); 2119 $self->assertTokenType($self->getToken(), IdentifierToken); 2120 $self->parseDefault(); 2121 $self->assertTokenValue($self->getToken(), ";", __LINE__); 2122 return; 2123 } 2124 $self->assertUnexpectedToken($next->value(), __LINE__); 2125 } 2126 2127 sub parseExceptionOld 2128 { 2129 my $self = shift; 2130 my $next = $self->nextToken(); 2131 if ($next->value() eq "exception") { 2132 my $dataNode = new domClass(); 2133 $self->assertTokenValue($self->getToken(), "exception", __LINE__); 2134 my $extendedAttributeList = $self->parseExtendedAttributeListAllowEmpty(); 2135 my $token = $self->getToken(); 2136 $self->assertTokenType($token, IdentifierToken); 2137 $dataNode->name($token->value()); 2138 $dataNode->isException(1); 2139 push(@{$dataNode->parents}, @{$self->parseInheritance()}); 2140 $self->assertTokenValue($self->getToken(), "{", __LINE__); 2141 my $exceptionMembers = $self->parseInterfaceMembers(); 2142 #$self->parseExceptionMembers(); 2143 $self->assertTokenValue($self->getToken(), "}", __LINE__); 2144 $self->assertTokenValue($self->getToken(), ";", __LINE__); 2145 applyMemberList($dataNode, $exceptionMembers); 2146 applyExtendedAttributeList($dataNode, $extendedAttributeList); 2147 return $dataNode; 2148 } 2149 $self->assertUnexpectedToken($next->value(), __LINE__); 2150 } 2151 2152 sub parseEnumOld 2153 { 2154 my $self = shift; 2155 my $next = $self->nextToken(); 2156 if ($next->value() eq "enum") { 2157 $self->assertTokenValue($self->getToken(), "enum", __LINE__); 2158 $self->parseExtendedAttributeListAllowEmpty(); 2159 $self->assertTokenType($self->getToken(), IdentifierToken); 2160 $self->assertTokenValue($self->getToken(), "{", __LINE__); 2161 $self->parseEnumValueList(); 2162 $self->assertTokenValue($self->getToken(), "}", __LINE__); 2163 $self->assertTokenValue($self->getToken(), ";", __LINE__); 2164 return; 2165 } 2166 $self->assertUnexpectedToken($next->value(), __LINE__); 2167 } 2168 2169 sub parseAttributeOrOperationOrIteratorOld 2170 { 2171 my $self = shift; 2172 my $next = $self->nextToken(); 2173 if ($next->value() eq "serializer") { 2174 return $self->parseSerializer({}); 2175 } 2176 if ($next->value() =~ /$nextAttributeOrOperationOrIterator_1/) { 2177 my $qualifier = $self->parseQualifier(); 2178 my $dataNode = $self->parseAttributeOrOperationRestOld(); 2179 if (defined ($dataNode) && $qualifier eq "static") { 2180 $dataNode->isStatic(1); 2181 } 2182 return $dataNode; 2183 } 2184 if ($next->value() =~ /$nextAttributeOld_1/) { 2185 return $self->parseAttributeOld(); 2186 } 2187 if ($next->type() == IdentifierToken || $next->value() =~ /$nextAttributeOrOperationOrIterator_2/) { 2188 return $self->parseOperationOrIterator({}); 2189 } 2190 $self->assertUnexpectedToken($next->value(), __LINE__); 2191 } 2192 2193 sub parseAttributeOrOperationRestOld 2194 { 2195 my $self = shift; 2196 my $next = $self->nextToken(); 2197 if ($next->value() =~ /$nextAttributeRest_1/) { 2198 return $self->parseAttributeRestOld(); 2199 } 2200 if ($next->value() eq ";") { 2201 $self->assertTokenValue($self->getToken(), ";", __LINE__); 2202 return; 2203 } 2204 if ($next->type() == IdentifierToken || $next->value() =~ /$nextAttributeOrOperationRest_1/) { 2205 my $returnType = $self->parseReturnType(); 2206 my $dataNode = $self->parseOperationRest({}); 2207 if (defined ($dataNode)) { 2208 $dataNode->signature->type($returnType); 2209 } 2210 return $dataNode; 2211 } 2212 $self->assertUnexpectedToken($next->value(), __LINE__); 2213 } 2214 2215 sub parseAttributeOld 2216 { 2217 my $self = shift; 2218 my $next = $self->nextToken(); 2219 if ($next->value() =~ /$nextAttributeOld_1/) { 2220 $self->parseInherit(); 2221 return $self->parseAttributeRestOld(); 2222 } 2223 $self->assertUnexpectedToken($next->value(), __LINE__); 2224 } 2225 2226 sub parseAttributeRestOld 2227 { 2228 my $self = shift; 2229 my $next = $self->nextToken(); 2230 if ($next->value() =~ /$nextAttributeRest_1/) { 2231 my $newDataNode = new domAttribute(); 2232 if ($self->parseReadOnly()) { 2233 $newDataNode->type("readonly attribute"); 2234 } else { 2235 $newDataNode->type("attribute"); 2236 } 2237 $self->assertTokenValue($self->getToken(), "attribute", __LINE__); 2238 my $extendedAttributeList = $self->parseExtendedAttributeListAllowEmpty(); 2239 $newDataNode->signature(new domSignature()); 2240 $newDataNode->signature->type($self->parseType()); 2241 $newDataNode->signature->extendedAttributes($extendedAttributeList); 2242 my $token = $self->getToken(); 2243 $self->assertTokenType($token, IdentifierToken); 2244 $newDataNode->signature->name($token->value()); 2245 my $getRef = $self->parseGet(); 2246 if (defined $getRef) { 2247 push(@{$newDataNode->getterExceptions}, @{$getRef->{"getraises"}}); 2248 push(@{$newDataNode->setterExceptions}, @{$getRef->{"setraises"}}); 2249 } 2250 $self->assertTokenValue($self->getToken(), ";", __LINE__); 2251 return $newDataNode; 2252 } 2253 $self->assertUnexpectedToken($next->value(), __LINE__); 2254 } 2255 2256 sub parseIn 2257 { 2258 my $self = shift; 2259 my $next = $self->nextToken(); 2260 if ($next->value() eq "in") { 2261 $self->assertTokenValue($self->getToken(), "in", __LINE__); 2262 return "in"; 2263 } 2264 return ""; 2265 } 2266 2267 sub parseOptionalSemicolon 2268 { 2269 my $self = shift; 2270 my $next = $self->nextToken(); 2271 if ($next->value() eq ";") { 2272 $self->assertTokenValue($self->getToken(), ";", __LINE__); 2273 } 2274 } 2275 2276 sub applyMemberList 2277 { 121 2278 my $dataNode = shift; 122 123 print " |- Trying to parse module...\n" unless $beQuiet; 124 125 my $data = join("", @temporaryContent); 126 $data =~ /$IDLStructure::moduleSelector/; 127 128 my $moduleName = (defined($1) ? $1 : die("Parsing error!\nSource:\n$data\n)")); 129 $dataNode->module($moduleName); 130 131 print " |----> Module; NAME \"$moduleName\"\n |-\n |\n" unless $beQuiet; 132 } 133 134 sub dumpExtendedAttributes 135 { 136 my $padStr = shift; 137 my $attrs = shift; 138 139 if (!%{$attrs}) { 140 return ""; 141 } 142 143 my @temp; 144 while ((my $name, my $value) = each(%{$attrs})) { 145 push(@temp, "$name=$value"); 146 } 147 148 return $padStr . "[" . join(", ", @temp) . "]"; 149 } 150 151 sub parseExtendedAttributes 152 { 153 my $str = shift; 154 $str =~ s/\[\s*(.*)\s*\]/$1/g; 155 156 my %attrs = (); 157 158 while ($str !~ /^\s*$/) { 159 # Parse name 160 if ($str !~ /^\s*([\w\d]+)/) { 161 die("Invalid extended attribute: '$str'\n"); 162 } 163 my $name = $1; 164 $str =~ s/^\s*([\w\d]+)//; 165 166 if ($str =~ /^\s*=/) { 167 $str =~ s/^\s*=//; 168 if ($name eq "NamedConstructor") { 169 # Parse '=' name '(' arguments ')' ','? 170 my $constructorName; 171 if ($str =~ /^\s*([\w\d]+)/) { 172 $constructorName = $1; 173 $str =~ s/^\s*([\w\d]+)//; 174 } else { 175 die("Invalid extended attribute: '$str'\n"); 176 } 177 if ($str =~ /^\s*\(/) { 178 # Parse '(' arguments ')' ','? 179 $str =~ s/^\s*\(//; 180 if ($str =~ /^([^)]*)\),?/) { 181 my $signature = $1; 182 $signature =~ s/^(.*?)\s*$/$1/; 183 $attrs{$name} = {"ConstructorName" => $constructorName, "Signature" => $signature}; 184 $str =~ s/^([^)]*)\),?//; 185 } else { 186 die("Invalid extended attribute: '$str'\n"); 187 } 188 } elsif ($str =~ /^\s*,?/) { 189 $attrs{$name} = {"ConstructorName" => $constructorName, "Signature" => ""}; 190 $str =~ s/^\s*,?//; 191 } else { 192 die("Invalid extended attribute: '$str'\n"); 193 } 194 } else { 195 # Parse '=' value ','? 196 if ($str =~ /^\s*([^,]*),?/) { 197 $attrs{$name} = $1; 198 $attrs{$name} =~ s/^(.*?)\s*$/$1/; 199 $str =~ s/^\s*([^,]*),?//; 200 } else { 201 die("Invalid extended attribute: '$str'\n"); 202 } 203 } 204 } elsif ($str =~ /^\s*\(/) { 205 # Parse '(' arguments ')' ','? 206 $str =~ s/^\s*\(//; 207 if ($str =~ /^([^)]*)\),?/) { 208 $attrs{$name} = $1; 209 $attrs{$name} =~ s/^(.*?)\s*$/$1/; 210 $str =~ s/^([^)]*)\),?//; 211 } else { 212 die("Invalid extended attribute: '$str'\n"); 213 } 214 } elsif ($str =~ /^\s*,?/) { 215 # Parse '' | ',' 216 if ($name eq "Constructor") { 217 $attrs{$name} = ""; 218 } else { 219 $attrs{$name} = "VALUE_IS_MISSING"; 220 } 221 $str =~ s/^\s*,?//; 222 } else { 223 die("Invalid extended attribute: '$str'\n"); 224 } 225 } 226 227 return \%attrs; 228 } 229 230 sub parseParameters 231 { 232 my $newDataNode = shift; 233 my $methodSignature = shift; 234 235 # Split arguments at commas but only if the comma 236 # is not within attribute brackets, expressed here 237 # as being followed by a ']' without a preceding '['. 238 # Note that this assumes that attributes don't nest. 239 my @params = split(/,(?![^[]*\])/, $methodSignature); 240 foreach (@params) { 241 my $line = $_; 242 243 $line =~ /$IDLStructure::interfaceParameterSelector/; 244 my $paramDirection = $1; 245 my $paramExtendedAttributes = (defined($2) ? $2 : " "); chop($paramExtendedAttributes); 246 my $paramType = (defined($3) ? $3 : die("Parsing error!\nSource:\n$line\n)")); 247 my $paramTypeSuffix = defined($4) ? $4 : ""; 248 my $paramName = (defined($5) ? $5 : die("Parsing error!\nSource:\n$line\n)")); 249 250 my $isNullable = $paramTypeSuffix eq "?"; 251 252 my $paramDataNode = new domSignature(); 253 $paramDataNode->direction($paramDirection); 254 $paramDataNode->name($paramName); 255 $paramDataNode->type($paramType); 256 $paramDataNode->extendedAttributes(parseExtendedAttributes($paramExtendedAttributes)); 257 $paramDataNode->isNullable($isNullable); 258 259 my $arrayRef = $newDataNode->parameters; 260 push(@$arrayRef, $paramDataNode); 261 262 print " | |> Param; TYPE \"$paramType\" NAME \"$paramName\"" . 263 dumpExtendedAttributes("\n | ", $paramDataNode->extendedAttributes) . "\n" unless $beQuiet; 264 } 265 } 266 267 sub ParseInterface 268 { 269 my $object = shift; 2279 my $members = shift; 2280 2281 for my $item (@{$members}) { 2282 if (ref($item) eq "domAttribute") { 2283 push(@{$dataNode->attributes}, $item); 2284 next; 2285 } 2286 if (ref($item) eq "domConstant") { 2287 push(@{$dataNode->constants}, $item); 2288 next; 2289 } 2290 if (ref($item) eq "domFunction") { 2291 push(@{$dataNode->functions}, $item); 2292 next; 2293 } 2294 } 2295 } 2296 2297 sub applyExtendedAttributeList 2298 { 270 2299 my $dataNode = shift; 271 my $sectionName = shift; 272 273 my $data = join("", @temporaryContent); 274 275 # Look for end-of-interface mark 276 $data =~ /};/g; 277 $data = substr($data, index($data, $sectionName), pos($data) - length($data)); 278 279 $data =~ s/[\n\r]/ /g; 280 281 # Beginning of the regexp parsing magic 282 if ($sectionName eq "interface" || $sectionName eq "exception") { 283 print " |- Trying to parse interface...\n" unless $beQuiet; 284 285 my $interfaceName = ""; 286 my $interfaceData = ""; 287 288 # Match identifier of the interface, and enclosed data... 289 $data =~ /$IDLStructure::interfaceSelector/; 290 291 my $isException = (defined($1) ? ($1 eq 'exception') : die("Parsing error!\nSource:\n$data\n)")); 292 my $interfaceExtendedAttributes = (defined($2) ? $2 : " "); chop($interfaceExtendedAttributes); 293 $interfaceName = (defined($3) ? $3 : die("Parsing error!\nSource:\n$data\n)")); 294 my $interfaceBase = (defined($4) ? $4 : ""); 295 $interfaceData = (defined($5) ? $5 : die("Parsing error!\nSource:\n$data\n)")); 296 297 # Fill in known parts of the domClass datastructure now... 298 $dataNode->isException($isException); 299 $dataNode->name($interfaceName); 300 my $extendedAttributes = parseExtendedAttributes($interfaceExtendedAttributes); 301 if (defined $extendedAttributes->{"Constructor"}) { 302 my $newDataNode = new domFunction(); 303 $newDataNode->signature(new domSignature()); 304 $newDataNode->signature->name("Constructor"); 305 $newDataNode->signature->extendedAttributes($extendedAttributes); 306 parseParameters($newDataNode, $extendedAttributes->{"Constructor"}); 307 $extendedAttributes->{"Constructor"} = "VALUE_IS_MISSING"; 308 $dataNode->constructor($newDataNode); 309 } elsif (defined $extendedAttributes->{"NamedConstructor"}) { 310 my $newDataNode = new domFunction(); 311 $newDataNode->signature(new domSignature()); 312 $newDataNode->signature->name("NamedConstructor"); 313 $newDataNode->signature->extendedAttributes($extendedAttributes); 314 parseParameters($newDataNode, $extendedAttributes->{"NamedConstructor"}->{"Signature"}); 315 $extendedAttributes->{"NamedConstructor"} = $extendedAttributes->{"NamedConstructor"}{"ConstructorName"}; 316 $dataNode->constructor($newDataNode); 317 } 318 $dataNode->extendedAttributes($extendedAttributes); 319 320 # Inheritance detection 321 my @interfaceParents = split(/,/, $interfaceBase); 322 foreach(@interfaceParents) { 323 my $line = $_; 324 $line =~ s/\s*//g; 325 326 my $arrayRef = $dataNode->parents; 327 push(@$arrayRef, $line); 328 } 329 330 return if $parentsOnly; 331 332 $interfaceData =~ s/[\n\r]/ /g; 333 my @interfaceMethods = split(/;/, $interfaceData); 334 335 foreach my $line (@interfaceMethods) { 336 next if $line =~ /^\s*$/; 337 if ($line =~ /\Wattribute\W/) { 338 $line =~ /$IDLStructure::interfaceAttributeSelector/; 339 340 my $isStatic = defined($1); 341 my $attributeType = (defined($2) ? $2 : die("Parsing error!\nSource:\n$line\n)")); 342 my $attributeExtendedAttributes = (defined($3) ? $3 : " "); chop($attributeExtendedAttributes); 343 344 my $attributeDataType = (defined($4) ? $4 : die("Parsing error!\nSource:\n$line\n)")); 345 my $attributeDataName = (defined($5) ? $5 : die("Parsing error!\nSource:\n$line\n)")); 346 347 ('' =~ /^/); # Reset variables needed for regexp matching 348 349 $line =~ /$IDLStructure::getterRaisesSelector/; 350 my $getterException = (defined($1) ? $1 : ""); 351 352 $line =~ /$IDLStructure::setterRaisesSelector/; 353 my $setterException = (defined($1) ? $1 : ""); 354 355 my $newDataNode = new domAttribute(); 356 $newDataNode->type($attributeType); 357 $newDataNode->isStatic($isStatic); 358 $newDataNode->signature(new domSignature()); 359 360 $newDataNode->signature->name($attributeDataName); 361 $newDataNode->signature->type($attributeDataType); 362 $newDataNode->signature->extendedAttributes(parseExtendedAttributes($attributeExtendedAttributes)); 363 364 my $arrayRef = $dataNode->attributes; 365 push(@$arrayRef, $newDataNode); 366 367 print " | |> Attribute; STATIC? \"$isStatic\" TYPE \"$attributeType\" DATA NAME \"$attributeDataName\" DATA TYPE \"$attributeDataType\" GET EXCEPTION? \"$getterException\" SET EXCEPTION? \"$setterException\"" . 368 dumpExtendedAttributes("\n | ", $newDataNode->signature->extendedAttributes) . "\n" unless $beQuiet; 369 370 $getterException =~ s/\s+//g; 371 $setterException =~ s/\s+//g; 372 @{$newDataNode->getterExceptions} = split(/,/, $getterException); 373 @{$newDataNode->setterExceptions} = split(/,/, $setterException); 374 } elsif ($line !~ /^\s*($IDLStructure::extendedAttributeSyntax )?const\s+/) { 375 $line =~ /$IDLStructure::interfaceMethodSelector/ or die "Parsing error!\nSource:\n$line\n)"; 376 377 my $methodExtendedAttributes = (defined($1) ? $1 : " "); chop($methodExtendedAttributes); 378 my $isStatic = defined($2); 379 my $methodType = (defined($3) ? $3 : die("Parsing error!\nSource:\n$line\n)")); 380 my $methodName = (defined($4) ? $4 : die("Parsing error!\nSource:\n$line\n)")); 381 my $methodSignature = (defined($5) ? $5 : die("Parsing error!\nSource:\n$line\n)")); 382 383 ('' =~ /^/); # Reset variables needed for regexp matching 384 385 $line =~ /$IDLStructure::raisesSelector/; 386 my $methodException = (defined($1) ? $1 : ""); 387 388 my $newDataNode = new domFunction(); 389 390 $newDataNode->isStatic($isStatic); 391 $newDataNode->signature(new domSignature()); 392 $newDataNode->signature->name($methodName); 393 $newDataNode->signature->type($methodType); 394 $newDataNode->signature->extendedAttributes(parseExtendedAttributes($methodExtendedAttributes)); 395 396 print " | |- Method; STATIC? \"$isStatic\" TYPE \"$methodType\" NAME \"$methodName\" EXCEPTION? \"$methodException\"" . 397 dumpExtendedAttributes("\n | ", $newDataNode->signature->extendedAttributes) . "\n" unless $beQuiet; 398 399 $methodException =~ s/\s+//g; 400 @{$newDataNode->raisesExceptions} = split(/,/, $methodException); 401 402 parseParameters($newDataNode, $methodSignature); 403 404 my $arrayRef = $dataNode->functions; 405 push(@$arrayRef, $newDataNode); 406 } else { 407 $line =~ /$IDLStructure::constantSelector/; 408 my $constExtendedAttributes = (defined($1) ? $1 : " "); chop($constExtendedAttributes); 409 my $constType = (defined($2) ? $2 : die("Parsing error!\nSource:\n$line\n)")); 410 my $constName = (defined($3) ? $3 : die("Parsing error!\nSource:\n$line\n)")); 411 my $constValue = (defined($4) ? $4 : die("Parsing error!\nSource:\n$line\n)")); 412 413 my $newDataNode = new domConstant(); 414 $newDataNode->name($constName); 415 $newDataNode->type($constType); 416 $newDataNode->value($constValue); 417 $newDataNode->extendedAttributes(parseExtendedAttributes($constExtendedAttributes)); 418 419 my $arrayRef = $dataNode->constants; 420 push(@$arrayRef, $newDataNode); 421 422 print " | |> Constant; TYPE \"$constType\" NAME \"$constName\" VALUE \"$constValue\"\n" unless $beQuiet; 423 } 424 } 425 426 print " |----> Interface; NAME \"$interfaceName\"" . 427 dumpExtendedAttributes("\n | ", $dataNode->extendedAttributes) . "\n |-\n |\n" unless $beQuiet; 428 } 429 } 430 431 # Internal helper 432 sub DetermineParseMode 433 { 434 my $object = shift; 435 my $line = shift; 436 437 my $mode = MODE_UNDEF; 438 if ($_ =~ /module/) { 439 $mode = MODE_MODULE; 440 } elsif ($_ =~ /interface/) { 441 $mode = MODE_INTERFACE; 442 } elsif ($_ =~ /exception/) { 443 $mode = MODE_EXCEPTION; 444 } 445 446 return $mode; 447 } 448 449 # Internal helper 450 sub ProcessSection 451 { 452 my $object = shift; 453 454 if ($parseMode eq MODE_MODULE) { 455 die ("Two modules in one file! Fatal error!\n") if ($document ne 0); 456 $document = new idlDocument(); 457 $object->ParseModule($document); 458 } elsif ($parseMode eq MODE_INTERFACE || $parseMode eq MODE_EXCEPTION) { 459 my $node = new domClass(); 460 my $sectionName = $parseMode eq MODE_INTERFACE ? "interface" : "exception"; 461 $object->ParseInterface($node, $sectionName); 462 463 die ("No module specified! Fatal Error!\n") if ($document eq 0); 464 my $arrayRef = $document->classes; 465 push(@$arrayRef, $node); 466 } 467 468 @temporaryContent = ""; 2300 my $extendedAttributeList = shift; 2301 2302 if (defined $extendedAttributeList->{"Constructor"}) { 2303 my $newDataNode = new domFunction(); 2304 $newDataNode->signature(new domSignature()); 2305 $newDataNode->signature->name("Constructor"); 2306 $newDataNode->signature->extendedAttributes($extendedAttributeList); 2307 push(@{$newDataNode->parameters}, @{$extendedAttributeList->{"Constructor"}}); 2308 $extendedAttributeList->{"Constructor"} = "VALUE_IS_MISSING"; 2309 $dataNode->constructor($newDataNode); 2310 } elsif (defined $extendedAttributeList->{"NamedConstructor"}) { 2311 my $newDataNode = new domFunction(); 2312 $newDataNode->signature(new domSignature()); 2313 $newDataNode->signature->name("NamedConstructor"); 2314 $newDataNode->signature->extendedAttributes($extendedAttributeList); 2315 my %attributes = %{$extendedAttributeList->{"NamedConstructor"}}; 2316 my @attributeKeys = keys (%attributes); 2317 my $constructorName = $attributeKeys[0]; 2318 push(@{$newDataNode->parameters}, @{$attributes{$constructorName}}); 2319 $extendedAttributeList->{"NamedConstructor"} = $constructorName; 2320 $dataNode->constructor($newDataNode); 2321 } 2322 $dataNode->extendedAttributes($extendedAttributeList); 469 2323 } 470 2324 471 2325 1; 2326 -
trunk/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.cpp
r128248 r129723 154 154 } 155 155 156 long long WebDOMTestObj::Attr() const157 { 158 if (!impl()) 159 return 0; 160 161 return impl()-> attr();162 } 163 164 void WebDOMTestObj::set Attr(long long newAttr)165 { 166 if (!impl()) 167 return; 168 169 impl()->set Attr(newAttr);156 int WebDOMTestObj::longAttr() const 157 { 158 if (!impl()) 159 return 0; 160 161 return impl()->longAttr(); 162 } 163 164 void WebDOMTestObj::setLongAttr(int newLongAttr) 165 { 166 if (!impl()) 167 return; 168 169 impl()->setLongAttr(newLongAttr); 170 170 } 171 171 … … 426 426 return; 427 427 428 WebCore::ExceptionCode ec = 0; 429 impl()->setAttrWithGetterException(newAttrWithGetterException, ec); 430 webDOMRaiseError(static_cast<WebDOMExceptionCode>(ec)); 428 impl()->setAttrWithGetterException(newAttrWithGetterException); 431 429 } 432 430 … … 465 463 return; 466 464 467 WebCore::ExceptionCode ec = 0; 468 impl()->setStringAttrWithGetterException(newStringAttrWithGetterException, ec); 469 webDOMRaiseError(static_cast<WebDOMExceptionCode>(ec)); 465 impl()->setStringAttrWithGetterException(newStringAttrWithGetterException); 470 466 } 471 467 … … 678 674 } 679 675 680 void WebDOMTestObj::voidMethodWithArgs( long longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg)681 { 682 if (!impl()) 683 return; 684 685 impl()->voidMethodWithArgs( Arg, strArg, toWebCore(objArg));686 } 687 688 long long WebDOMTestObj::Method()689 { 690 if (!impl()) 691 return 0; 692 693 return impl()-> method();694 } 695 696 long long WebDOMTestObj::MethodWithArgs(long longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg)697 { 698 if (!impl()) 699 return 0; 700 701 return impl()-> methodWithArgs(Arg, strArg, toWebCore(objArg));676 void WebDOMTestObj::voidMethodWithArgs(int longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg) 677 { 678 if (!impl()) 679 return; 680 681 impl()->voidMethodWithArgs(longArg, strArg, toWebCore(objArg)); 682 } 683 684 int WebDOMTestObj::longMethod() 685 { 686 if (!impl()) 687 return 0; 688 689 return impl()->longMethod(); 690 } 691 692 int WebDOMTestObj::longMethodWithArgs(int longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg) 693 { 694 if (!impl()) 695 return 0; 696 697 return impl()->longMethodWithArgs(longArg, strArg, toWebCore(objArg)); 702 698 } 703 699 … … 710 706 } 711 707 712 WebDOMTestObj WebDOMTestObj::objMethodWithArgs( long longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg)708 WebDOMTestObj WebDOMTestObj::objMethodWithArgs(int longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg) 713 709 { 714 710 if (!impl()) 715 711 return WebDOMTestObj(); 716 712 717 return toWebKit(WTF::getPtr(impl()->objMethodWithArgs( Arg, strArg, toWebCore(objArg))));713 return toWebKit(WTF::getPtr(impl()->objMethodWithArgs(longArg, strArg, toWebCore(objArg)))); 718 714 } 719 715 … … 903 899 #endif 904 900 905 void WebDOMTestObj::convert1(const WebDOMa& )906 { 907 if (!impl()) 908 return; 909 910 impl()->convert1(toWebCore( ));911 } 912 913 void WebDOMTestObj::convert2(const WebDOMb& )914 { 915 if (!impl()) 916 return; 917 918 impl()->convert2(toWebCore( ));919 } 920 921 void WebDOMTestObj::convert4(const WebDOMd& )922 { 923 if (!impl()) 924 return; 925 926 impl()->convert4(toWebCore( ));927 } 928 929 void WebDOMTestObj::convert5(const WebDOMe& )930 { 931 if (!impl()) 932 return; 933 934 impl()->convert5(toWebCore( ));901 void WebDOMTestObj::convert1(const WebDOMa& value) 902 { 903 if (!impl()) 904 return; 905 906 impl()->convert1(toWebCore(value)); 907 } 908 909 void WebDOMTestObj::convert2(const WebDOMb& value) 910 { 911 if (!impl()) 912 return; 913 914 impl()->convert2(toWebCore(value)); 915 } 916 917 void WebDOMTestObj::convert4(const WebDOMd& value) 918 { 919 if (!impl()) 920 return; 921 922 impl()->convert4(toWebCore(value)); 923 } 924 925 void WebDOMTestObj::convert5(const WebDOMe& value) 926 { 927 if (!impl()) 928 return; 929 930 impl()->convert5(toWebCore(value)); 935 931 } 936 932 -
trunk/Source/WebCore/bindings/scripts/test/CPP/WebDOMTestObj.h
r128248 r129723 78 78 unsigned short unsignedShortAttr() const; 79 79 void setUnsignedShortAttr(unsigned short); 80 long longAttr() const;81 void set Attr(long long);80 int longAttr() const; 81 void setLongAttr(int); 82 82 long long longLongAttr() const; 83 83 void setLongLongAttr(long long); … … 148 148 149 149 void voidMethod(); 150 void voidMethodWithArgs( long longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg);151 long longMethod();152 long long MethodWithArgs(long longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg);150 void voidMethodWithArgs(int longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg); 151 int longMethod(); 152 int longMethodWithArgs(int longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg); 153 153 WebDOMTestObj objMethod(); 154 WebDOMTestObj objMethodWithArgs( long longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg);154 WebDOMTestObj objMethodWithArgs(int longArg, const WebDOMString& strArg, const WebDOMTestObj& objArg); 155 155 WebDOMTestObj methodThatRequiresAllArgsAndThrows(const WebDOMString& strArg, const WebDOMTestObj& objArg); 156 156 void serializedValue(const WebDOMString& serializedArg); … … 183 183 void overloadedMethod1(const WebDOMString& type); 184 184 #endif 185 void convert1(const WebDOMa& );186 void convert2(const WebDOMb& );187 void convert4(const WebDOMd& );188 void convert5(const WebDOMe& );185 void convert1(const WebDOMa& value); 186 void convert2(const WebDOMb& value); 187 void convert4(const WebDOMd& value); 188 void convert5(const WebDOMe& value); 189 189 WebDOMSVGPoint mutablePointFunction(); 190 190 WebDOMSVGPoint immutablePointFunction(); -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp
r128248 r129723 107 107 PROP_SHORT_ATTR, 108 108 PROP_UNSIGNED_SHORT_ATTR, 109 PROP_ ATTR,109 PROP_LONG_ATTR, 110 110 PROP_LONG_LONG_ATTR, 111 111 PROP_UNSIGNED_LONG_LONG_ATTR, … … 180 180 break; 181 181 } 182 case PROP_LONG_ATTR: { 183 coreSelf->setLongAttr((g_value_get_long(value))); 184 break; 185 } 182 186 case PROP_UNSIGNED_LONG_LONG_ATTR: { 183 187 coreSelf->setUnsignedLongLongAttr((g_value_get_uint64(value))); … … 229 233 } 230 234 case PROP_ATTR_WITH_GETTER_EXCEPTION: { 231 WebCore::ExceptionCode ec = 0; 232 coreSelf->setAttrWithGetterException((g_value_get_long(value)), ec); 235 coreSelf->setAttrWithGetterException((g_value_get_long(value))); 233 236 break; 234 237 } … … 239 242 } 240 243 case PROP_STRING_ATTR_WITH_GETTER_EXCEPTION: { 241 WebCore::ExceptionCode ec = 0; 242 coreSelf->setStringAttrWithGetterException(WTF::String::fromUTF8(g_value_get_string(value)), ec); 244 coreSelf->setStringAttrWithGetterException(WTF::String::fromUTF8(g_value_get_string(value))); 243 245 break; 244 246 } … … 330 332 break; 331 333 } 332 case PROP_ ATTR: {333 g_value_set_ int64(value, coreSelf->attr());334 case PROP_LONG_ATTR: { 335 g_value_set_long(value, coreSelf->longAttr()); 334 336 break; 335 337 } … … 594 596 WEBKIT_PARAM_READWRITE)); 595 597 g_object_class_install_property(gobjectClass, 596 PROP_ ATTR,597 g_param_spec_ int64("attr", /* name */598 "test_obj_ attr", /* short description */599 "read-write g int64 TestObj.attr", /* longer - could do with some extra doc stuff here */600 G_MIN INT64, /* min */601 G_MAX INT64, /* max */598 PROP_LONG_ATTR, 599 g_param_spec_long("long-attr", /* name */ 600 "test_obj_long-attr", /* short description */ 601 "read-write glong TestObj.long-attr", /* longer - could do with some extra doc stuff here */ 602 G_MINLONG, /* min */ 603 G_MAXLONG, /* max */ 602 604 0, /* default */ 603 605 WEBKIT_PARAM_READWRITE)); … … 932 934 933 935 void 934 webkit_dom_test_obj_void_method_with_args(WebKitDOMTestObj* self, g int64Arg, const gchar* strArg, WebKitDOMTestObj* objArg)936 webkit_dom_test_obj_void_method_with_args(WebKitDOMTestObj* self, glong longArg, const gchar* strArg, WebKitDOMTestObj* objArg) 935 937 { 936 938 g_return_if_fail(self); … … 945 947 g_return_if_fail(convertedObjArg); 946 948 } 947 item->voidMethodWithArgs( Arg, convertedStrArg, convertedObjArg);948 } 949 950 g int64951 webkit_dom_test_obj_ method(WebKitDOMTestObj* self)952 { 953 g_return_val_if_fail(self, 0); 954 WebCore::JSMainThreadNullState state; 955 WebCore::TestObj* item = WebKit::core(self); 956 g int64 result = item->Method();957 return result; 958 } 959 960 g int64961 webkit_dom_test_obj_ method_with_args(WebKitDOMTestObj* self, gint64Arg, const gchar* strArg, WebKitDOMTestObj* objArg)949 item->voidMethodWithArgs(longArg, convertedStrArg, convertedObjArg); 950 } 951 952 glong 953 webkit_dom_test_obj_long_method(WebKitDOMTestObj* self) 954 { 955 g_return_val_if_fail(self, 0); 956 WebCore::JSMainThreadNullState state; 957 WebCore::TestObj* item = WebKit::core(self); 958 glong result = item->longMethod(); 959 return result; 960 } 961 962 glong 963 webkit_dom_test_obj_long_method_with_args(WebKitDOMTestObj* self, glong longArg, const gchar* strArg, WebKitDOMTestObj* objArg) 962 964 { 963 965 g_return_val_if_fail(self, 0); … … 972 974 g_return_val_if_fail(convertedObjArg, 0); 973 975 } 974 g int64 result = item->MethodWithArgs(Arg, convertedStrArg, convertedObjArg);976 glong result = item->longMethodWithArgs(longArg, convertedStrArg, convertedObjArg); 975 977 return result; 976 978 } … … 988 990 989 991 WebKitDOMTestObj* 990 webkit_dom_test_obj_obj_method_with_args(WebKitDOMTestObj* self, g int64Arg, const gchar* strArg, WebKitDOMTestObj* objArg)992 webkit_dom_test_obj_obj_method_with_args(WebKitDOMTestObj* self, glong longArg, const gchar* strArg, WebKitDOMTestObj* objArg) 991 993 { 992 994 g_return_val_if_fail(self, 0); … … 1001 1003 g_return_val_if_fail(convertedObjArg, 0); 1002 1004 } 1003 RefPtr<WebCore::TestObj> gobjectResult = WTF::getPtr(item->objMethodWithArgs( Arg, convertedStrArg, convertedObjArg));1005 RefPtr<WebCore::TestObj> gobjectResult = WTF::getPtr(item->objMethodWithArgs(longArg, convertedStrArg, convertedObjArg)); 1004 1006 WebKitDOMTestObj* result = WebKit::kit(gobjectResult.get()); 1005 1007 return result; … … 1345 1347 1346 1348 void 1347 webkit_dom_test_obj_convert1(WebKitDOMTestObj* self, WebKitDOMa* )1348 { 1349 g_return_if_fail(self); 1350 WebCore::JSMainThreadNullState state; 1351 WebCore::TestObj* item = WebKit::core(self); 1352 g_return_if_fail( );1353 WebCore::a* converted = 0;1354 if ( ) {1355 converted = WebKit::core();1356 g_return_if_fail(converted );1357 } 1358 item->convert1(converted );1359 } 1360 1361 void 1362 webkit_dom_test_obj_convert2(WebKitDOMTestObj* self, WebKitDOMb* )1363 { 1364 g_return_if_fail(self); 1365 WebCore::JSMainThreadNullState state; 1366 WebCore::TestObj* item = WebKit::core(self); 1367 g_return_if_fail( );1368 WebCore::b* converted = 0;1369 if ( ) {1370 converted = WebKit::core();1371 g_return_if_fail(converted );1372 } 1373 item->convert2(converted );1374 } 1375 1376 void 1377 webkit_dom_test_obj_convert4(WebKitDOMTestObj* self, WebKitDOMd* )1378 { 1379 g_return_if_fail(self); 1380 WebCore::JSMainThreadNullState state; 1381 WebCore::TestObj* item = WebKit::core(self); 1382 g_return_if_fail( );1383 WebCore::d* converted = 0;1384 if ( ) {1385 converted = WebKit::core();1386 g_return_if_fail(converted );1387 } 1388 item->convert4(converted );1389 } 1390 1391 void 1392 webkit_dom_test_obj_convert5(WebKitDOMTestObj* self, WebKitDOMe* )1393 { 1394 g_return_if_fail(self); 1395 WebCore::JSMainThreadNullState state; 1396 WebCore::TestObj* item = WebKit::core(self); 1397 g_return_if_fail( );1398 WebCore::e* converted = 0;1399 if ( ) {1400 converted = WebKit::core();1401 g_return_if_fail(converted );1402 } 1403 item->convert5(converted );1349 webkit_dom_test_obj_convert1(WebKitDOMTestObj* self, WebKitDOMa* value) 1350 { 1351 g_return_if_fail(self); 1352 WebCore::JSMainThreadNullState state; 1353 WebCore::TestObj* item = WebKit::core(self); 1354 g_return_if_fail(value); 1355 WebCore::a* convertedValue = 0; 1356 if (value) { 1357 convertedValue = WebKit::core(value); 1358 g_return_if_fail(convertedValue); 1359 } 1360 item->convert1(convertedValue); 1361 } 1362 1363 void 1364 webkit_dom_test_obj_convert2(WebKitDOMTestObj* self, WebKitDOMb* value) 1365 { 1366 g_return_if_fail(self); 1367 WebCore::JSMainThreadNullState state; 1368 WebCore::TestObj* item = WebKit::core(self); 1369 g_return_if_fail(value); 1370 WebCore::b* convertedValue = 0; 1371 if (value) { 1372 convertedValue = WebKit::core(value); 1373 g_return_if_fail(convertedValue); 1374 } 1375 item->convert2(convertedValue); 1376 } 1377 1378 void 1379 webkit_dom_test_obj_convert4(WebKitDOMTestObj* self, WebKitDOMd* value) 1380 { 1381 g_return_if_fail(self); 1382 WebCore::JSMainThreadNullState state; 1383 WebCore::TestObj* item = WebKit::core(self); 1384 g_return_if_fail(value); 1385 WebCore::d* convertedValue = 0; 1386 if (value) { 1387 convertedValue = WebKit::core(value); 1388 g_return_if_fail(convertedValue); 1389 } 1390 item->convert4(convertedValue); 1391 } 1392 1393 void 1394 webkit_dom_test_obj_convert5(WebKitDOMTestObj* self, WebKitDOMe* value) 1395 { 1396 g_return_if_fail(self); 1397 WebCore::JSMainThreadNullState state; 1398 WebCore::TestObj* item = WebKit::core(self); 1399 g_return_if_fail(value); 1400 WebCore::e* convertedValue = 0; 1401 if (value) { 1402 convertedValue = WebKit::core(value); 1403 g_return_if_fail(convertedValue); 1404 } 1405 item->convert5(convertedValue); 1404 1406 } 1405 1407 … … 1522 1524 } 1523 1525 1524 g int641525 webkit_dom_test_obj_get_ attr(WebKitDOMTestObj* self)1526 { 1527 g_return_val_if_fail(self, 0); 1528 WebCore::JSMainThreadNullState state; 1529 WebCore::TestObj* item = WebKit::core(self); 1530 g int64 result = item->attr();1531 return result; 1532 } 1533 1534 void 1535 webkit_dom_test_obj_set_ attr(WebKitDOMTestObj* self, gint64value)1536 { 1537 g_return_if_fail(self); 1538 WebCore::JSMainThreadNullState state; 1539 WebCore::TestObj* item = WebKit::core(self); 1540 item->set Attr(value);1526 glong 1527 webkit_dom_test_obj_get_long_attr(WebKitDOMTestObj* self) 1528 { 1529 g_return_val_if_fail(self, 0); 1530 WebCore::JSMainThreadNullState state; 1531 WebCore::TestObj* item = WebKit::core(self); 1532 glong result = item->longAttr(); 1533 return result; 1534 } 1535 1536 void 1537 webkit_dom_test_obj_set_long_attr(WebKitDOMTestObj* self, glong value) 1538 { 1539 g_return_if_fail(self); 1540 WebCore::JSMainThreadNullState state; 1541 WebCore::TestObj* item = WebKit::core(self); 1542 item->setLongAttr(value); 1541 1543 } 1542 1544 … … 1866 1868 1867 1869 void 1868 webkit_dom_test_obj_set_attr_with_getter_exception(WebKitDOMTestObj* self, glong value, GError** error) 1869 { 1870 g_return_if_fail(self); 1871 WebCore::JSMainThreadNullState state; 1872 WebCore::TestObj* item = WebKit::core(self); 1873 WebCore::ExceptionCode ec = 0; 1874 item->setAttrWithGetterException(value, ec); 1875 if (ec) { 1876 WebCore::ExceptionCodeDescription ecdesc(ec); 1877 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); 1878 } 1870 webkit_dom_test_obj_set_attr_with_getter_exception(WebKitDOMTestObj* self, glong value) 1871 { 1872 g_return_if_fail(self); 1873 WebCore::JSMainThreadNullState state; 1874 WebCore::TestObj* item = WebKit::core(self); 1875 item->setAttrWithGetterException(value); 1879 1876 } 1880 1877 … … 1915 1912 1916 1913 void 1917 webkit_dom_test_obj_set_string_attr_with_getter_exception(WebKitDOMTestObj* self, const gchar* value , GError** error)1914 webkit_dom_test_obj_set_string_attr_with_getter_exception(WebKitDOMTestObj* self, const gchar* value) 1918 1915 { 1919 1916 g_return_if_fail(self); … … 1922 1919 g_return_if_fail(value); 1923 1920 WTF::String convertedValue = WTF::String::fromUTF8(value); 1924 WebCore::ExceptionCode ec = 0; 1925 item->setStringAttrWithGetterException(convertedValue, ec); 1926 if (ec) { 1927 WebCore::ExceptionCodeDescription ecdesc(ec); 1928 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); 1929 } 1921 item->setStringAttrWithGetterException(convertedValue); 1930 1922 } 1931 1923 … … 2018 2010 2019 2011 void 2020 webkit_dom_test_obj_set_with_script_state_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value , GError** error)2012 webkit_dom_test_obj_set_with_script_state_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value) 2021 2013 { 2022 2014 g_return_if_fail(self); … … 2029 2021 g_return_if_fail(convertedValue); 2030 2022 } 2031 WebCore::ExceptionCode ec = 0; 2032 item->setWithScriptStateAttributeRaises(convertedValue, ec); 2033 if (ec) { 2034 WebCore::ExceptionCodeDescription ecdesc(ec); 2035 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); 2036 } 2023 item->setWithScriptStateAttributeRaises(convertedValue); 2037 2024 } 2038 2025 … … 2054 2041 2055 2042 void 2056 webkit_dom_test_obj_set_with_script_execution_context_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value , GError** error)2043 webkit_dom_test_obj_set_with_script_execution_context_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value) 2057 2044 { 2058 2045 g_return_if_fail(self); … … 2065 2052 g_return_if_fail(convertedValue); 2066 2053 } 2067 WebCore::ExceptionCode ec = 0; 2068 item->setWithScriptExecutionContextAttributeRaises(convertedValue, ec); 2069 if (ec) { 2070 WebCore::ExceptionCodeDescription ecdesc(ec); 2071 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); 2072 } 2054 item->setWithScriptExecutionContextAttributeRaises(convertedValue); 2073 2055 } 2074 2056 … … 2116 2098 2117 2099 void 2118 webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value , GError** error)2100 webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value) 2119 2101 { 2120 2102 g_return_if_fail(self); … … 2127 2109 g_return_if_fail(convertedValue); 2128 2110 } 2129 WebCore::ExceptionCode ec = 0; 2130 item->setWithScriptExecutionContextAndScriptStateAttributeRaises(convertedValue, ec); 2131 if (ec) { 2132 WebCore::ExceptionCodeDescription ecdesc(ec); 2133 g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); 2134 } 2111 item->setWithScriptExecutionContextAndScriptStateAttributeRaises(convertedValue); 2135 2112 } 2136 2113 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.h
r128248 r129723 59 59 * webkit_dom_test_obj_void_method_with_args: 60 60 * @self: A #WebKitDOMTestObj 61 * @ Arg: A #gint6461 * @longArg: A #glong 62 62 * @strArg: A #gchar 63 63 * @objArg: A #WebKitDOMTestObj … … 67 67 **/ 68 68 WEBKIT_API void 69 webkit_dom_test_obj_void_method_with_args(WebKitDOMTestObj* self, g int64Arg, const gchar* strArg, WebKitDOMTestObj* objArg);70 71 /** 72 * webkit_dom_test_obj_ method:73 * @self: A #WebKitDOMTestObj 74 * 75 * Returns: 76 * 77 **/ 78 WEBKIT_API g int6479 webkit_dom_test_obj_ method(WebKitDOMTestObj* self);80 81 /** 82 * webkit_dom_test_obj_ method_with_args:83 * @self: A #WebKitDOMTestObj 84 * @ Arg: A #gint6469 webkit_dom_test_obj_void_method_with_args(WebKitDOMTestObj* self, glong longArg, const gchar* strArg, WebKitDOMTestObj* objArg); 70 71 /** 72 * webkit_dom_test_obj_long_method: 73 * @self: A #WebKitDOMTestObj 74 * 75 * Returns: 76 * 77 **/ 78 WEBKIT_API glong 79 webkit_dom_test_obj_long_method(WebKitDOMTestObj* self); 80 81 /** 82 * webkit_dom_test_obj_long_method_with_args: 83 * @self: A #WebKitDOMTestObj 84 * @longArg: A #glong 85 85 * @strArg: A #gchar 86 86 * @objArg: A #WebKitDOMTestObj … … 89 89 * 90 90 **/ 91 WEBKIT_API g int6492 webkit_dom_test_obj_ method_with_args(WebKitDOMTestObj* self, gint64Arg, const gchar* strArg, WebKitDOMTestObj* objArg);91 WEBKIT_API glong 92 webkit_dom_test_obj_long_method_with_args(WebKitDOMTestObj* self, glong longArg, const gchar* strArg, WebKitDOMTestObj* objArg); 93 93 94 94 /** … … 105 105 * webkit_dom_test_obj_obj_method_with_args: 106 106 * @self: A #WebKitDOMTestObj 107 * @ Arg: A #gint64107 * @longArg: A #glong 108 108 * @strArg: A #gchar 109 109 * @objArg: A #WebKitDOMTestObj … … 113 113 **/ 114 114 WEBKIT_API WebKitDOMTestObj* 115 webkit_dom_test_obj_obj_method_with_args(WebKitDOMTestObj* self, g int64Arg, const gchar* strArg, WebKitDOMTestObj* objArg);115 webkit_dom_test_obj_obj_method_with_args(WebKitDOMTestObj* self, glong longArg, const gchar* strArg, WebKitDOMTestObj* objArg); 116 116 117 117 /** … … 401 401 * webkit_dom_test_obj_convert1: 402 402 * @self: A #WebKitDOMTestObj 403 * @ : A #WebKitDOMa404 * 405 * Returns: 406 * 407 **/ 408 WEBKIT_API void 409 webkit_dom_test_obj_convert1(WebKitDOMTestObj* self, WebKitDOMa* );403 * @value: A #WebKitDOMa 404 * 405 * Returns: 406 * 407 **/ 408 WEBKIT_API void 409 webkit_dom_test_obj_convert1(WebKitDOMTestObj* self, WebKitDOMa* value); 410 410 411 411 /** 412 412 * webkit_dom_test_obj_convert2: 413 413 * @self: A #WebKitDOMTestObj 414 * @ : A #WebKitDOMb415 * 416 * Returns: 417 * 418 **/ 419 WEBKIT_API void 420 webkit_dom_test_obj_convert2(WebKitDOMTestObj* self, WebKitDOMb* );414 * @value: A #WebKitDOMb 415 * 416 * Returns: 417 * 418 **/ 419 WEBKIT_API void 420 webkit_dom_test_obj_convert2(WebKitDOMTestObj* self, WebKitDOMb* value); 421 421 422 422 /** 423 423 * webkit_dom_test_obj_convert4: 424 424 * @self: A #WebKitDOMTestObj 425 * @ : A #WebKitDOMd426 * 427 * Returns: 428 * 429 **/ 430 WEBKIT_API void 431 webkit_dom_test_obj_convert4(WebKitDOMTestObj* self, WebKitDOMd* );425 * @value: A #WebKitDOMd 426 * 427 * Returns: 428 * 429 **/ 430 WEBKIT_API void 431 webkit_dom_test_obj_convert4(WebKitDOMTestObj* self, WebKitDOMd* value); 432 432 433 433 /** 434 434 * webkit_dom_test_obj_convert5: 435 435 * @self: A #WebKitDOMTestObj 436 * @ : A #WebKitDOMe437 * 438 * Returns: 439 * 440 **/ 441 WEBKIT_API void 442 webkit_dom_test_obj_convert5(WebKitDOMTestObj* self, WebKitDOMe* );436 * @value: A #WebKitDOMe 437 * 438 * Returns: 439 * 440 **/ 441 WEBKIT_API void 442 webkit_dom_test_obj_convert5(WebKitDOMTestObj* self, WebKitDOMe* value); 443 443 444 444 /** … … 559 559 560 560 /** 561 * webkit_dom_test_obj_get_ attr:562 * @self: A #WebKitDOMTestObj 563 * 564 * Returns: 565 * 566 **/ 567 WEBKIT_API g int64568 webkit_dom_test_obj_get_ attr(WebKitDOMTestObj* self);569 570 /** 571 * webkit_dom_test_obj_set_ attr:572 * @self: A #WebKitDOMTestObj 573 * @value: A #g int64574 * 575 * Returns: 576 * 577 **/ 578 WEBKIT_API void 579 webkit_dom_test_obj_set_ attr(WebKitDOMTestObj* self, gint64value);561 * webkit_dom_test_obj_get_long_attr: 562 * @self: A #WebKitDOMTestObj 563 * 564 * Returns: 565 * 566 **/ 567 WEBKIT_API glong 568 webkit_dom_test_obj_get_long_attr(WebKitDOMTestObj* self); 569 570 /** 571 * webkit_dom_test_obj_set_long_attr: 572 * @self: A #WebKitDOMTestObj 573 * @value: A #glong 574 * 575 * Returns: 576 * 577 **/ 578 WEBKIT_API void 579 webkit_dom_test_obj_set_long_attr(WebKitDOMTestObj* self, glong value); 580 580 581 581 /** … … 909 909 * @self: A #WebKitDOMTestObj 910 910 * @value: A #glong 911 * @error: #GError 912 * 913 * Returns: 914 * 915 **/ 916 WEBKIT_API void 917 webkit_dom_test_obj_set_attr_with_getter_exception(WebKitDOMTestObj* self, glong value, GError** error); 911 * 912 * Returns: 913 * 914 **/ 915 WEBKIT_API void 916 webkit_dom_test_obj_set_attr_with_getter_exception(WebKitDOMTestObj* self, glong value); 918 917 919 918 /** … … 954 953 * @self: A #WebKitDOMTestObj 955 954 * @value: A #gchar 956 * @error: #GError 957 * 958 * Returns: 959 * 960 **/ 961 WEBKIT_API void 962 webkit_dom_test_obj_set_string_attr_with_getter_exception(WebKitDOMTestObj* self, const gchar* value, GError** error); 955 * 956 * Returns: 957 * 958 **/ 959 WEBKIT_API void 960 webkit_dom_test_obj_set_string_attr_with_getter_exception(WebKitDOMTestObj* self, const gchar* value); 963 961 964 962 /** … … 1041 1039 * @self: A #WebKitDOMTestObj 1042 1040 * @value: A #WebKitDOMTestObj 1041 * 1042 * Returns: (transfer none): 1043 * 1044 **/ 1045 WEBKIT_API void 1046 webkit_dom_test_obj_set_with_script_state_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value); 1047 1048 /** 1049 * webkit_dom_test_obj_get_with_script_execution_context_attribute_raises: 1050 * @self: A #WebKitDOMTestObj 1043 1051 * @error: #GError 1044 1052 * … … 1046 1054 * 1047 1055 **/ 1048 WEBKIT_API void 1049 webkit_dom_test_obj_set_with_script_state_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value, GError** error); 1050 1051 /** 1052 * webkit_dom_test_obj_get_with_script_execution_context_attribute_raises: 1056 WEBKIT_API WebKitDOMTestObj* 1057 webkit_dom_test_obj_get_with_script_execution_context_attribute_raises(WebKitDOMTestObj* self, GError** error); 1058 1059 /** 1060 * webkit_dom_test_obj_set_with_script_execution_context_attribute_raises: 1061 * @self: A #WebKitDOMTestObj 1062 * @value: A #WebKitDOMTestObj 1063 * 1064 * Returns: (transfer none): 1065 * 1066 **/ 1067 WEBKIT_API void 1068 webkit_dom_test_obj_set_with_script_execution_context_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value); 1069 1070 /** 1071 * webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute: 1072 * @self: A #WebKitDOMTestObj 1073 * 1074 * Returns: (transfer none): 1075 * 1076 **/ 1077 WEBKIT_API WebKitDOMTestObj* 1078 webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute(WebKitDOMTestObj* self); 1079 1080 /** 1081 * webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute: 1082 * @self: A #WebKitDOMTestObj 1083 * @value: A #WebKitDOMTestObj 1084 * 1085 * Returns: (transfer none): 1086 * 1087 **/ 1088 WEBKIT_API void 1089 webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute(WebKitDOMTestObj* self, WebKitDOMTestObj* value); 1090 1091 /** 1092 * webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises: 1053 1093 * @self: A #WebKitDOMTestObj 1054 1094 * @error: #GError … … 1058 1098 **/ 1059 1099 WEBKIT_API WebKitDOMTestObj* 1060 webkit_dom_test_obj_get_with_script_execution_context_a ttribute_raises(WebKitDOMTestObj* self, GError** error);1061 1062 /** 1063 * webkit_dom_test_obj_set_with_script_execution_context_a ttribute_raises:1100 webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises(WebKitDOMTestObj* self, GError** error); 1101 1102 /** 1103 * webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises: 1064 1104 * @self: A #WebKitDOMTestObj 1065 1105 * @value: A #WebKitDOMTestObj 1066 * @error: #GError 1067 * 1068 * Returns: (transfer none): 1069 * 1070 **/ 1071 WEBKIT_API void 1072 webkit_dom_test_obj_set_with_script_execution_context_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value, GError** error); 1073 1074 /** 1075 * webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute: 1076 * @self: A #WebKitDOMTestObj 1077 * 1078 * Returns: (transfer none): 1079 * 1080 **/ 1081 WEBKIT_API WebKitDOMTestObj* 1082 webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute(WebKitDOMTestObj* self); 1083 1084 /** 1085 * webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute: 1086 * @self: A #WebKitDOMTestObj 1087 * @value: A #WebKitDOMTestObj 1088 * 1089 * Returns: (transfer none): 1090 * 1091 **/ 1092 WEBKIT_API void 1093 webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute(WebKitDOMTestObj* self, WebKitDOMTestObj* value); 1094 1095 /** 1096 * webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises: 1097 * @self: A #WebKitDOMTestObj 1098 * @error: #GError 1099 * 1100 * Returns: (transfer none): 1101 * 1102 **/ 1103 WEBKIT_API WebKitDOMTestObj* 1104 webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises(WebKitDOMTestObj* self, GError** error); 1105 1106 /** 1107 * webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises: 1108 * @self: A #WebKitDOMTestObj 1109 * @value: A #WebKitDOMTestObj 1110 * @error: #GError 1111 * 1112 * Returns: (transfer none): 1113 * 1114 **/ 1115 WEBKIT_API void 1116 webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value, GError** error); 1106 * 1107 * Returns: (transfer none): 1108 * 1109 **/ 1110 WEBKIT_API void 1111 webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises(WebKitDOMTestObj* self, WebKitDOMTestObj* value); 1117 1112 1118 1113 /** -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
r128655 r129723 87 87 { "shortAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjShortAttr), (intptr_t)setJSTestObjShortAttr, NoIntrinsic }, 88 88 { "unsignedShortAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedShortAttr), (intptr_t)setJSTestObjUnsignedShortAttr, NoIntrinsic }, 89 { " Attr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttr), (intptr_t)setJSTestObjAttr, NoIntrinsic },89 { "longAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongAttr), (intptr_t)setJSTestObjLongAttr, NoIntrinsic }, 90 90 { "longLongAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongLongAttr), (intptr_t)setJSTestObjLongLongAttr, NoIntrinsic }, 91 91 { "unsignedLongLongAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedLongLongAttr), (intptr_t)setJSTestObjUnsignedLongLongAttr, NoIntrinsic }, … … 267 267 { "voidMethod", DontDelete | JSC::Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionVoidMethod), (intptr_t)0, NoIntrinsic }, 268 268 { "voidMethodWithArgs", DontDelete | JSC::Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionVoidMethodWithArgs), (intptr_t)3, NoIntrinsic }, 269 { " Method", DontDelete | JSC::Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethod), (intptr_t)0, NoIntrinsic },270 { " MethodWithArgs", DontDelete | JSC::Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithArgs), (intptr_t)3, NoIntrinsic },269 { "longMethod", DontDelete | JSC::Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionLongMethod), (intptr_t)0, NoIntrinsic }, 270 { "longMethodWithArgs", DontDelete | JSC::Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionLongMethodWithArgs), (intptr_t)3, NoIntrinsic }, 271 271 { "objMethod", DontDelete | JSC::Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionObjMethod), (intptr_t)0, NoIntrinsic }, 272 272 { "objMethodWithArgs", DontDelete | JSC::Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionObjMethodWithArgs), (intptr_t)3, NoIntrinsic }, … … 464 464 465 465 466 JSValue jsTestObj Attr(ExecState* exec, JSValue slotBase, PropertyName)467 { 468 JSTestObj* castedThis = jsCast<JSTestObj*>(asObject(slotBase)); 469 UNUSED_PARAM(exec); 470 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 471 JSValue result = jsNumber(impl-> attr());466 JSValue jsTestObjLongAttr(ExecState* exec, JSValue slotBase, PropertyName) 467 { 468 JSTestObj* castedThis = jsCast<JSTestObj*>(asObject(slotBase)); 469 UNUSED_PARAM(exec); 470 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 471 JSValue result = jsNumber(impl->longAttr()); 472 472 return result; 473 473 } … … 1002 1002 1003 1003 1004 void setJSTestObj Attr(ExecState* exec, JSObject* thisObject, JSValue value)1005 { 1006 UNUSED_PARAM(exec); 1007 JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject); 1008 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 1009 impl->set Attr(static_cast<long long>(value.toInteger(exec)));1004 void setJSTestObjLongAttr(ExecState* exec, JSObject* thisObject, JSValue value) 1005 { 1006 UNUSED_PARAM(exec); 1007 JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject); 1008 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 1009 impl->setLongAttr(value.toInt32(exec)); 1010 1010 } 1011 1011 … … 1160 1160 JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject); 1161 1161 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 1162 ExceptionCode ec = 0; 1163 impl->setAttrWithGetterException(value.toInt32(exec), ec); 1164 setDOMException(exec, ec); 1162 impl->setAttrWithGetterException(value.toInt32(exec)); 1165 1163 } 1166 1164 … … 1182 1180 JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject); 1183 1181 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 1184 ExceptionCode ec = 0; 1185 impl->setStringAttrWithGetterException(value.isEmpty() ? String() : value.toString(exec)->value(exec), ec); 1186 setDOMException(exec, ec); 1182 impl->setStringAttrWithGetterException(value.isEmpty() ? String() : value.toString(exec)->value(exec)); 1187 1183 } 1188 1184 … … 1232 1228 JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject); 1233 1229 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 1234 ExceptionCode ec = 0; 1235 impl->setWithScriptStateAttributeRaises(exec, toTestObj(value), ec); 1236 setDOMException(exec, ec); 1230 impl->setWithScriptStateAttributeRaises(exec, toTestObj(value)); 1237 1231 } 1238 1232 … … 1243 1237 JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject); 1244 1238 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 1245 ExceptionCode ec = 0;1246 1239 ScriptExecutionContext* scriptContext = jsCast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->scriptExecutionContext(); 1247 1240 if (!scriptContext) 1248 1241 return; 1249 impl->setWithScriptExecutionContextAttributeRaises(scriptContext, toTestObj(value), ec); 1250 setDOMException(exec, ec); 1242 impl->setWithScriptExecutionContextAttributeRaises(scriptContext, toTestObj(value)); 1251 1243 } 1252 1244 … … 1269 1261 JSTestObj* castedThis = jsCast<JSTestObj*>(thisObject); 1270 1262 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 1271 ExceptionCode ec = 0;1272 1263 ScriptExecutionContext* scriptContext = jsCast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->scriptExecutionContext(); 1273 1264 if (!scriptContext) 1274 1265 return; 1275 impl->setWithScriptExecutionContextAndScriptStateAttributeRaises(exec, scriptContext, toTestObj(value), ec); 1276 setDOMException(exec, ec); 1266 impl->setWithScriptExecutionContextAndScriptStateAttributeRaises(exec, scriptContext, toTestObj(value)); 1277 1267 } 1278 1268 … … 1452 1442 if (exec->argumentCount() < 3) 1453 1443 return throwVMError(exec, createNotEnoughArgumentsError(exec)); 1454 long long Arg(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInteger(exec)));1444 int longArg(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInt32(exec)); 1455 1445 if (exec->hadException()) 1456 1446 return JSValue::encode(jsUndefined()); … … 1461 1451 if (exec->hadException()) 1462 1452 return JSValue::encode(jsUndefined()); 1463 impl->voidMethodWithArgs( Arg, strArg, objArg);1464 return JSValue::encode(jsUndefined()); 1465 } 1466 1467 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunction Method(ExecState* exec)1468 { 1469 JSValue thisValue = exec->hostThisValue(); 1470 if (!thisValue.inherits(&JSTestObj::s_info)) 1471 return throwVMTypeError(exec); 1472 JSTestObj* castedThis = jsCast<JSTestObj*>(asObject(thisValue)); 1473 ASSERT_GC_OBJECT_INHERITS(castedThis, &JSTestObj::s_info); 1474 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 1475 1476 JSC::JSValue result = jsNumber(impl-> method());1453 impl->voidMethodWithArgs(longArg, strArg, objArg); 1454 return JSValue::encode(jsUndefined()); 1455 } 1456 1457 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionLongMethod(ExecState* exec) 1458 { 1459 JSValue thisValue = exec->hostThisValue(); 1460 if (!thisValue.inherits(&JSTestObj::s_info)) 1461 return throwVMTypeError(exec); 1462 JSTestObj* castedThis = jsCast<JSTestObj*>(asObject(thisValue)); 1463 ASSERT_GC_OBJECT_INHERITS(castedThis, &JSTestObj::s_info); 1464 TestObj* impl = static_cast<TestObj*>(castedThis->impl()); 1465 1466 JSC::JSValue result = jsNumber(impl->longMethod()); 1477 1467 return JSValue::encode(result); 1478 1468 } 1479 1469 1480 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunction MethodWithArgs(ExecState* exec)1470 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionLongMethodWithArgs(ExecState* exec) 1481 1471 { 1482 1472 JSValue thisValue = exec->hostThisValue(); … … 1488 1478 if (exec->argumentCount() < 3) 1489 1479 return throwVMError(exec, createNotEnoughArgumentsError(exec)); 1490 long long Arg(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInteger(exec)));1480 int longArg(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInt32(exec)); 1491 1481 if (exec->hadException()) 1492 1482 return JSValue::encode(jsUndefined()); … … 1498 1488 return JSValue::encode(jsUndefined()); 1499 1489 1500 JSC::JSValue result = jsNumber(impl-> methodWithArgs(Arg, strArg, objArg));1490 JSC::JSValue result = jsNumber(impl->longMethodWithArgs(longArg, strArg, objArg)); 1501 1491 return JSValue::encode(result); 1502 1492 } … … 1525 1515 if (exec->argumentCount() < 3) 1526 1516 return throwVMError(exec, createNotEnoughArgumentsError(exec)); 1527 long long Arg(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInteger(exec)));1517 int longArg(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInt32(exec)); 1528 1518 if (exec->hadException()) 1529 1519 return JSValue::encode(jsUndefined()); … … 1535 1525 return JSValue::encode(jsUndefined()); 1536 1526 1537 JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->objMethodWithArgs( Arg, strArg, objArg)));1527 JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->objMethodWithArgs(longArg, strArg, objArg))); 1538 1528 return JSValue::encode(result); 1539 1529 } … … 1566 1556 if (exec->argumentCount() < 1) 1567 1557 return throwVMError(exec, createNotEnoughArgumentsError(exec)); 1568 long long Arg(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInteger(exec)));1569 if (exec->hadException()) 1570 return JSValue::encode(jsUndefined()); 1571 1572 JSC::JSValue result = jsArray(exec, castedThis->globalObject(), impl->methodReturningSequence( Arg));1558 int longArg(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInt32(exec)); 1559 if (exec->hadException()) 1560 return JSValue::encode(jsUndefined()); 1561 1562 JSC::JSValue result = jsArray(exec, castedThis->globalObject(), impl->methodReturningSequence(longArg)); 1573 1563 return JSValue::encode(result); 1574 1564 } … … 2145 2135 } 2146 2136 2147 long long Arg(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInteger(exec)));2148 if (exec->hadException()) 2149 return JSValue::encode(jsUndefined()); 2150 impl->overloadedMethod(objArg, Arg);2137 int longArg(MAYBE_MISSING_PARAMETER(exec, 1, DefaultIsUndefined).toInt32(exec)); 2138 if (exec->hadException()) 2139 return JSValue::encode(jsUndefined()); 2140 impl->overloadedMethod(objArg, longArg); 2151 2141 return JSValue::encode(jsUndefined()); 2152 2142 } … … 2179 2169 if (exec->argumentCount() < 1) 2180 2170 return throwVMError(exec, createNotEnoughArgumentsError(exec)); 2181 long long Arg(static_cast<long long>(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInteger(exec)));2182 if (exec->hadException()) 2183 return JSValue::encode(jsUndefined()); 2184 impl->overloadedMethod( Arg);2171 int longArg(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined).toInt32(exec)); 2172 if (exec->hadException()) 2173 return JSValue::encode(jsUndefined()); 2174 impl->overloadedMethod(longArg); 2185 2175 return JSValue::encode(jsUndefined()); 2186 2176 } … … 2486 2476 if (exec->argumentCount() < 1) 2487 2477 return throwVMError(exec, createNotEnoughArgumentsError(exec)); 2488 a* (toa(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));2489 if (exec->hadException()) 2490 return JSValue::encode(jsUndefined()); 2491 impl->convert1( );2478 a* value(toa(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined))); 2479 if (exec->hadException()) 2480 return JSValue::encode(jsUndefined()); 2481 impl->convert1(value); 2492 2482 return JSValue::encode(jsUndefined()); 2493 2483 } … … 2503 2493 if (exec->argumentCount() < 1) 2504 2494 return throwVMError(exec, createNotEnoughArgumentsError(exec)); 2505 b* (tob(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));2506 if (exec->hadException()) 2507 return JSValue::encode(jsUndefined()); 2508 impl->convert2( );2495 b* value(tob(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined))); 2496 if (exec->hadException()) 2497 return JSValue::encode(jsUndefined()); 2498 impl->convert2(value); 2509 2499 return JSValue::encode(jsUndefined()); 2510 2500 } … … 2520 2510 if (exec->argumentCount() < 1) 2521 2511 return throwVMError(exec, createNotEnoughArgumentsError(exec)); 2522 d* (tod(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));2523 if (exec->hadException()) 2524 return JSValue::encode(jsUndefined()); 2525 impl->convert4( );2512 d* value(tod(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined))); 2513 if (exec->hadException()) 2514 return JSValue::encode(jsUndefined()); 2515 impl->convert4(value); 2526 2516 return JSValue::encode(jsUndefined()); 2527 2517 } … … 2537 2527 if (exec->argumentCount() < 1) 2538 2528 return throwVMError(exec, createNotEnoughArgumentsError(exec)); 2539 e* (toe(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined)));2540 if (exec->hadException()) 2541 return JSValue::encode(jsUndefined()); 2542 impl->convert5( );2529 e* value(toe(MAYBE_MISSING_PARAMETER(exec, 0, DefaultIsUndefined))); 2530 if (exec->hadException()) 2531 return JSValue::encode(jsUndefined()); 2532 impl->convert5(value); 2543 2533 return JSValue::encode(jsUndefined()); 2544 2534 } -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h
r128442 r129723 155 155 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVoidMethod(JSC::ExecState*); 156 156 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVoidMethodWithArgs(JSC::ExecState*); 157 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunction Method(JSC::ExecState*);158 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunction MethodWithArgs(JSC::ExecState*);157 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionLongMethod(JSC::ExecState*); 158 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionLongMethodWithArgs(JSC::ExecState*); 159 159 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionObjMethod(JSC::ExecState*); 160 160 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionObjMethodWithArgs(JSC::ExecState*); … … 229 229 JSC::JSValue jsTestObjUnsignedShortAttr(JSC::ExecState*, JSC::JSValue, JSC::PropertyName); 230 230 void setJSTestObjUnsignedShortAttr(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 231 JSC::JSValue jsTestObj Attr(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);232 void setJSTestObj Attr(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);231 JSC::JSValue jsTestObjLongAttr(JSC::ExecState*, JSC::JSValue, JSC::PropertyName); 232 void setJSTestObjLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); 233 233 JSC::JSValue jsTestObjLongLongAttr(JSC::ExecState*, JSC::JSValue, JSC::PropertyName); 234 234 void setJSTestObjLongLongAttr(JSC::ExecState*, JSC::JSObject*, JSC::JSValue); -
trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.h
r128248 r129723 71 71 @property short shortAttr; 72 72 @property unsigned short unsignedShortAttr; 73 @property long longAttr;73 @property int longAttr; 74 74 @property long long longLongAttr; 75 75 @property unsigned long long unsignedLongLongAttr; … … 118 118 119 119 - (void)voidMethod; 120 - (void)voidMethodWithArgs:( long long)Arg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg;121 - ( long long)Method;122 - ( long long)MethodWithArgs:(long long)Arg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg;120 - (void)voidMethodWithArgs:(int)longArg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg; 121 - (int)longMethod; 122 - (int)longMethodWithArgs:(int)longArg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg; 123 123 - (DOMTestObj *)objMethod; 124 - (DOMTestObj *)objMethodWithArgs:( long long)Arg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg;124 - (DOMTestObj *)objMethodWithArgs:(int)longArg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg; 125 125 - (DOMTestObj *)methodThatRequiresAllArgsAndThrows:(NSString *)strArg objArg:(DOMTestObj *)objArg; 126 126 - (void)serializedValue:(NSString *)serializedArg; … … 129 129 - (void)methodWithException; 130 130 - (void)customMethod; 131 - (void)customMethodWithArgs:( long long)Arg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg;131 - (void)customMethodWithArgs:(int)longArg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg; 132 132 - (void)addEventListener:(NSString *)type listener:(id <DOMEventListener>)listener useCapture:(BOOL)useCapture; 133 133 - (void)removeEventListener:(NSString *)type listener:(id <DOMEventListener>)listener useCapture:(BOOL)useCapture; … … 166 166 #endif 167 167 - (DOMSVGDocument *)getSVGDocument; 168 - (void)convert1:(DOMa *) ;169 - (void)convert2:(DOMb *) ;170 - (void)convert4:(DOMd *) ;171 - (void)convert5:(DOMe *) ;168 - (void)convert1:(DOMa *)value; 169 - (void)convert2:(DOMb *)value; 170 - (void)convert4:(DOMd *)value; 171 - (void)convert5:(DOMe *)value; 172 172 - (DOMSVGPoint *)mutablePointFunction; 173 173 - (DOMSVGPoint *)immutablePointFunction; -
trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMTestObj.mm
r128248 r129723 141 141 } 142 142 143 - ( long long)Attr144 { 145 WebCore::JSMainThreadNullState state; 146 return IMPL-> attr();147 } 148 149 - (void)set Attr:(long long)newAttr150 { 151 WebCore::JSMainThreadNullState state; 152 IMPL->set Attr(newAttr);143 - (int)longAttr 144 { 145 WebCore::JSMainThreadNullState state; 146 return IMPL->longAttr(); 147 } 148 149 - (void)setLongAttr:(int)newLongAttr 150 { 151 WebCore::JSMainThreadNullState state; 152 IMPL->setLongAttr(newLongAttr); 153 153 } 154 154 … … 349 349 { 350 350 WebCore::JSMainThreadNullState state; 351 WebCore::ExceptionCode ec = 0; 352 IMPL->setAttrWithGetterException(newAttrWithGetterException, ec); 353 WebCore::raiseOnDOMError(ec); 351 IMPL->setAttrWithGetterException(newAttrWithGetterException); 354 352 } 355 353 … … 380 378 { 381 379 WebCore::JSMainThreadNullState state; 382 WebCore::ExceptionCode ec = 0; 383 IMPL->setStringAttrWithGetterException(newStringAttrWithGetterException, ec); 384 WebCore::raiseOnDOMError(ec); 380 IMPL->setStringAttrWithGetterException(newStringAttrWithGetterException); 385 381 } 386 382 … … 451 447 ASSERT(newWithScriptStateAttributeRaises); 452 448 453 WebCore::ExceptionCode ec = 0; 454 IMPL->setWithScriptStateAttributeRaises(core(newWithScriptStateAttributeRaises), ec); 455 WebCore::raiseOnDOMError(ec); 449 IMPL->setWithScriptStateAttributeRaises(core(newWithScriptStateAttributeRaises)); 456 450 } 457 451 … … 470 464 ASSERT(newWithScriptExecutionContextAttributeRaises); 471 465 472 WebCore::ExceptionCode ec = 0; 473 IMPL->setWithScriptExecutionContextAttributeRaises(core(newWithScriptExecutionContextAttributeRaises), ec); 474 WebCore::raiseOnDOMError(ec); 466 IMPL->setWithScriptExecutionContextAttributeRaises(core(newWithScriptExecutionContextAttributeRaises)); 475 467 } 476 468 … … 503 495 ASSERT(newWithScriptExecutionContextAndScriptStateAttributeRaises); 504 496 505 WebCore::ExceptionCode ec = 0; 506 IMPL->setWithScriptExecutionContextAndScriptStateAttributeRaises(core(newWithScriptExecutionContextAndScriptStateAttributeRaises), ec); 507 WebCore::raiseOnDOMError(ec); 497 IMPL->setWithScriptExecutionContextAndScriptStateAttributeRaises(core(newWithScriptExecutionContextAndScriptStateAttributeRaises)); 508 498 } 509 499 … … 740 730 } 741 731 742 - (void)voidMethodWithArgs:( long long)Arg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg743 { 744 WebCore::JSMainThreadNullState state; 745 IMPL->voidMethodWithArgs( Arg, strArg, core(objArg));746 } 747 748 - ( long long)Method749 { 750 WebCore::JSMainThreadNullState state; 751 return IMPL-> method();752 } 753 754 - ( long long)MethodWithArgs:(long long)Arg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg755 { 756 WebCore::JSMainThreadNullState state; 757 return IMPL-> methodWithArgs(Arg, strArg, core(objArg));732 - (void)voidMethodWithArgs:(int)longArg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg 733 { 734 WebCore::JSMainThreadNullState state; 735 IMPL->voidMethodWithArgs(longArg, strArg, core(objArg)); 736 } 737 738 - (int)longMethod 739 { 740 WebCore::JSMainThreadNullState state; 741 return IMPL->longMethod(); 742 } 743 744 - (int)longMethodWithArgs:(int)longArg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg 745 { 746 WebCore::JSMainThreadNullState state; 747 return IMPL->longMethodWithArgs(longArg, strArg, core(objArg)); 758 748 } 759 749 … … 764 754 } 765 755 766 - (DOMTestObj *)objMethodWithArgs:( long long)Arg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg767 { 768 WebCore::JSMainThreadNullState state; 769 return kit(WTF::getPtr(IMPL->objMethodWithArgs( Arg, strArg, core(objArg))));756 - (DOMTestObj *)objMethodWithArgs:(int)longArg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg 757 { 758 WebCore::JSMainThreadNullState state; 759 return kit(WTF::getPtr(IMPL->objMethodWithArgs(longArg, strArg, core(objArg)))); 770 760 } 771 761 … … 811 801 } 812 802 813 - (void)customMethodWithArgs:( long long)Arg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg814 { 815 WebCore::JSMainThreadNullState state; 816 IMPL->customMethodWithArgs( Arg, strArg, core(objArg));803 - (void)customMethodWithArgs:(int)longArg strArg:(NSString *)strArg objArg:(DOMTestObj *)objArg 804 { 805 WebCore::JSMainThreadNullState state; 806 IMPL->customMethodWithArgs(longArg, strArg, core(objArg)); 817 807 } 818 808 … … 1006 996 } 1007 997 1008 - (void)convert1:(DOMa *) 1009 { 1010 WebCore::JSMainThreadNullState state; 1011 IMPL->convert1(core( ));1012 } 1013 1014 - (void)convert2:(DOMb *) 1015 { 1016 WebCore::JSMainThreadNullState state; 1017 IMPL->convert2(core( ));1018 } 1019 1020 - (void)convert4:(DOMd *) 1021 { 1022 WebCore::JSMainThreadNullState state; 1023 IMPL->convert4(core( ));1024 } 1025 1026 - (void)convert5:(DOMe *) 1027 { 1028 WebCore::JSMainThreadNullState state; 1029 IMPL->convert5(core( ));998 - (void)convert1:(DOMa *)value 999 { 1000 WebCore::JSMainThreadNullState state; 1001 IMPL->convert1(core(value)); 1002 } 1003 1004 - (void)convert2:(DOMb *)value 1005 { 1006 WebCore::JSMainThreadNullState state; 1007 IMPL->convert2(core(value)); 1008 } 1009 1010 - (void)convert4:(DOMd *)value 1011 { 1012 WebCore::JSMainThreadNullState state; 1013 IMPL->convert4(core(value)); 1014 } 1015 1016 - (void)convert5:(DOMe *)value 1017 { 1018 WebCore::JSMainThreadNullState state; 1019 IMPL->convert5(core(value)); 1030 1020 } 1031 1021 -
trunk/Source/WebCore/bindings/scripts/test/TestObj.idl
r128788 r129723 52 52 attribute [V8MeasureAs=TestFeature] TestObj testObjAttr; 53 53 54 JS, V855 54 // WK_ucfirst, WK_lcfirst exceptional cases. 56 55 attribute TestObj XMLObjAttr; … … 227 226 raises(DOMException); 228 227 229 void convert1(in [TreatReturnedNullStringAs=Null] a );230 void convert2(in [TreatReturnedNullStringAs=Undefined] b );231 void convert4(in [TreatNullAs=NullString] d );232 void convert5(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] e );228 void convert1(in [TreatReturnedNullStringAs=Null] a value); 229 void convert2(in [TreatReturnedNullStringAs=Undefined] b value); 230 void convert4(in [TreatNullAs=NullString] d value); 231 void convert5(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] e value); 233 232 234 233 attribute SVGPoint mutablePoint; -
trunk/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp
r128788 r129723 162 162 } 163 163 164 static v8::Handle<v8::Value> AttrAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)165 { 166 INC_STATS("DOM.TestObj. Attr._get");167 TestObj* imp = V8TestObj::toNative(info.Holder()); 168 return v8 ::Number::New(static_cast<double>(imp->attr()));169 } 170 171 static void AttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)172 { 173 INC_STATS("DOM.TestObj. Attr._set");174 TestObj* imp = V8TestObj::toNative(info.Holder()); 175 long long v = toInt64(value);176 imp->set Attr(WTF::getPtr(v));164 static v8::Handle<v8::Value> longAttrAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) 165 { 166 INC_STATS("DOM.TestObj.longAttr._get"); 167 TestObj* imp = V8TestObj::toNative(info.Holder()); 168 return v8Integer(imp->longAttr(), info.GetIsolate()); 169 } 170 171 static void longAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) 172 { 173 INC_STATS("DOM.TestObj.longAttr._set"); 174 TestObj* imp = V8TestObj::toNative(info.Holder()); 175 int v = toInt32(value); 176 imp->setLongAttr(v); 177 177 return; 178 178 } … … 452 452 TestObj* imp = V8TestObj::toNative(info.Holder()); 453 453 int v = toInt32(value); 454 ExceptionCode ec = 0; 455 imp->setAttrWithGetterException(v, ec); 456 if (UNLIKELY(ec)) 457 setDOMException(ec, info.GetIsolate()); 454 imp->setAttrWithGetterException(v); 458 455 return; 459 456 } … … 494 491 TestObj* imp = V8TestObj::toNative(info.Holder()); 495 492 STRING_TO_V8PARAMETER_EXCEPTION_BLOCK_VOID(V8Parameter<>, v, value); 496 ExceptionCode ec = 0; 497 imp->setStringAttrWithGetterException(v, ec); 498 if (UNLIKELY(ec)) 499 setDOMException(ec, info.GetIsolate()); 493 imp->setStringAttrWithGetterException(v); 500 494 return; 501 495 } … … 583 577 TestObj* imp = V8TestObj::toNative(info.Holder()); 584 578 TestObj* v = V8TestObj::HasInstance(value) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(value)) : 0; 585 ExceptionCode ec = 0;586 579 ScriptState* state = ScriptState::current(); 587 580 if (!state) 588 581 return; 589 imp->setWithScriptStateAttributeRaises(state, WTF::getPtr(v), ec); 590 if (UNLIKELY(ec)) 591 setDOMException(ec, info.GetIsolate()); 582 imp->setWithScriptStateAttributeRaises(state, WTF::getPtr(v)); 592 583 if (state.hadException()) 593 584 throwError(state.exception(), info.GetIsolate()); … … 612 603 TestObj* imp = V8TestObj::toNative(info.Holder()); 613 604 TestObj* v = V8TestObj::HasInstance(value) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(value)) : 0; 614 ExceptionCode ec = 0;615 605 ScriptExecutionContext* scriptContext = getScriptExecutionContext(); 616 imp->setWithScriptExecutionContextAttributeRaises(scriptContext, WTF::getPtr(v), ec); 617 if (UNLIKELY(ec)) 618 setDOMException(ec, info.GetIsolate()); 606 imp->setWithScriptExecutionContextAttributeRaises(scriptContext, WTF::getPtr(v)); 619 607 return; 620 608 } … … 668 656 TestObj* imp = V8TestObj::toNative(info.Holder()); 669 657 TestObj* v = V8TestObj::HasInstance(value) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(value)) : 0; 670 ExceptionCode ec = 0;671 658 ScriptState* state = ScriptState::current(); 672 659 if (!state) 673 660 return; 674 661 ScriptExecutionContext* scriptContext = getScriptExecutionContext(); 675 imp->setWithScriptExecutionContextAndScriptStateAttributeRaises(state, scriptContext, WTF::getPtr(v), ec); 676 if (UNLIKELY(ec)) 677 setDOMException(ec, info.GetIsolate()); 662 imp->setWithScriptExecutionContextAndScriptStateAttributeRaises(state, scriptContext, WTF::getPtr(v)); 678 663 if (state.hadException()) 679 664 throwError(state.exception(), info.GetIsolate()); … … 1069 1054 return throwNotEnoughArgumentsError(args.GetIsolate()); 1070 1055 TestObj* imp = V8TestObj::toNative(args.Holder()); 1071 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));1056 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); 1072 1057 STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)); 1073 1058 EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(MAYBE_MISSING_PARAMETER(args, 2, DefaultIsUndefined)) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 2, DefaultIsUndefined))) : 0); 1074 imp->voidMethodWithArgs( Arg, strArg, objArg);1075 return v8Undefined(); 1076 } 1077 1078 static v8::Handle<v8::Value> MethodCallback(const v8::Arguments& args)1079 { 1080 INC_STATS("DOM.TestObj. Method");1081 TestObj* imp = V8TestObj::toNative(args.Holder()); 1082 return v8 ::Number::New(static_cast<double>(imp->Method()));1083 } 1084 1085 static v8::Handle<v8::Value> MethodWithArgsCallback(const v8::Arguments& args)1086 { 1087 INC_STATS("DOM.TestObj. MethodWithArgs");1059 imp->voidMethodWithArgs(longArg, strArg, objArg); 1060 return v8Undefined(); 1061 } 1062 1063 static v8::Handle<v8::Value> longMethodCallback(const v8::Arguments& args) 1064 { 1065 INC_STATS("DOM.TestObj.longMethod"); 1066 TestObj* imp = V8TestObj::toNative(args.Holder()); 1067 return v8Integer(imp->longMethod(), args.GetIsolate()); 1068 } 1069 1070 static v8::Handle<v8::Value> longMethodWithArgsCallback(const v8::Arguments& args) 1071 { 1072 INC_STATS("DOM.TestObj.longMethodWithArgs"); 1088 1073 if (args.Length() < 3) 1089 1074 return throwNotEnoughArgumentsError(args.GetIsolate()); 1090 1075 TestObj* imp = V8TestObj::toNative(args.Holder()); 1091 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));1076 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); 1092 1077 STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)); 1093 1078 EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(MAYBE_MISSING_PARAMETER(args, 2, DefaultIsUndefined)) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 2, DefaultIsUndefined))) : 0); 1094 return v8 ::Number::New(static_cast<double>(imp->MethodWithArgs(Arg, strArg, objArg)));1079 return v8Integer(imp->longMethodWithArgs(longArg, strArg, objArg), args.GetIsolate()); 1095 1080 } 1096 1081 … … 1109 1094 return throwNotEnoughArgumentsError(args.GetIsolate()); 1110 1095 TestObj* imp = V8TestObj::toNative(args.Holder()); 1111 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));1096 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); 1112 1097 STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<>, strArg, MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)); 1113 1098 EXCEPTION_BLOCK(TestObj*, objArg, V8TestObj::HasInstance(MAYBE_MISSING_PARAMETER(args, 2, DefaultIsUndefined)) ? V8TestObj::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 2, DefaultIsUndefined))) : 0); 1114 return toV8(imp->objMethodWithArgs( Arg, strArg, objArg), args.Holder(), args.GetIsolate());1099 return toV8(imp->objMethodWithArgs(longArg, strArg, objArg), args.Holder(), args.GetIsolate()); 1115 1100 } 1116 1101 … … 1132 1117 return throwNotEnoughArgumentsError(args.GetIsolate()); 1133 1118 TestObj* imp = V8TestObj::toNative(args.Holder()); 1134 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));1135 return v8Array(imp->methodReturningSequence( Arg), args.GetIsolate());1119 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); 1120 return v8Array(imp->methodReturningSequence(longArg), args.GetIsolate()); 1136 1121 } 1137 1122 … … 1539 1524 return v8Undefined(); 1540 1525 } 1541 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)));1542 imp->overloadedMethod(objArg, Arg);1526 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined))); 1527 imp->overloadedMethod(objArg, longArg); 1543 1528 return v8Undefined(); 1544 1529 } … … 1561 1546 return throwNotEnoughArgumentsError(args.GetIsolate()); 1562 1547 TestObj* imp = V8TestObj::toNative(args.Holder()); 1563 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));1564 imp->overloadedMethod( Arg);1548 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); 1549 imp->overloadedMethod(longArg); 1565 1550 return v8Undefined(); 1566 1551 } … … 1747 1732 return throwNotEnoughArgumentsError(args.GetIsolate()); 1748 1733 TestObj* imp = V8TestObj::toNative(args.Holder()); 1749 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));1750 imp->enabledAtRuntimeMethod1( Arg);1734 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); 1735 imp->enabledAtRuntimeMethod1(longArg); 1751 1736 return v8Undefined(); 1752 1737 } … … 1758 1743 return throwNotEnoughArgumentsError(args.GetIsolate()); 1759 1744 TestObj* imp = V8TestObj::toNative(args.Holder()); 1760 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));1761 imp->enabledAtRuntimeMethod2( Arg);1745 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); 1746 imp->enabledAtRuntimeMethod2(longArg); 1762 1747 return v8Undefined(); 1763 1748 } … … 1769 1754 return throwNotEnoughArgumentsError(args.GetIsolate()); 1770 1755 TestObj* imp = V8TestObj::toNative(args.Holder()); 1771 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));1772 imp->enabledPerContextMethod1( Arg);1756 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); 1757 imp->enabledPerContextMethod1(longArg); 1773 1758 return v8Undefined(); 1774 1759 } … … 1780 1765 return throwNotEnoughArgumentsError(args.GetIsolate()); 1781 1766 TestObj* imp = V8TestObj::toNative(args.Holder()); 1782 EXCEPTION_BLOCK( long long, Arg, toInt64(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));1783 imp->enabledPerContextMethod2( Arg);1767 EXCEPTION_BLOCK(int, longArg, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); 1768 imp->enabledPerContextMethod2(longArg); 1784 1769 return v8Undefined(); 1785 1770 } … … 1826 1811 return throwNotEnoughArgumentsError(args.GetIsolate()); 1827 1812 TestObj* imp = V8TestObj::toNative(args.Holder()); 1828 EXCEPTION_BLOCK(a*, , V8a::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8a::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0);1829 imp->convert1( );1813 EXCEPTION_BLOCK(a*, value, V8a::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8a::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0); 1814 imp->convert1(value); 1830 1815 return v8Undefined(); 1831 1816 } … … 1837 1822 return throwNotEnoughArgumentsError(args.GetIsolate()); 1838 1823 TestObj* imp = V8TestObj::toNative(args.Holder()); 1839 EXCEPTION_BLOCK(b*, , V8b::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8b::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0);1840 imp->convert2( );1824 EXCEPTION_BLOCK(b*, value, V8b::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8b::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0); 1825 imp->convert2(value); 1841 1826 return v8Undefined(); 1842 1827 } … … 1848 1833 return throwNotEnoughArgumentsError(args.GetIsolate()); 1849 1834 TestObj* imp = V8TestObj::toNative(args.Holder()); 1850 EXCEPTION_BLOCK(d*, , V8d::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8d::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0);1851 imp->convert4( );1835 EXCEPTION_BLOCK(d*, value, V8d::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8d::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0); 1836 imp->convert4(value); 1852 1837 return v8Undefined(); 1853 1838 } … … 1859 1844 return throwNotEnoughArgumentsError(args.GetIsolate()); 1860 1845 TestObj* imp = V8TestObj::toNative(args.Holder()); 1861 EXCEPTION_BLOCK(e*, , V8e::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8e::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0);1862 imp->convert5( );1846 EXCEPTION_BLOCK(e*, value, V8e::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8e::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0); 1847 imp->convert5(value); 1863 1848 return v8Undefined(); 1864 1849 } … … 1925 1910 // Attribute 'unsignedShortAttr' (Type: 'attribute' ExtAttr: '') 1926 1911 {"unsignedShortAttr", TestObjV8Internal::unsignedShortAttrAttrGetter, TestObjV8Internal::unsignedShortAttrAttrSetter, 0 /* no data */, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, 1927 // Attribute ' Attr' (Type: 'attribute' ExtAttr: '')1928 {" Attr", TestObjV8Internal::AttrAttrGetter, TestObjV8Internal::AttrAttrSetter, 0 /* no data */, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},1912 // Attribute 'longAttr' (Type: 'attribute' ExtAttr: '') 1913 {"longAttr", TestObjV8Internal::longAttrAttrGetter, TestObjV8Internal::longAttrAttrSetter, 0 /* no data */, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, 1929 1914 // Attribute 'longLongAttr' (Type: 'attribute' ExtAttr: '') 1930 1915 {"longLongAttr", TestObjV8Internal::longLongAttrAttrGetter, TestObjV8Internal::longLongAttrAttrSetter, 0 /* no data */, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, … … 2041 2026 static const V8DOMConfiguration::BatchedCallback V8TestObjCallbacks[] = { 2042 2027 {"voidMethod", TestObjV8Internal::voidMethodCallback}, 2043 {" Method", TestObjV8Internal::MethodCallback},2028 {"longMethod", TestObjV8Internal::longMethodCallback}, 2044 2029 {"objMethod", TestObjV8Internal::objMethodCallback}, 2045 2030 {"methodReturningSequence", TestObjV8Internal::methodReturningSequenceCallback}, … … 2181 2166 proto->Set(v8::String::NewSymbol("voidMethodWithArgs"), v8::FunctionTemplate::New(TestObjV8Internal::voidMethodWithArgsCallback, v8Undefined(), voidMethodWithArgsSignature)); 2182 2167 2183 // Custom Signature ' MethodWithArgs'2184 const int MethodWithArgsArgc = 3;2185 v8::Handle<v8::FunctionTemplate> MethodWithArgsArgv[MethodWithArgsArgc] = { v8::Handle<v8::FunctionTemplate>(), v8::Handle<v8::FunctionTemplate>(), V8TestObj::GetRawTemplate() };2186 v8::Handle<v8::Signature> MethodWithArgsSignature = v8::Signature::New(desc, MethodWithArgsArgc,MethodWithArgsArgv);2187 proto->Set(v8::String::NewSymbol(" MethodWithArgs"), v8::FunctionTemplate::New(TestObjV8Internal::MethodWithArgsCallback, v8Undefined(),MethodWithArgsSignature));2168 // Custom Signature 'longMethodWithArgs' 2169 const int longMethodWithArgsArgc = 3; 2170 v8::Handle<v8::FunctionTemplate> longMethodWithArgsArgv[longMethodWithArgsArgc] = { v8::Handle<v8::FunctionTemplate>(), v8::Handle<v8::FunctionTemplate>(), V8TestObj::GetRawTemplate() }; 2171 v8::Handle<v8::Signature> longMethodWithArgsSignature = v8::Signature::New(desc, longMethodWithArgsArgc, longMethodWithArgsArgv); 2172 proto->Set(v8::String::NewSymbol("longMethodWithArgs"), v8::FunctionTemplate::New(TestObjV8Internal::longMethodWithArgsCallback, v8Undefined(), longMethodWithArgsSignature)); 2188 2173 2189 2174 // Custom Signature 'objMethodWithArgs'
Note: See TracChangeset
for help on using the changeset viewer.