| Index: Source/bindings/scripts/CodeGeneratorV8.pm
|
| diff --git a/Source/bindings/scripts/CodeGeneratorV8.pm b/Source/bindings/scripts/CodeGeneratorV8.pm
|
| index 22d86ff23038cfc49426a04617fbdfdb8a57eac2..06259e0bff70b1b35d304737409898df6b439ee5 100644
|
| --- a/Source/bindings/scripts/CodeGeneratorV8.pm
|
| +++ b/Source/bindings/scripts/CodeGeneratorV8.pm
|
| @@ -306,7 +306,7 @@ sub ParseInterface
|
|
|
| # Step #1: Find the IDL file associated with 'interface'
|
| my $filename = IDLFileForInterface($interfaceName)
|
| - or die("Could NOT find IDL file for interface \"$interfaceName\" $!\n");
|
| + or die("Could NOT find IDL file for interface \"$interfaceName\" $!\n");
|
|
|
| print " | |> Parsing parent IDL \"$filename\" for interface \"$interfaceName\"\n" if $verbose;
|
|
|
| @@ -441,8 +441,6 @@ sub AddIncludesForType
|
| AddToImplIncludes("bindings/v8/SerializedScriptValue.h");
|
| } elsif ($type eq "any" || IsCallbackFunctionType($type)) {
|
| AddToImplIncludes("bindings/v8/ScriptValue.h");
|
| - } elsif ($type eq "ArrayBuffer") {
|
| - AddToImplIncludes("bindings/v8/custom/V8ArrayBufferCustom.h");
|
| } else {
|
| AddToImplIncludes("V8${type}.h");
|
| }
|
| @@ -459,7 +457,7 @@ sub HeaderFilesForInterface
|
| my $implClassName = shift;
|
|
|
| my @includes = ();
|
| - if (IsTypedArrayType($interfaceName) or $interfaceName eq "ArrayBuffer") {
|
| + if (IsTypedArrayType($interfaceName)) {
|
| push(@includes, "wtf/${interfaceName}.h");
|
| } elsif ($interfaceName =~ /SVGPathSeg/) {
|
| $interfaceName =~ s/Abs|Rel//;
|
| @@ -4764,7 +4762,15 @@ END
|
| if (UNLIKELY(wrapper.IsEmpty()))
|
| return wrapper;
|
| END
|
| - if (IsTypedArrayType($interface->name)) {
|
| + if ($interface->name eq "ArrayBuffer") {
|
| + AddToImplIncludes("bindings/v8/custom/V8ArrayBufferCustom.h");
|
| + $code .= <<END;
|
| + if (!impl->hasDeallocationObserver()) {
|
| + v8::V8::AdjustAmountOfExternalAllocatedMemory(impl->byteLength());
|
| + impl->setDeallocationObserver(V8ArrayBufferDeallocationObserver::instance());
|
| + }
|
| +END
|
| + } elsif (IsTypedArrayType($interface->name)) {
|
| AddToImplIncludes("bindings/v8/custom/V8ArrayBufferCustom.h");
|
| $code .= <<END;
|
| if (!impl->buffer()->hasDeallocationObserver()) {
|
| @@ -5033,10 +5039,6 @@ sub GetNativeType
|
|
|
| die "UnionType is not supported" if IsUnionType($type);
|
|
|
| - if ($type eq "ArrayBuffer") {
|
| - return $isParameter ? "ArrayBuffer*" : "RefPtr<ArrayBuffer>";
|
| - }
|
| -
|
| # We need to check [ImplementedAs] extended attribute for wrapper types.
|
| if (IsWrapperType($type)) {
|
| my $interface = ParseInterface($type);
|
| @@ -5130,11 +5132,6 @@ sub JSValueToNative
|
| return "V8DOMWrapper::isDOMWrapper($value) ? toWrapperTypeInfo(v8::Handle<v8::Object>::Cast($value))->toEventTarget(v8::Handle<v8::Object>::Cast($value)) : 0";
|
| }
|
|
|
| - if ($type eq "ArrayBuffer") {
|
| - AddIncludesForType($type);
|
| - return "$value->IsArrayBuffer() ? V8ArrayBuffer::toNative(v8::Handle<v8::ArrayBuffer>::Cast($value)) : 0"
|
| - }
|
| -
|
| if ($type eq "XPathNSResolver") {
|
| return "toXPathNSResolver($value, $getIsolate)";
|
| }
|
| @@ -5166,7 +5163,7 @@ sub CreateCustomSignature
|
| foreach my $parameter (@{$function->parameters}) {
|
| if ($first) { $first = 0; }
|
| else { $code .= ", "; }
|
| - if (IsWrapperType($parameter->type) && $parameter->type ne "ArrayBuffer") {
|
| + if (IsWrapperType($parameter->type)) {
|
| if ($parameter->type eq "XPathNSResolver") {
|
| # Special case for XPathNSResolver. All other browsers accepts a callable,
|
| # so, even though it's against IDL, accept objects here.
|
| @@ -5255,7 +5252,6 @@ sub IsCallbackInterface
|
| {
|
| my $type = shift;
|
| return 0 unless IsWrapperType($type);
|
| - return 0 if $type eq "ArrayBuffer";
|
|
|
| my $idlFile = IDLFileForInterface($type)
|
| or die("Could NOT find IDL file for interface \"$type\"!\n");
|
|
|