aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/geth/js.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <geffobscura@gmail.com>2016-05-03 19:52:58 +0800
committerJeffrey Wilcke <geffobscura@gmail.com>2016-05-03 19:52:58 +0800
commitd52a693f802ce4445cc02a879646ca5466fb2a06 (patch)
tree0e3a017c071c8996d7470f5477087ee201ce2da2 /cmd/geth/js.go
parent8241fa522772837f0d05511f20caa6da1d5a3209 (diff)
parent258cc73ea970890a5b75bf27197c3a6667f3bc5a (diff)
downloadgo-tangerine-d52a693f802ce4445cc02a879646ca5466fb2a06.tar
go-tangerine-d52a693f802ce4445cc02a879646ca5466fb2a06.tar.gz
go-tangerine-d52a693f802ce4445cc02a879646ca5466fb2a06.tar.bz2
go-tangerine-d52a693f802ce4445cc02a879646ca5466fb2a06.tar.lz
go-tangerine-d52a693f802ce4445cc02a879646ca5466fb2a06.tar.xz
go-tangerine-d52a693f802ce4445cc02a879646ca5466fb2a06.tar.zst
go-tangerine-d52a693f802ce4445cc02a879646ca5466fb2a06.zip
Merge branch 'develop' into release/1.4
Conflicts: cmd/geth/main.go
Diffstat (limited to 'cmd/geth/js.go')
-rw-r--r--cmd/geth/js.go16
1 files changed, 7 insertions, 9 deletions
diff --git a/cmd/geth/js.go b/cmd/geth/js.go
index 767b513c1..2b64303b2 100644
--- a/cmd/geth/js.go
+++ b/cmd/geth/js.go
@@ -123,7 +123,7 @@ func (self *jsre) batch(statement string) {
err := self.re.EvalAndPrettyPrint(statement)
if err != nil {
- fmt.Printf("error: %v", err)
+ fmt.Printf("%v", jsErrorString(err))
}
if self.atexit != nil {
@@ -301,21 +301,19 @@ func (self *jsre) preloadJSFiles(ctx *cli.Context) error {
for _, file := range jsFiles {
filename := common.AbsolutePath(assetPath, strings.TrimSpace(file))
if err := self.re.Exec(filename); err != nil {
- return fmt.Errorf("%s: %v", file, err)
+ return fmt.Errorf("%s: %v", file, jsErrorString(err))
}
}
}
return nil
}
-// exec executes the JS file with the given filename and stops the JSRE
-func (self *jsre) exec(filename string) error {
- if err := self.re.Exec(filename); err != nil {
- self.re.Stop(false)
- return fmt.Errorf("Javascript Error: %v", err)
+// jsErrorString adds a backtrace to errors generated by otto.
+func jsErrorString(err error) string {
+ if ottoErr, ok := err.(*otto.Error); ok {
+ return ottoErr.String()
}
- self.re.Stop(true)
- return nil
+ return err.Error()
}
func (self *jsre) interactive() {