diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp index 3046652c2..a3a11a190 100644 --- a/platform/node/src/node_map.cpp +++ b/platform/node/src/node_map.cpp @@ -42,8 +42,8 @@ static const char* releasedMessage() { NodeBackend::NodeBackend() : HeadlessBackend(sharedDisplay()) {} -void NodeBackend::onDidFailLoadingMap() { - throw std::runtime_error("Requires a map style to be a valid style JSON"); +void NodeBackend::onDidFailLoadingMap(std::exception_ptr error) { + std::rethrow_exception(error); } void NodeMap::Init(v8::Local target) { diff --git a/platform/node/src/node_map.hpp b/platform/node/src/node_map.hpp index 122e49144..bfc0a7eab 100644 --- a/platform/node/src/node_map.hpp +++ b/platform/node/src/node_map.hpp @@ -7,6 +7,8 @@ #include #include +#include + #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic ignored "-Wshadow" @@ -18,7 +20,7 @@ namespace node_mbgl { class NodeBackend : public mbgl::HeadlessBackend { public: NodeBackend(); - void onDidFailLoadingMap() final; + void onDidFailLoadingMap(std::exception_ptr) final; }; class NodeMap : public Nan::ObjectWrap, diff --git a/platform/node/test/js/map.test.js b/platform/node/test/js/map.test.js index 145f62ef5..e5c756adb 100644 --- a/platform/node/test/js/map.test.js +++ b/platform/node/test/js/map.test.js @@ -311,11 +311,11 @@ test('Map', function(t) { t.throws(function() { map.load('foo bar'); - }, /Requires a map style to be a valid style JSON/); + }, /Failed to parse style: 1 - Invalid value./); t.throws(function() { map.load('""'); - }, /Requires a map style to be a valid style JSON/); + }, /Failed to parse style: style must be an object/); map.release(); t.end(); @@ -335,7 +335,7 @@ test('Map', function(t) { t.throws(function() { map.load('invalid'); - }, /Requires a map style to be a valid style JSON/); + }, /Failed to parse style: 0 - Invalid value./); }); t.test('accepts an empty stylesheet string', function(t) {