From 09023539c499b1bb24600a1ab6661e06ee92224e Mon Sep 17 00:00:00 2001 From: Tj Holowaychuk Date: Wed, 17 Nov 2010 10:01:25 -0800 Subject: [PATCH] Checking instanceof PixelArray --- lib/context2d.js | 3 +-- src/CanvasGradient.cc | 2 -- src/ImageData.cc | 8 ++++++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/context2d.js b/lib/context2d.js index 882ed2e..4161050 100644 --- a/lib/context2d.js +++ b/lib/context2d.js @@ -483,6 +483,5 @@ Context2d.prototype.createImageData = function(width, height){ height = width.height; width = width.width; } - var arr = new PixelArray(width, height); - return new ImageData(arr); + return new ImageData(new PixelArray(width, height)); }; \ No newline at end of file diff --git a/src/CanvasGradient.cc b/src/CanvasGradient.cc index 5419cc2..cf99585 100644 --- a/src/CanvasGradient.cc +++ b/src/CanvasGradient.cc @@ -36,8 +36,6 @@ Handle Gradient::New(const Arguments &args) { HandleScope scope; - // TODO: separate concerns / validate args - // Linear if (4 == args.Length()) { Gradient *grad = new Gradient( diff --git a/src/ImageData.cc b/src/ImageData.cc index 08bed4f..0a814f9 100644 --- a/src/ImageData.cc +++ b/src/ImageData.cc @@ -36,8 +36,12 @@ ImageData::Initialize(Handle target) { Handle ImageData::New(const Arguments &args) { HandleScope scope; - // TODO: arg assertions - PixelArray *arr = ObjectWrap::Unwrap(args[0]->ToObject()); + Local obj = args[0]->ToObject(); + + if (!PixelArray::constructor->HasInstance(obj)) + return ThrowException(Exception::TypeError(String::New("CanvasPixelArray expected"))); + + PixelArray *arr = ObjectWrap::Unwrap(obj); ImageData *imageData = new ImageData(arr); args.This()->Set(String::NewSymbol("data"), args[0]); imageData->Wrap(args.This());