Ignore:
Timestamp:
Feb 21, 2012, 4:49:48 PM (13 years ago)
Author:
[email protected]
Message:

Make TypedArrays be available in commandline jsc
https://bugs.webkit.org/show_bug.cgi?id=79163

Reviewed by Gavin Barraclough.

Adds a compile time option to have jsc support a basic implementation
of the TypedArrays available in WebCore. This lets us test the typed
array logic in the JIT witout having to build webcore.

  • JSCTypedArrayStubs.h: Added.

(JSC):

(GlobalObject::finishCreation):
(GlobalObject):
(GlobalObject::addConstructableFunction):

  • runtime/JSGlobalData.h:

(JSGlobalData):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jsc.cpp

    r108112 r108420  
    3030#include "Interpreter.h"
    3131#include "JSArray.h"
     32#include "JSCTypedArrayStubs.h"
    3233#include "JSFunction.h"
    3334#include "JSLock.h"
     
    194195        addFunction(globalData, "clearSamplingFlags", functionClearSamplingFlags, 1);
    195196#endif
     197       
     198#if ENABLE(COMMANDLINE_TYPEDARRAYS)
     199        addConstructableFunction(globalData, "Uint8Array", constructJSUint8Array, 1);
     200        addConstructableFunction(globalData, "Uint16Array", constructJSUint16Array, 1);
     201        addConstructableFunction(globalData, "Uint32Array", constructJSUint32Array, 1);
     202        addConstructableFunction(globalData, "Int8Array", constructJSInt8Array, 1);
     203        addConstructableFunction(globalData, "Int16Array", constructJSInt16Array, 1);
     204        addConstructableFunction(globalData, "Int32Array", constructJSInt32Array, 1);
     205        addConstructableFunction(globalData, "Float32Array", constructJSFloat32Array, 1);
     206        addConstructableFunction(globalData, "Float64Array", constructJSFloat64Array, 1);
     207#endif
    196208
    197209        JSObject* array = constructEmptyArray(globalExec());
     
    205217        Identifier identifier(globalExec(), name);
    206218        putDirect(globalData, identifier, JSFunction::create(globalExec(), this, arguments, identifier, function));
     219    }
     220   
     221    void addConstructableFunction(JSGlobalData& globalData, const char* name, NativeFunction function, unsigned arguments)
     222    {
     223        Identifier identifier(globalExec(), name);
     224        putDirect(globalData, identifier, JSFunction::create(globalExec(), this, arguments, identifier, function, function));
    207225    }
    208226};
Note: See TracChangeset for help on using the changeset viewer.