Skip to content

Commit ecbb4a5

Browse files
committed
Minimized base64 tables
1 parent e789367 commit ecbb4a5

9 files changed

+50
-46
lines changed

dist/protobuf.js

+22-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js.gz

-116 Bytes
Binary file not shown.

dist/protobuf.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"zuul-local": "zuul --ui tape --no-coverage --concurrency 1 --local 8080 --disable-tunnel -- tests/*.js"
3838
},
3939
"dependencies": {
40-
"@protobufjs/base64": "1.0.1",
40+
"@protobufjs/base64": "1.0.2",
4141
"@protobufjs/codegen": "1.0.1",
4242
"@protobufjs/eventemitter": "1.0.1",
4343
"@protobufjs/pool": "1.0.1",

src/encode.js

+12-10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
"use strict";
22
module.exports = encode;
33

4-
var Enum = require("./enum"),
5-
Writer = require("./writer"),
6-
types = require("./types"),
7-
util = require("./util");
4+
var Enum = require("./enum"),
5+
Writer = require("./writer"),
6+
types = require("./types"),
7+
util = require("./util");
8+
var safeProp = util.safeProp;
89

910
/**
1011
* General purpose message encoder.
@@ -99,17 +100,18 @@ function encode(message, writer) {
99100
*/
100101
/**/
101102
encode.generate = function generate(mtype) {
102-
/* eslint-disable no-unexpected-multiline */
103+
/* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */
103104
var fields = mtype.getFieldsArray();
104105
var oneofs = mtype.getOneofsArray();
105106
var gen = util.codegen("m", "w")
106107
("w||(w=Writer.create())");
107108

109+
var i;
108110
for (var i = 0; i < fields.length; ++i) {
109111
var field = fields[i].resolve(),
110112
type = field.resolvedType instanceof Enum ? "uint32" : field.type,
111113
wireType = types.basic[type],
112-
prop = util.safeProp(field.name);
114+
prop = safeProp(field.name);
113115

114116
// Map fields
115117
if (field.map) {
@@ -185,17 +187,17 @@ encode.generate = function generate(mtype) {
185187

186188
}
187189
}
188-
for (var i = 0; i < oneofs.length; ++i) { gen
190+
for (var i = 0; i < oneofs.length; ++i) {
189191
var oneof = oneofs[i],
190-
prop = util.safeProp(oneof.name);
192+
prop = safeProp(oneof.name);
191193
gen
192194
("switch(m%s){", prop);
193195
var oneofFields = oneof.getFieldsArray();
194196
for (var j = 0; j < oneofFields.length; ++j) {
195197
var field = oneofFields[j],
196198
type = field.resolvedType instanceof Enum ? "uint32" : field.type,
197199
wireType = types.basic[type],
198-
prop = util.safeProp(field.name);
200+
prop = safeProp(field.name);
199201
gen
200202
("case%j:", field.name);
201203

@@ -219,5 +221,5 @@ encode.generate = function generate(mtype) {
219221

220222
return gen
221223
("return w");
222-
/* eslint-enable no-unexpected-multiline */
224+
/* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */
223225
};

src/util/base64/index.js

+9-9
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,14 @@ base64.length = function length(string) {
2323
};
2424

2525
// Base64 encoding table
26-
var b64 = [
27-
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
28-
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102,
29-
103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
30-
119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47
31-
];
26+
var b64 = [];
27+
28+
// Base64 decoding table
29+
var s64 = [];
30+
31+
// 65..90, 97..122, 48..57, 43, 47
32+
for (var i = 0; i < 64;)
33+
s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;
3234

3335
/**
3436
* Encodes a buffer to a base64 encoded string.
@@ -38,7 +40,7 @@ var b64 = [
3840
* @returns {string} Base64 encoded string
3941
*/
4042
base64.encode = function encode(buffer, start, end) {
41-
var string = new Array(Math.ceil((end - start) / 3) * 4);
43+
var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);
4244
var i = 0, // output index
4345
j = 0, // goto index
4446
t; // temporary
@@ -71,8 +73,6 @@ base64.encode = function encode(buffer, start, end) {
7173
return String.fromCharCode.apply(String, string);
7274
};
7375

74-
// Base64 decoding table
75-
var s64 = []; for (var i = 0; i < b64.length; ++i) s64[b64[i]] = i;
7676
var invalidEncoding = "invalid encoding";
7777

7878
/**

src/util/base64/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@protobufjs/base64",
33
"description": "A minimal base64 implementation for number arrays.",
4-
"version": "1.0.1",
4+
"version": "1.0.2",
55
"author": "Daniel Wirtz <[email protected]>",
66
"repository": {
77
"type": "git",

0 commit comments

Comments
 (0)