@@ -100,18 +100,18 @@ data FFI = FFICode Char | FFIArg Int | FFIError String
100100ffi :: String -> [String] -> String
101101ffi code args = let parsed = ffiParse code in
102102 case ffiError parsed of
103− Just err -> compileJS $ jsError err
103+ Just err -> error err
104104 Nothing -> renderFFI parsed args
105105 where
106106 ffiParse :: String -> [FFI]
107107 ffiParse "" = []
108− ffiParse ['%'] = [FFIError "Invalid positional argument"]
108+ ffiParse ['%'] = [FFIError $ "FFI - Invalid positional argument"]
109109 ffiParse ('%':'%':ss) = FFICode '%' : ffiParse ss
110110 ffiParse ('%':s:ss)
111111 | isDigit s =
112112 FFIArg (read $ s : takeWhile isDigit ss) : ffiParse (dropWhile isDigit ss)
113113 | otherwise =
114− [FFIError "Invalid positional argument"]
114+ [FFIError $ "FFI - Invalid positional argument"]
115115 ffiParse (s:ss) = FFICode s : ffiParse ss
116116
117117
@@ -126,7 +126,7 @@ ffi code args = let parsed = ffiParse code in
126126 renderFFI ((FFICode c) : fs) args = c : renderFFI fs args
127127 renderFFI ((FFIArg i) : fs) args
128128 | i < length args && i >= 0 = args !! i ++ renderFFI fs args
129− | otherwise = "Argument index out of bounds"
129+ | otherwise = error "FFI - Argument index out of bounds"
130130
131131
132132compileJS :: JS -> String