Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Unified Diff: Source/bindings/scripts/CodeGeneratorV8.pm

Issue 18316003: Revert "Use V8 implementation of ArrayBuffer in Blink." (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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");
« no previous file with comments | « Source/WebKit/chromium/src/WebKit.cpp ('k') | Source/bindings/tests/results/V8TestOverloadedConstructors.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698