Commit 15bfae52 authored by Jeffrey Wilcke's avatar Jeffrey Wilcke

Merge pull request #876 from obscuren/jsre_fixes

jsre, cmd/geth: updated web3.js and altered settimeout
parents 03473d48 f6e71b57
...@@ -117,12 +117,6 @@ func (js *jsre) apiBindings(f xeth.Frontend) { ...@@ -117,12 +117,6 @@ func (js *jsre) apiBindings(f xeth.Frontend) {
utils.Fatalf("Error loading bignumber.js: %v", err) utils.Fatalf("Error loading bignumber.js: %v", err)
} }
// we need to declare a dummy setTimeout. Otto does not support it
_, err = js.re.Eval("setTimeout = function(cb, delay) {};")
if err != nil {
utils.Fatalf("Error defining setTimeout: %v", err)
}
err = js.re.Compile("ethereum.js", re.Ethereum_JS) err = js.re.Compile("ethereum.js", re.Ethereum_JS)
if err != nil { if err != nil {
utils.Fatalf("Error loading ethereum.js: %v", err) utils.Fatalf("Error loading ethereum.js: %v", err)
......
Subproject commit 3b799d128452639463424c657956ee90a28daec6 Subproject commit 08f3aaea8cad2cf07276d6709e2ee384afe90d3c
This diff is collapsed.
...@@ -143,6 +143,10 @@ func (self *JSRE) runEventLoop() { ...@@ -143,6 +143,10 @@ func (self *JSRE) runEventLoop() {
} }
return otto.UndefinedValue() return otto.UndefinedValue()
} }
self.vm.Set("setTimeout", setTimeout)
self.vm.Set("setInterval", setInterval)
self.vm.Set("clearTimeout", clearTimeout)
self.vm.Set("clearInterval", clearTimeout)
var waitForCallbacks bool var waitForCallbacks bool
...@@ -165,7 +169,7 @@ loop: ...@@ -165,7 +169,7 @@ loop:
_, err := self.vm.Call(`Function.call.call`, nil, arguments...) _, err := self.vm.Call(`Function.call.call`, nil, arguments...)
if err != nil { if err != nil {
break loop fmt.Println("js error:", err, arguments)
} }
if timer.interval { if timer.interval {
timer.timer.Reset(timer.duration) timer.timer.Reset(timer.duration)
...@@ -177,10 +181,6 @@ loop: ...@@ -177,10 +181,6 @@ loop:
} }
case evalReq := <-self.evalQueue: case evalReq := <-self.evalQueue:
// run the code, send the result back // run the code, send the result back
self.vm.Set("setTimeout", setTimeout)
self.vm.Set("setInterval", setInterval)
self.vm.Set("clearTimeout", clearTimeout)
self.vm.Set("clearInterval", clearTimeout)
evalReq.fn(&evalReq.res) evalReq.fn(&evalReq.res)
close(evalReq.done) close(evalReq.done)
if waitForCallbacks && (len(registry) == 0) { if waitForCallbacks && (len(registry) == 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment