[ML][Train] Fixes for error types of compile() and run()
Fixed error handling for compile() and run() - all errors were casted to
AbortError. After fix, errors reported by native API are casted to
proper Web type if possible.
Added proper handling for null/undefined values passed as options.
[Verification]
modelFile = "/home/owner/media/Documents/test_model.ini"
var Model = tizen.ml.trainer.createModel(modelFile);
Model.compile({loss:"test"}) // InvalidValuesError
// Model.compile({loss:true}) // InvalidValuesError
// Model.compile(null) // success
// Model.compile() // success
sCb = (s) => console.log(s)
eCb = (e) => console.log(e)
Model.run({save_path:"not_a_virutal_path"}, sCb, eCb);
//InvalidValuesError via eCb
// Model.run({save_path:"/not_a_real_path"}, sCb, eCb);
// InvalidValuesError via eCb
// Model.run({epochs: "aaaa"}, sCb, eCb)
// InvalidValuesError via eCb
// Model.run({epochs: true}, sCb, eCb)
// InvalidValuesError via eCb
// Model.run(null, sCb, eCb) // success
// Model.run("abcd", sCb, eCb) // TypeMismatchError
Change-Id: Ibb59f7720048b499ce0d576666fad2d5764637e5