diff options
Diffstat (limited to 'WebCore/bindings/v8/custom/V8WebGLArrayCustom.cpp')
-rw-r--r-- | WebCore/bindings/v8/custom/V8WebGLArrayCustom.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/WebCore/bindings/v8/custom/V8WebGLArrayCustom.cpp b/WebCore/bindings/v8/custom/V8WebGLArrayCustom.cpp index a92e4f2..e15fa11 100644 --- a/WebCore/bindings/v8/custom/V8WebGLArrayCustom.cpp +++ b/WebCore/bindings/v8/custom/V8WebGLArrayCustom.cpp @@ -33,6 +33,8 @@ #if ENABLE(3D_CANVAS) #include "V8WebGLArray.h" +#include "V8Binding.h" +#include "V8Proxy.h" #include "V8WebGLByteArray.h" #include "V8WebGLFloatArray.h" #include "V8WebGLIntArray.h" @@ -64,6 +66,30 @@ v8::Handle<v8::Value> toV8(WebGLArray* impl) return v8::Handle<v8::Value>(); } +v8::Handle<v8::Value> V8WebGLArray::sliceCallback(const v8::Arguments& args) +{ + INC_STATS("DOM.WebGLArray.slice"); + // Forms: + // * slice(long start, long end); + + WebGLArray* imp = V8WebGLArray::toNative(args.Holder()); + int start, end; + switch (args.Length()) { + case 0: + start = 0; + end = imp->length(); + break; + case 1: + start = toInt32(args[0]); + end = imp->length(); + break; + default: + start = toInt32(args[0]); + end = toInt32(args[1]); + } + return toV8(imp->slice(start, end)); +} + } // namespace WebCore #endif // ENABLE(3D_CANVAS) |