diff --git a/examples/jsx_parser.erl b/examples/jsx_parser.erl
index 836a054..2f47637 100644
--- a/examples/jsx_parser.erl
+++ b/examples/jsx_parser.erl
@@ -20,10 +20,9 @@
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
%% THE SOFTWARE.
--author("alisdairsullivan@yahoo.ca").
-
-module(jsx_parser).
+-author("alisdairsullivan@yahoo.ca").
-export([decode/1, event/2]).
-export([literal/1, string/1, number/1]).
diff --git a/examples/jsx_prettify.erl b/examples/jsx_prettify.erl
index 445b4c3..da6c97b 100644
--- a/examples/jsx_prettify.erl
+++ b/examples/jsx_prettify.erl
@@ -20,10 +20,10 @@
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
%% THE SOFTWARE.
--author("alisdairsullivan@yahoo.ca").
-
-module(jsx_prettify).
+-author("alisdairsullivan@yahoo.ca").
+
-export([pretty/2, jsx_event/2]).
diff --git a/examples/jsx_stream_parser.erl b/examples/jsx_stream_parser.erl
index fb1aaf5..60fc96d 100644
--- a/examples/jsx_stream_parser.erl
+++ b/examples/jsx_stream_parser.erl
@@ -20,10 +20,9 @@
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
%% THE SOFTWARE.
--author("alisdairsullivan@yahoo.ca").
-
-module(jsx_stream_parser).
+-author("alisdairsullivan@yahoo.ca").
-export([decoder/1, event/2]).
@@ -35,6 +34,7 @@ decoder(Opts) ->
catch
throw:{ok, Result} -> Result
; throw:not_found -> not_found
+ ; _:_ -> throw(badarg)
end
end.
diff --git a/src/jsx.erl b/src/jsx.erl
index cefc52a..a965f45 100644
--- a/src/jsx.erl
+++ b/src/jsx.erl
@@ -20,10 +20,9 @@
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
%% THE SOFTWARE.
--author("alisdairsullivan@yahoo.ca").
-
-module(jsx).
+-author("alisdairsullivan@yahoo.ca").
-export([decoder/0, decoder/2, tail_clean/1]).
diff --git a/src/jsx_decoder.erl b/src/jsx_decoder.erl
index 9b7be53..1a18dab 100644
--- a/src/jsx_decoder.erl
+++ b/src/jsx_decoder.erl
@@ -20,10 +20,9 @@
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
%% THE SOFTWARE.
--author("alisdairsullivan@yahoo.ca").
-
-module(jsx_decoder).
+-author("alisdairsullivan@yahoo.ca").
-export([start/4]).
diff --git a/test/jsx_test.erl b/test/jsx_test.erl
index 266778a..432e146 100644
--- a/test/jsx_test.erl
+++ b/test/jsx_test.erl
@@ -20,10 +20,9 @@
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
%% THE SOFTWARE.
--author("alisdairsullivan@yahoo.ca").
-
-module(jsx_test).
+-author("alisdairsullivan@yahoo.ca").
-export([test/1]).
@@ -62,7 +61,8 @@ test_body(TestSpec, Dir) ->
end.
incremental_decode(F, <<>>) ->
- {Result, _} = F(<<>>),
+ {Result, Rest} = F(<<>>),
+ true = tail_clean(Rest),
Result;
incremental_decode(F, <>) ->
case F(<>) of
@@ -77,7 +77,8 @@ decode(F, JSON) ->
G when is_function(G) ->
{Result, <<>>} = G(<<>>),
Result
- ; {Result, _} ->
+ ; {Result, Rest} ->
+ true = tail_clean(Rest),
Result
end.
\ No newline at end of file