Skip to content

Commit 15bfae5

Browse files
committed
Merge pull request #876 from obscuren/jsre_fixes
jsre, cmd/geth: updated web3.js and altered settimeout
2 parents 03473d4 + f6e71b5 commit 15bfae5

File tree

4 files changed

+8
-14
lines changed

4 files changed

+8
-14
lines changed

cmd/geth/js.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,6 @@ func (js *jsre) apiBindings(f xeth.Frontend) {
117117
utils.Fatalf("Error loading bignumber.js: %v", err)
118118
}
119119

120-
// we need to declare a dummy setTimeout. Otto does not support it
121-
_, err = js.re.Eval("setTimeout = function(cb, delay) {};")
122-
if err != nil {
123-
utils.Fatalf("Error defining setTimeout: %v", err)
124-
}
125-
126120
err = js.re.Compile("ethereum.js", re.Ethereum_JS)
127121
if err != nil {
128122
utils.Fatalf("Error loading ethereum.js: %v", err)

cmd/mist/assets/ext/ethereum.js

jsre/ethereum_js.go

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

jsre/jsre.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@ func (self *JSRE) runEventLoop() {
143143
}
144144
return otto.UndefinedValue()
145145
}
146+
self.vm.Set("setTimeout", setTimeout)
147+
self.vm.Set("setInterval", setInterval)
148+
self.vm.Set("clearTimeout", clearTimeout)
149+
self.vm.Set("clearInterval", clearTimeout)
146150

147151
var waitForCallbacks bool
148152

@@ -165,7 +169,7 @@ loop:
165169
_, err := self.vm.Call(`Function.call.call`, nil, arguments...)
166170

167171
if err != nil {
168-
break loop
172+
fmt.Println("js error:", err, arguments)
169173
}
170174
if timer.interval {
171175
timer.timer.Reset(timer.duration)
@@ -177,10 +181,6 @@ loop:
177181
}
178182
case evalReq := <-self.evalQueue:
179183
// run the code, send the result back
180-
self.vm.Set("setTimeout", setTimeout)
181-
self.vm.Set("setInterval", setInterval)
182-
self.vm.Set("clearTimeout", clearTimeout)
183-
self.vm.Set("clearInterval", clearTimeout)
184184
evalReq.fn(&evalReq.res)
185185
close(evalReq.done)
186186
if waitForCallbacks && (len(registry) == 0) {

0 commit comments

Comments
 (0)