From 7e36e40b01028ac1b383721c8cb70fcc867ca42a Mon Sep 17 00:00:00 2001 From: Johan Brandhorst Date: Mon, 7 May 2018 23:06:02 +0100 Subject: [PATCH] jspb: Support full 64bit integer ranges The jspb wrapper makes use of the google-protobuf javascript library to encode and decode the protobuf wire format. This commit adds support for encoding and decoding the full 64bit integer ranges to and from the GopherJS types. --- Gopkg.lock | 8 +- jspb/.gitignore | 1 + jspb/Makefile | 4 +- jspb/jspb.inc.js | 2 +- jspb/reader.go | 124 +++++++-- jspb/webpack.config.js | 18 +- jspb/writer.go | 143 +++++++--- test/client/main.go | 81 +++--- vendor/github.com/go-test/deep/LICENSE | 21 ++ vendor/github.com/go-test/deep/deep.go | 352 +++++++++++++++++++++++++ 10 files changed, 643 insertions(+), 111 deletions(-) create mode 100644 vendor/github.com/go-test/deep/LICENSE create mode 100644 vendor/github.com/go-test/deep/deep.go diff --git a/Gopkg.lock b/Gopkg.lock index 9baba15b..189cab9e 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -1,6 +1,12 @@ # This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. +[[projects]] + name = "github.com/go-test/deep" + packages = ["."] + revision = "6592d9cc0a499ad2d5f574fde80a2b5c5cc3b4f5" + version = "v1.0.1" + [[projects]] branch = "master" name = "github.com/golang/protobuf" @@ -233,6 +239,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "5d47778ade6f0b565f3310787b329bc428faff647a471adf5edbfaa96c7d11d0" + inputs-digest = "e5c43393b87232024fb486e50674ed914231ab306de1be76a21a99876844292e" solver-name = "gps-cdcl" solver-version = 1 diff --git a/jspb/.gitignore b/jspb/.gitignore index 3c3629e6..d5f19d89 100644 --- a/jspb/.gitignore +++ b/jspb/.gitignore @@ -1 +1,2 @@ node_modules +package-lock.json diff --git a/jspb/Makefile b/jspb/Makefile index 4c473c6d..dbddfc28 100644 --- a/jspb/Makefile +++ b/jspb/Makefile @@ -1,10 +1,10 @@ all: checkout build checkout: - npm install google-protobuf webpack + npm install google-protobuf webpack-cli webpack build: - ./node_modules/.bin/webpack + ./node_modules/.bin/webpack-cli clean: rm jspb.inc.js diff --git a/jspb/jspb.inc.js b/jspb/jspb.inc.js index 97c530de..7657df08 100644 --- a/jspb/jspb.inc.js +++ b/jspb/jspb.inc.js @@ -1 +1 @@ -!function(e,t){for(var r in t)e[r]=t[r]}(this,function(e){function t(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(module,exports,__webpack_require__){(function(global){var $jscomp={scope:{},getGlobal:function(e){return"undefined"!=typeof window&&window===e?e:void 0!==global?global:e}};$jscomp.global=$jscomp.getGlobal(this),$jscomp.initSymbol=function(){$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol),$jscomp.initSymbol=function(){}},$jscomp.symbolCounter_=0,$jscomp.Symbol=function(e){return"jscomp_symbol_"+e+$jscomp.symbolCounter_++},$jscomp.initSymbolIterator=function(){$jscomp.initSymbol(),$jscomp.global.Symbol.iterator||($jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator")),$jscomp.initSymbolIterator=function(){}},$jscomp.makeIterator=function(e){$jscomp.initSymbolIterator(),$jscomp.initSymbol(),$jscomp.initSymbolIterator();var t=e[Symbol.iterator];if(t)return t.call(e);var r=0;return{next:function(){return rt;)--r in this?this[--e]=this[r]:delete this[e];return this},$jscomp.array.copyWithin$install=function(){$jscomp.array.installHelper_("copyWithin",$jscomp.array.copyWithin)},$jscomp.array.fill=function(e,t,r){var o=this.length||0;for(0>t&&(t=Math.max(0,o+t)),(null==r||r>o)&&(r=o),r=Number(r),0>r&&(r=Math.max(0,o+r)),t=Number(t||0);t>>0))return 32;var t=0;return 0==(4294901760&e)&&(e<<=16,t+=16),0==(4278190080&e)&&(e<<=8,t+=8),0==(4026531840&e)&&(e<<=4,t+=4),0==(3221225472&e)&&(e<<=2,t+=2),0==(2147483648&e)&&t++,t},$jscomp.math.imul=function(e,t){e=Number(e),t=Number(t);var r=65535&e,o=65535&t;return r*o+((e>>>16&65535)*o+r*(t>>>16&65535)<<16>>>0)|0},$jscomp.math.sign=function(e){return e=Number(e),0===e||isNaN(e)?e:0(e=Number(e))&&-.25(e=Number(e))&&-.25e?-t:t},$jscomp.math.acosh=function(e){return e=Number(e),Math.log(e+Math.sqrt(e*e-1))},$jscomp.math.asinh=function(e){if(0===(e=Number(e)))return e;var t=Math.log(Math.abs(e)+Math.sqrt(e*e+1));return 0>e?-t:t},$jscomp.math.atanh=function(e){return e=Number(e),($jscomp.math.log1p(e)-$jscomp.math.log1p(-e))/2},$jscomp.math.hypot=function(e,t,r){e=Number(e),t=Number(t);var o,n,s,i=Math.max(Math.abs(e),Math.abs(t));for(o=2;oi){for(e/=i,t/=i,s=e*e+t*t,o=2;oe?-t:t},$jscomp.math.cbrt=function(e){if(0===e)return e;e=Number(e);var t=Math.pow(Math.abs(e),1/3);return 0>e?-t:t},$jscomp.number=$jscomp.number||{},$jscomp.number.isFinite=function(e){return"number"==typeof e&&(!isNaN(e)&&1/0!==e&&-1/0!==e)},$jscomp.number.isInteger=function(e){return!!$jscomp.number.isFinite(e)&&e===Math.floor(e)},$jscomp.number.isNaN=function(e){return"number"==typeof e&&isNaN(e)},$jscomp.number.isSafeInteger=function(e){return $jscomp.number.isInteger(e)&&Math.abs(e)<=$jscomp.number.MAX_SAFE_INTEGER},$jscomp.number.EPSILON=function(){return Math.pow(2,-52)}(),$jscomp.number.MAX_SAFE_INTEGER=9007199254740991,$jscomp.number.MIN_SAFE_INTEGER=-9007199254740991,$jscomp.object=$jscomp.object||{},$jscomp.object.assign=function(e,t){for(var r=1;ro||1114111=o?t+=String.fromCharCode(o):(o-=65536,t+=String.fromCharCode(o>>>10&1023|55296),t+=String.fromCharCode(1023&o|56320))}return t},$jscomp.string.repeat=function(e){var t=$jscomp.checkStringArgs(this,null,"repeat");if(0>e||1342177279>>=1)&&(t+=t);return r},$jscomp.string.repeat$install=function(){String.prototype.repeat||(String.prototype.repeat=$jscomp.string.repeat)},$jscomp.string.codePointAt=function(e){var t=$jscomp.checkStringArgs(this,null,"codePointAt"),r=t.length;if(0<=(e=Number(e)||0)&&eo||56319e||57343=n},$jscomp.string.startsWith$install=function(){String.prototype.startsWith||(String.prototype.startsWith=$jscomp.string.startsWith)},$jscomp.string.endsWith=function(e,t){var r=$jscomp.checkStringArgs(this,e,"endsWith");e+="",void 0===t&&(t=r.length);for(var o=Math.max(0,Math.min(0|t,r.length)),n=e.length;0=n},$jscomp.string.endsWith$install=function(){String.prototype.endsWith||(String.prototype.endsWith=$jscomp.string.endsWith)};var COMPILED=!0,goog=goog||{};goog.global=this,goog.isDef=function(e){return void 0!==e},goog.exportPath_=function(e,t,r){e=e.split("."),r=r||goog.global,e[0]in r||!r.execScript||r.execScript("var "+e[0]);for(var o;e.length&&(o=e.shift());)!e.length&&goog.isDef(t)?r[o]=t:r=r[o]?r[o]:r[o]={}},goog.define=function(e,t){var r=t;COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,e)?r=goog.global.CLOSURE_UNCOMPILED_DEFINES[e]:goog.global.CLOSURE_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,e)&&(r=goog.global.CLOSURE_DEFINES[e])),goog.exportPath_(e,r)},goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(e){if(!COMPILED&&goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');goog.constructNamespace_(e)},goog.constructNamespace_=function(e,t){if(!COMPILED){delete goog.implicitNamespaces_[e];for(var r=e;(r=r.substring(0,r.lastIndexOf(".")))&&!goog.getObjectByName(r);)goog.implicitNamespaces_[r]=!0}goog.exportPath_(e,t)},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(e){if(!goog.isString(e)||!e||-1==e.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+e+" has been loaded incorrectly.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");if(goog.moduleLoaderState_.moduleName=e,!COMPILED){if(goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');delete goog.implicitNamespaces_[e]}},goog.module.get=function(e){return goog.module.getInternal_(e)},goog.module.getInternal_=function(e){if(!COMPILED)return goog.isProvided_(e)?e in goog.loadedModules_?goog.loadedModules_[e]:goog.getObjectByName(e):null},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_},goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.setTestOnly=function(e){if(goog.DISALLOW_TEST_ONLY_CODE)throw e=e||"",Error("Importing test-only code into non-debug environment"+(e?": "+e:"."))},goog.forwardDeclare=function(e){},COMPILED||(goog.isProvided_=function(e){return e in goog.loadedModules_||!goog.implicitNamespaces_[e]&&goog.isDefAndNotNull(goog.getObjectByName(e))},goog.implicitNamespaces_={"goog.module":!0}),goog.getObjectByName=function(e,t){for(var r,o=e.split("."),n=t||goog.global;r=o.shift();){if(!goog.isDefAndNotNull(n[r]))return null;n=n[r]}return n},goog.globalize=function(e,t){var r,o=t||goog.global;for(r in e)o[r]=e[r]},goog.addDependency=function(e,t,r,o){if(goog.DEPENDENCIES_ENABLED){var n;e=e.replace(/\\/g,"/");for(var s=goog.dependencies_,i=0;n=t[i];i++)s.nameToPath[n]=e,s.pathIsModule[e]=!!o;for(o=0;t=r[o];o++)e in s.requires||(s.requires[e]={}),s.requires[e][t]=!0}},goog.ENABLE_DEBUG_LOADER=!0,goog.logToConsole_=function(e){goog.global.console&&goog.global.console.error(e)},goog.require=function(e){if(!COMPILED){if(goog.ENABLE_DEBUG_LOADER&&goog.IS_OLD_IE_&&goog.maybeProcessDeferredDep_(e),goog.isProvided_(e))return goog.isInModuleLoader_()?goog.module.getInternal_(e):null;if(goog.ENABLE_DEBUG_LOADER){var t=goog.getPathFromDeps_(e);if(t)return goog.writeScripts_(t),null}throw e="goog.require could not find: "+e,goog.logToConsole_(e),Error(e)}},goog.basePath="",goog.nullFunction=function(){},goog.abstractMethod=function(){throw Error("unimplemented abstract method")},goog.addSingletonGetter=function(e){e.getInstance=function(){return e.instance_?e.instance_:(goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=e),e.instance_=new e)}},goog.instantiatedSingletons_=[],goog.LOAD_MODULE_USING_EVAL=!0,goog.SEAL_MODULE_EXPORTS=goog.DEBUG,goog.loadedModules_={},goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER,goog.DEPENDENCIES_ENABLED&&(goog.dependencies_={pathIsModule:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}},goog.inHtmlDocument_=function(){var e=goog.global.document;return null!=e&&"write"in e},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var e=goog.global.document.getElementsByTagName("SCRIPT"),t=e.length-1;0<=t;--t){var r=e[t].src,o=r.lastIndexOf("?"),o=-1==o?r.length:o;if("base.js"==r.substr(o-7,7)){goog.basePath=r.substr(0,o-7);break}}},goog.importScript_=function(e,t){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_)(e,t)&&(goog.dependencies_.written[e]=!0)},goog.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.importModule_=function(e){goog.importScript_("",'goog.retrieveAndExecModule_("'+e+'");')&&(goog.dependencies_.written[e]=!0)},goog.queuedModules_=[],goog.wrapModule_=function(e,t){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(t+"\n//# sourceURL="+e+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+t+"\n;return exports});\n//# sourceURL="+e+"\n"},goog.loadQueuedModules_=function(){var e=goog.queuedModules_.length;if(0<\/script>')},goog.appendScriptSrcNode_=function(e){var t=goog.global.document,r=t.createElement("script");r.type="text/javascript",r.src=e,r.defer=!1,r.async=!1,t.head.appendChild(r)},goog.writeScriptTag_=function(e,t){if(goog.inHtmlDocument_()){var r=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==r.readyState){if(/\bdeps.js$/.test(e))return!1;throw Error('Cannot write "'+e+'" after document load')}var o=goog.IS_OLD_IE_;return void 0===t?o?(o=" onreadystatechange='goog.onScriptLoad_(this, "+ ++goog.lastNonModuleScriptIndex_+")' ",r.write('