From 3ee39f28d1abae2fd884c2d3701048f41bcc64b5 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Wed, 22 Jan 2020 15:45:25 +0100 Subject: [PATCH] console: decompress JS libraries during init This speeds up geth startup by 5ms because the asset is only loaded when the console used instead of loading it unconditionally during package init time. --- console/console.go | 7 +++++-- internal/jsre/jsre.go | 6 ------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/console/console.go b/console/console.go index 8bc3916841..0d35db3cc9 100644 --- a/console/console.go +++ b/console/console.go @@ -30,6 +30,7 @@ import ( "github.com/dop251/goja" "github.com/ethereum/go-ethereum/internal/jsre" + "github.com/ethereum/go-ethereum/internal/jsre/deps" "github.com/ethereum/go-ethereum/internal/web3ext" "github.com/ethereum/go-ethereum/rpc" "github.com/mattn/go-colorable" @@ -181,10 +182,12 @@ func (c *Console) initConsoleObject() { } func (c *Console) initWeb3(bridge *bridge) error { - if err := c.jsre.Compile("bignumber.js", string(jsre.BignumberJs)); err != nil { + bnJS := string(deps.MustAsset("bignumber.js")) + web3JS := string(deps.MustAsset("web3.js")) + if err := c.jsre.Compile("bignumber.js", bnJS); err != nil { return fmt.Errorf("bignumber.js: %v", err) } - if err := c.jsre.Compile("web3.js", string(jsre.Web3Js)); err != nil { + if err := c.jsre.Compile("web3.js", web3JS); err != nil { return fmt.Errorf("web3.js: %v", err) } if _, err := c.jsre.Run("var Web3 = require('web3');"); err != nil { diff --git a/internal/jsre/jsre.go b/internal/jsre/jsre.go index aaa51a6eb6..bc8869b254 100644 --- a/internal/jsre/jsre.go +++ b/internal/jsre/jsre.go @@ -28,12 +28,6 @@ import ( "github.com/dop251/goja" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/internal/jsre/deps" -) - -var ( - BignumberJs = deps.MustAsset("bignumber.js") - Web3Js = deps.MustAsset("web3.js") ) // JSRE is a JS runtime environment embedding the goja interpreter.