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());