Sfoglia il codice sorgente

jsre, cmd/geth: updated web3.js and altered settimeout

obscuren 10 anni fa
parent
commit
351d6b0d44
3 ha cambiato i file con 5 aggiunte e 11 eliminazioni
  1. 0 6
      cmd/geth/js.go
  2. 0 0
      jsre/ethereum_js.go
  3. 5 5
      jsre/jsre.go

+ 0 - 6
cmd/geth/js.go

@@ -117,12 +117,6 @@ func (js *jsre) apiBindings(f xeth.Frontend) {
 		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)
 	if err != nil {
 		utils.Fatalf("Error loading ethereum.js: %v", err)

File diff suppressed because it is too large
+ 0 - 0
jsre/ethereum_js.go


+ 5 - 5
jsre/jsre.go

@@ -143,6 +143,10 @@ func (self *JSRE) runEventLoop() {
 		}
 		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
 
@@ -165,7 +169,7 @@ loop:
 			_, err := self.vm.Call(`Function.call.call`, nil, arguments...)
 
 			if err != nil {
-				break loop
+				fmt.Println("js error:", err, arguments)
 			}
 			if timer.interval {
 				timer.timer.Reset(timer.duration)
@@ -177,10 +181,6 @@ loop:
 			}
 		case evalReq := <-self.evalQueue:
 			// 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)
 			close(evalReq.done)
 			if waitForCallbacks && (len(registry) == 0) {

Some files were not shown because too many files changed in this diff