| Index: Source/bindings/scripts/IDLParser.pm
|
| diff --git a/Source/bindings/scripts/IDLParser.pm b/Source/bindings/scripts/IDLParser.pm
|
| index 42c56360172249d02c88e4082e288333a804f150..aaf86501840d24c489d040e5ec273dabd531d236 100644
|
| --- a/Source/bindings/scripts/IDLParser.pm
|
| +++ b/Source/bindings/scripts/IDLParser.pm
|
| @@ -75,6 +75,7 @@ struct( domAttribute => {
|
| struct( domSignature => {
|
| name => '$', # Variable name
|
| type => '$', # Variable type
|
| + specials => '@', # Specials
|
| extendedAttributes => '$', # Extended attributes
|
| isOptional => '$', # Is variable optional (optional T)
|
| isNullable => '$', # Is variable type Nullable (T?)
|
| @@ -1205,12 +1206,13 @@ sub parseSpecialOperation
|
|
|
| my $next = $self->nextToken();
|
| if ($next->value() =~ /$nextSpecials_1/) {
|
| - $self->parseSpecial();
|
| - $self->parseSpecials();
|
| + my @specials = ();
|
| + push(@specials, @{$self->parseSpecials()});
|
| my $returnType = $self->parseReturnType();
|
| my $interface = $self->parseOperationRest($extendedAttributeList);
|
| if (defined ($interface)) {
|
| $interface->signature->type($returnType);
|
| + $interface->signature->specials(\@specials);
|
| }
|
| return $interface;
|
| }
|
| @@ -1220,16 +1222,17 @@ sub parseSpecialOperation
|
| sub parseSpecials
|
| {
|
| my $self = shift;
|
| + my @specials = ();
|
|
|
| while (1) {
|
| my $next = $self->nextToken();
|
| if ($next->value() =~ /$nextSpecials_1/) {
|
| - $self->parseSpecial();
|
| + push(@specials, $self->parseSpecial());
|
| } else {
|
| last;
|
| }
|
| }
|
| - return [];
|
| + return \@specials;
|
| }
|
|
|
| sub parseSpecial
|
|
|