diff --git a/src/Image.cc b/src/Image.cc index d5e8ac9..79ada71 100644 --- a/src/Image.cc +++ b/src/Image.cc @@ -258,7 +258,11 @@ Image::readPNG(void *c, uint8_t *data, unsigned int len) { NAN_GETTER(Image::GetOnload) { NanScope(); Image *img = ObjectWrap::Unwrap(args.This()); - NanReturnValue(img->onload->GetFunction()); + if (img->onload) { + NanReturnValue(img->onload->GetFunction()); + } else { + NanReturnNull(); + } } /* @@ -279,7 +283,11 @@ NAN_SETTER(Image::SetOnload) { NAN_GETTER(Image::GetOnerror) { NanScope(); Image *img = ObjectWrap::Unwrap(args.This()); - NanReturnValue(img->onerror->GetFunction()); + if (img->onerror) { + NanReturnValue(img->onerror->GetFunction()); + } else { + NanReturnNull(); + } } /* diff --git a/test/image.test.js b/test/image.test.js index 3d76f2c..7d08a87 100644 --- a/test/image.test.js +++ b/test/image.test.js @@ -18,6 +18,8 @@ module.exports = { var img = new Image , n = 0; + assert.strictEqual(null, img.onload); + assert.strictEqual(false, img.complete); img.onload = function(){ ++n; @@ -39,6 +41,8 @@ module.exports = { , error , n = 0; + assert.strictEqual(null, img.onerror); + assert.strictEqual(false, img.complete); img.onload = function(){ assert.fail('called onload'); @@ -77,4 +81,4 @@ module.exports = { assert.equal(1, n); } -}; \ No newline at end of file +};