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

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

Issue 19230002: Use V8 implementation of TypedArrays and DataView in Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased for relanding Created 7 years, 4 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
« no previous file with comments | « Source/bindings/bindings.gypi ('k') | Source/bindings/tests/results/V8Float64Array.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/scripts/deprecated_code_generator_v8.pm
diff --git a/Source/bindings/scripts/deprecated_code_generator_v8.pm b/Source/bindings/scripts/deprecated_code_generator_v8.pm
index 1ecc85d12b67a509616814fce5ddaeb4d2a2775b..0a668971c72a65c47dc30e17e9a246db403402c7 100644
--- a/Source/bindings/scripts/deprecated_code_generator_v8.pm
+++ b/Source/bindings/scripts/deprecated_code_generator_v8.pm
@@ -426,8 +426,8 @@ 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");
+ } elsif (IsTypedArrayType($type)) {
+ AddToImplIncludes("bindings/v8/custom/V8${type}Custom.h");
} else {
AddToImplIncludes("V8${type}.h");
}
@@ -439,7 +439,7 @@ sub HeaderFilesForInterface
my $implClassName = shift;
my @includes = ();
- if (IsTypedArrayType($interfaceName) or $interfaceName eq "ArrayBuffer") {
+ if (IsTypedArrayType($interfaceName)) {
push(@includes, "wtf/${interfaceName}.h");
} elsif (!SkipIncludeHeader($interfaceName)) {
my $idlFilename = IDLFileForInterface($interfaceName) or die("Could NOT find IDL file for interface \"$interfaceName\" $!\n");
@@ -2727,24 +2727,6 @@ END
$implementation{nameSpaceWebCore}->add($code);
}
-sub GenerateTypedArrayConstructor
-{
- my $interface = shift;
- my $implClassName = GetImplName($interface);
- my $v8ClassName = GetV8ClassName($interface);
-
- my ($nativeType, $arrayType) = GetNativeTypeOfTypedArray($interface);
- AddToImplIncludes("bindings/v8/custom/V8ArrayBufferViewCustom.h");
-
- $implementation{nameSpaceInternal}->add(<<END);
-static void constructor(const v8::FunctionCallbackInfo<v8::Value>& args)
-{
- return constructWebGLArray<$implClassName, ${v8ClassName}, $nativeType>(args, &${v8ClassName}::info, $arrayType);
-}
-
-END
-}
-
sub GenerateNamedConstructor
{
my $function = shift;
@@ -4149,8 +4131,6 @@ END
GenerateConstructor($interface);
} elsif (IsConstructorTemplate($interface, "Event")) {
GenerateEventConstructor($interface);
- } elsif (IsConstructorTemplate($interface, "TypedArray")) {
- GenerateTypedArrayConstructor($interface);
}
}
if (IsConstructable($interface)) {
@@ -5033,8 +5013,8 @@ sub GetNativeType
die "UnionType is not supported" if IsUnionType($type);
- if ($type eq "ArrayBuffer") {
- return $isParameter ? "ArrayBuffer*" : "RefPtr<ArrayBuffer>";
+ if (IsTypedArrayType($type)) {
+ return $isParameter ? "${type}*" : "RefPtr<${type}>";
}
# We need to check [ImplementedAs] extended attribute for wrapper types.
@@ -5162,9 +5142,9 @@ 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") {
+ if (IsTypedArrayType($type)) {
AddIncludesForType($type);
- return "$value->IsArrayBuffer() ? V8ArrayBuffer::toNative(v8::Handle<v8::ArrayBuffer>::Cast($value)) : 0"
+ return "$value->Is${type}() ? V8${type}::toNative(v8::Handle<v8::${type}>::Cast($value)) : 0"
}
if ($type eq "XPathNSResolver") {
@@ -5198,7 +5178,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) && not IsTypedArrayType($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.
@@ -5287,7 +5267,7 @@ sub IsCallbackInterface
{
my $type = shift;
return 0 unless IsWrapperType($type);
- return 0 if $type eq "ArrayBuffer";
+ return 0 if IsTypedArrayType($type);
my $idlFile = IDLFileForInterface($type)
or die("Could NOT find IDL file for interface \"$type\"!\n");
« no previous file with comments | « Source/bindings/bindings.gypi ('k') | Source/bindings/tests/results/V8Float64Array.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698