⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 101301 in webkit


Ignore:
Timestamp:
Nov 28, 2011, 4:21:09 PM (15 years ago)
Author:
oliver@apple.com
Message:

Fix V8 bindings codegen and add yet more tests for the typed
array bindings.

Location:
trunk/Source/WebCore
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r101300 r101301  
     12011-11-28  Oliver Hunt  <oliver@apple.com>
     2
     3        Fix V8 bindings codegen and add yet more tests for the typed
     4        array bindings.
     5
     6        * bindings/scripts/CodeGeneratorV8.pm:
     7        (AddIncludesForType):
     8        * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
     9        (WebDOMFloat64Array::foo):
     10        * bindings/scripts/test/CPP/WebDOMFloat64Array.h:
     11        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
     12        (webkit_dom_float64array_foo):
     13        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
     14        * bindings/scripts/test/JS/JSFloat64Array.cpp:
     15        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
     16        * bindings/scripts/test/ObjC/DOMFloat64Array.h:
     17        * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
     18        (-[DOMFloat64Array foo:]):
     19        * bindings/scripts/test/TestTypedArray.idl:
     20        * bindings/scripts/test/V8/V8Float64Array.cpp:
     21        (WebCore::Float64ArrayInternal::fooCallback):
     22
    1232011-11-28  Dana Jansens  <danakj@chromium.org>
    224
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm

    r101295 r101301  
    157157    if (IsTypedArrayType($type)) {
    158158        AddToImplIncludes("wtf/${type}.h");
    159         return;
    160159    }
    161160    if (!$codeGenerator->IsPrimitiveType($type) and !$codeGenerator->IsStringType($type) and !$codeGenerator->AvoidInclusionOfType($type) and $type ne "Date") {
  • trunk/Source/WebCore/bindings/scripts/test/CPP/WebDOMFloat64Array.cpp

    r101295 r101301  
    2424#include "Float32Array.h"
    2525#include "Float64Array.h"
     26#include "Int32Array.h"
    2627#include "WebDOMFloat32Array.h"
     28#include "WebDOMInt32Array.h"
    2729#include "WebExceptionHandler.h"
    2830#include <wtf/GetPtr.h>
     
    4446}
    4547
    46 void WebDOMFloat64Array::foo(const WebDOMFloat32Array& array)
     48WebDOMInt32Array WebDOMFloat64Array::foo(const WebDOMFloat32Array& array)
    4749{
    4850    if (!impl())
    49         return;
     51        return WebDOMInt32Array();
    5052
    51     impl()->foo(toWebCore(array));
     53    return toWebKit(WTF::getPtr(impl()->foo(toWebCore(array))));
    5254}
    5355
  • trunk/Source/WebCore/bindings/scripts/test/CPP/WebDOMFloat64Array.h

    r101295 r101301  
    3232
    3333class WebDOMFloat32Array;
     34class WebDOMInt32Array;
    3435
    3536class WebDOMFloat64Array : public WebDOMArrayBufferView {
     
    3940    virtual ~WebDOMFloat64Array() { }
    4041
    41     void foo(const WebDOMFloat32Array& array);
     42    WebDOMInt32Array foo(const WebDOMFloat32Array& array);
    4243
    4344    WTF::Float64Array* impl() const;
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp

    r101295 r101301  
    2727#include "ExceptionCode.h"
    2828#include "Float64Array.h"
     29#include "Int32Array.h"
    2930#include "JSMainThreadExecState.h"
    3031#include "WebKitDOMBinding.h"
     
    3435#include "webkit/WebKitDOMFloat64Array.h"
    3536#include "webkit/WebKitDOMFloat64ArrayPrivate.h"
     37#include "webkit/WebKitDOMInt32Array.h"
     38#include "webkit/WebKitDOMInt32ArrayPrivate.h"
    3639#include "webkitdefines.h"
    3740#include "webkitglobalsprivate.h"
     
    5255} // namespace WebKit //
    5356
    54 void
     57WebKitDOMInt32Array*
    5558webkit_dom_float64array_foo(WebKitDOMFloat64Array* self, WebKitDOMFloat32Array* array)
    5659{
    57     g_return_if_fail(self);
     60    g_return_val_if_fail(self, 0);
    5861    WebCore::JSMainThreadNullState state;
    5962    WebCore::Float64Array * item = WebKit::core(self);
    60     g_return_if_fail(array);
     63    g_return_val_if_fail(array, 0);
    6164    WebCore::Float32Array * converted_array = NULL;
    6265    if (array != NULL) {
    6366        converted_array = WebKit::core(array);
    64         g_return_if_fail(converted_array);
     67        g_return_val_if_fail(converted_array, 0);
    6568    }
    66     item->foo(converted_array);
     69    PassRefPtr<WebCore::Int32Array> g_res = WTF::getPtr(item->foo(converted_array));
     70    WebKitDOMInt32Array* res = WebKit::kit(g_res.get());
     71    return res;
    6772}
    6873
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMFloat64Array.h

    r101295 r101301  
    5252 * @array: A #WebKitDOMFloat32Array
    5353 *
    54  * Returns:
     54 * Returns: (transfer none):
    5555 *
    5656**/
    57 WEBKIT_API void
     57WEBKIT_API WebKitDOMInt32Array*
    5858webkit_dom_float64array_foo(WebKitDOMFloat64Array* self, WebKitDOMFloat32Array* array);
    5959
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSFloat64Array.cpp

    r101295 r101301  
    2525#include "JSDOMBinding.h"
    2626#include "JSFloat32Array.h"
     27#include "JSInt32Array.h"
    2728#include <runtime/Error.h>
    2829#include <runtime/PropertyNameArray.h>
    2930#include <wtf/Float64Array.h>
    3031#include <wtf/GetPtr.h>
     32#include <wtf/Int32Array.h>
    3133
    3234using namespace JSC;
     
    263265    if (exec->hadException())
    264266        return JSValue::encode(jsUndefined());
    265     imp->foo(array);
    266     return JSValue::encode(jsUndefined());
     267
     268    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->foo(array)));
     269    return JSValue::encode(result);
    267270}
    268271
  • trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMFloat64Array.h

    r101295 r101301  
    3030
    3131@class DOMFloat32Array;
     32@class DOMInt32Array;
    3233
    3334@interface DOMFloat64Array : DOMArrayBufferView
    34 - (void)foo:(DOMFloat32Array *)array;
     35- (DOMInt32Array *)foo:(DOMFloat32Array *)array;
    3536@end
    3637
  • trunk/Source/WebCore/bindings/scripts/test/ObjC/DOMFloat64Array.mm

    r101295 r101301  
    3636#import "DOMFloat32ArrayInternal.h"
    3737#import "DOMFloat64ArrayInternal.h"
     38#import "DOMInt32ArrayInternal.h"
    3839#import "DOMNodeInternal.h"
    3940#import "DOMStyleSheetInternal.h"
     
    4142#import "Float32Array.h"
    4243#import "Float64Array.h"
     44#import "Int32Array.h"
    4345#import "JSMainThreadExecState.h"
    4446#import "ThreadCheck.h"
     
    5052@implementation DOMFloat64Array
    5153
    52 - (void)foo:(DOMFloat32Array *)array
     54- (DOMInt32Array *)foo:(DOMFloat32Array *)array
    5355{
    5456    WebCore::JSMainThreadNullState state;
    55     IMPL->foo(core(array));
     57    return kit(WTF::getPtr(IMPL->foo(core(array))));
    5658}
    5759
  • trunk/Source/WebCore/bindings/scripts/test/TestTypedArray.idl

    r101295 r101301  
    3535        DontCheckEnums
    3636    ] Float64Array : ArrayBufferView {
    37         void foo(in Float32Array array);
     37        Int32Array foo(in Float32Array array);
    3838    };
    3939}
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp

    r101295 r101301  
    3030#include "V8DOMWrapper.h"
    3131#include "V8Float32Array.h"
     32#include "V8Int32Array.h"
    3233#include "V8IsolatedContext.h"
    3334#include "V8Proxy.h"
    3435#include <wtf/Float32Array.h>
    3536#include <wtf/Float64Array.h>
     37#include <wtf/GetPtr.h>
     38#include <wtf/Int32Array.h>
     39#include <wtf/RefCounted.h>
     40#include <wtf/RefPtr.h>
    3641#include <wtf/UnusedParam.h>
    3742
     
    5156    Float64Array* imp = V8Float64Array::toNative(args.Holder());
    5257    EXCEPTION_BLOCK(Float32Array*, array, V8Float32Array::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, MissingIsUndefined)) ? V8Float32Array::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, MissingIsUndefined))) : 0);
    53     imp->foo(array);
    54     return v8::Handle<v8::Value>();
     58    return toV8(imp->foo(array));
    5559}
    5660
Note: See TracChangeset for help on using the changeset viewer.