Skip to content

Commit 2ac4776

Browse files
committed
issue #148 - replaced div ops with hard-coded values to control FP rounding errors
1 parent 067e734 commit 2ac4776

File tree

3 files changed

+55
-43
lines changed

3 files changed

+55
-43
lines changed

dist/bwip-js-min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/bwip-js.js

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//
33
// http://metafloor.github.io/bwip-js
44
//
5-
// Copyright (c) 2011-2019 Mark Warren
5+
// Copyright (c) 2011-2020 Mark Warren
66
//
77
// This file contains code automatically generated from:
88
// Barcode Writer in Pure PostScript - Version 2019-11-08
@@ -717,6 +717,12 @@ function BWIPP() {
717717
function $nt(a) {
718718
return typeof a == 'boolean' ? !a : ~a;
719719
}
720+
// emulate single-precision floating-point (pseudo-polyfill for Math.fround)
721+
var $f = (function(fa) {
722+
return function(v) {
723+
return fa[0] = v, fa[0];
724+
};
725+
})(new Float32Array(1));
720726

721727
// DEBUG-BEGIN
722728
function $stack() {
@@ -17191,18 +17197,18 @@ function BWIPP() {
1719117197
if ($k[--$j]) {
1719217198
/*15833*/
1719317199
var _AS = $k[--$j]; /*15833*/
17194-
$k[$j++] = _AS + (2 / 3); /*15833*/
17200+
$k[$j++] = _AS + 0.66666667; /*15833*/
1719517201
} else {
1719617202
/*15833*/
1719717203
$1.isEA(); /*15833*/
1719817204
if ($k[--$j]) {
1719917205
/*15833*/
1720017206
var _AU = $k[--$j]; /*15833*/
17201-
$k[$j++] = _AU + (8 / 3); /*15833*/
17207+
$k[$j++] = _AU + 2.66666667; /*15833*/
1720217208
} else {
1720317209
/*15833*/
1720417210
var _AV = $k[--$j]; /*15833*/
17205-
$k[$j++] = _AV + (4 / 3); /*15833*/
17211+
$k[$j++] = _AV + 1.33333334; /*15833*/
1720617212
} /*15833*/
1720717213
} /*15833*/
1720817214
var _AW = $k[--$j]; /*15833*/
@@ -17213,18 +17219,18 @@ function BWIPP() {
1721317219
if ($k[--$j]) {
1721417220
/*15834*/
1721517221
var _Aa = $k[--$j]; /*15834*/
17216-
$k[$j++] = _Aa + (2 / 3); /*15834*/
17222+
$k[$j++] = _Aa + 0.66666667; /*15834*/
1721717223
} else {
1721817224
/*15834*/
1721917225
$1.isEA(); /*15834*/
1722017226
if ($k[--$j]) {
1722117227
/*15834*/
1722217228
var _Ac = $k[--$j]; /*15834*/
17223-
$k[$j++] = _Ac + (8 / 3); /*15834*/
17229+
$k[$j++] = _Ac + 2.66666667; /*15834*/
1722417230
} else {
1722517231
/*15834*/
1722617232
var _Ad = $k[--$j]; /*15834*/
17227-
$k[$j++] = _Ad + (4 / 3); /*15834*/
17233+
$k[$j++] = _Ad + 1.33333334; /*15834*/
1722817234
} /*15834*/
1722917235
} /*15834*/
1723017236
var _Ae = $k[--$j]; /*15834*/
@@ -17235,18 +17241,18 @@ function BWIPP() {
1723517241
if ($k[--$j]) {
1723617242
/*15835*/
1723717243
var _Ai = $k[--$j]; /*15835*/
17238-
$k[$j++] = _Ai + (2 / 3); /*15835*/
17244+
$k[$j++] = _Ai + 0.66666667; /*15835*/
1723917245
} else {
1724017246
/*15835*/
1724117247
$1.isEA(); /*15835*/
1724217248
if ($k[--$j]) {
1724317249
/*15835*/
1724417250
var _Ak = $k[--$j]; /*15835*/
17245-
$k[$j++] = _Ak + (13 / 3); /*15835*/
17251+
$k[$j++] = _Ak + 4.33333334; /*15835*/
1724617252
} else {
1724717253
/*15835*/
1724817254
var _Al = $k[--$j]; /*15835*/
17249-
$k[$j++] = _Al + (10 / 3); /*15835*/
17255+
$k[$j++] = _Al + 3.33333334; /*15835*/
1725017256
} /*15835*/
1725117257
} /*15835*/
1725217258
var _Am = $k[--$j]; /*15835*/
@@ -22709,18 +22715,18 @@ function BWIPP() {
2270922715
if ($k[--$j]) {
2271022716
/*19451*/
2271122717
var _8x = $k[--$j]; /*19451*/
22712-
$k[$j++] = _8x + (2 / 3); /*19451*/
22718+
$k[$j++] = _8x + 0.66666667; /*19451*/
2271322719
} else {
2271422720
/*19451*/
2271522721
$1.isEA(); /*19451*/
2271622722
if ($k[--$j]) {
2271722723
/*19451*/
2271822724
var _8z = $k[--$j]; /*19451*/
22719-
$k[$j++] = _8z + (8 / 3); /*19451*/
22725+
$k[$j++] = _8z + 2.66666667; /*19451*/
2272022726
} else {
2272122727
/*19451*/
2272222728
var _90 = $k[--$j]; /*19451*/
22723-
$k[$j++] = _90 + (4 / 3); /*19451*/
22729+
$k[$j++] = _90 + 1.33333334; /*19451*/
2272422730
} /*19451*/
2272522731
} /*19451*/
2272622732
var _91 = $k[--$j]; /*19451*/
@@ -22731,18 +22737,18 @@ function BWIPP() {
2273122737
if ($k[--$j]) {
2273222738
/*19452*/
2273322739
var _95 = $k[--$j]; /*19452*/
22734-
$k[$j++] = _95 + (2 / 3); /*19452*/
22740+
$k[$j++] = _95 + 0.66666667; /*19452*/
2273522741
} else {
2273622742
/*19452*/
2273722743
$1.isEA(); /*19452*/
2273822744
if ($k[--$j]) {
2273922745
/*19452*/
2274022746
var _97 = $k[--$j]; /*19452*/
22741-
$k[$j++] = _97 + (8 / 3); /*19452*/
22747+
$k[$j++] = _97 + 2.66666667; /*19452*/
2274222748
} else {
2274322749
/*19452*/
2274422750
var _98 = $k[--$j]; /*19452*/
22745-
$k[$j++] = _98 + (4 / 3); /*19452*/
22751+
$k[$j++] = _98 + 1.33333334; /*19452*/
2274622752
} /*19452*/
2274722753
} /*19452*/
2274822754
var _99 = $k[--$j]; /*19452*/
@@ -22753,18 +22759,18 @@ function BWIPP() {
2275322759
if ($k[--$j]) {
2275422760
/*19453*/
2275522761
var _9D = $k[--$j]; /*19453*/
22756-
$k[$j++] = _9D + (2 / 3); /*19453*/
22762+
$k[$j++] = _9D + 0.66666667; /*19453*/
2275722763
} else {
2275822764
/*19453*/
2275922765
$1.isEA(); /*19453*/
2276022766
if ($k[--$j]) {
2276122767
/*19453*/
2276222768
var _9F = $k[--$j]; /*19453*/
22763-
$k[$j++] = _9F + (13 / 3); /*19453*/
22769+
$k[$j++] = _9F + 4.33333334; /*19453*/
2276422770
} else {
2276522771
/*19453*/
2276622772
var _9G = $k[--$j]; /*19453*/
22767-
$k[$j++] = _9G + (10 / 3); /*19453*/
22773+
$k[$j++] = _9G + 3.33333334; /*19453*/
2276822774
} /*19453*/
2276922775
} /*19453*/
2277022776
var _9H = $k[--$j]; /*19453*/
@@ -36217,7 +36223,7 @@ return {
3621736223
toCanvas:ToCanvas, render:Render, raw:Raw,
3621836224
fixupOptions:FixupOptions,
3621936225
loadFont:FontLib.loadFont,
36220-
VERSION:'2.0.5 (2019-12-16)',
36226+
VERSION:'__BWIPJS_VERS__',
3622136227

3622236228
// Internals
3622336229
BWIPJS:BWIPJS, BWIPP:BWIPP, STBTT:STBTT, FontLib:FontLib,

dist/node-bwipjs.js

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//
33
// http://metafloor.github.io/bwip-js
44
//
5-
// Copyright (c) 2011-2019 Mark Warren
5+
// Copyright (c) 2011-2020 Mark Warren
66
//
77
// This file contains code automatically generated from:
88
// Barcode Writer in Pure PostScript - Version 2019-11-08
@@ -751,6 +751,12 @@ function BWIPP() {
751751
function $nt(a) {
752752
return typeof a == 'boolean' ? !a : ~a;
753753
}
754+
// emulate single-precision floating-point (pseudo-polyfill for Math.fround)
755+
var $f = (function(fa) {
756+
return function(v) {
757+
return fa[0] = v, fa[0];
758+
};
759+
})(new Float32Array(1));
754760

755761
// DEBUG-BEGIN
756762
function $stack() {
@@ -17225,18 +17231,18 @@ function BWIPP() {
1722517231
if ($k[--$j]) {
1722617232
/*15833*/
1722717233
var _AS = $k[--$j]; /*15833*/
17228-
$k[$j++] = _AS + (2 / 3); /*15833*/
17234+
$k[$j++] = _AS + 0.66666667; /*15833*/
1722917235
} else {
1723017236
/*15833*/
1723117237
$1.isEA(); /*15833*/
1723217238
if ($k[--$j]) {
1723317239
/*15833*/
1723417240
var _AU = $k[--$j]; /*15833*/
17235-
$k[$j++] = _AU + (8 / 3); /*15833*/
17241+
$k[$j++] = _AU + 2.66666667; /*15833*/
1723617242
} else {
1723717243
/*15833*/
1723817244
var _AV = $k[--$j]; /*15833*/
17239-
$k[$j++] = _AV + (4 / 3); /*15833*/
17245+
$k[$j++] = _AV + 1.33333334; /*15833*/
1724017246
} /*15833*/
1724117247
} /*15833*/
1724217248
var _AW = $k[--$j]; /*15833*/
@@ -17247,18 +17253,18 @@ function BWIPP() {
1724717253
if ($k[--$j]) {
1724817254
/*15834*/
1724917255
var _Aa = $k[--$j]; /*15834*/
17250-
$k[$j++] = _Aa + (2 / 3); /*15834*/
17256+
$k[$j++] = _Aa + 0.66666667; /*15834*/
1725117257
} else {
1725217258
/*15834*/
1725317259
$1.isEA(); /*15834*/
1725417260
if ($k[--$j]) {
1725517261
/*15834*/
1725617262
var _Ac = $k[--$j]; /*15834*/
17257-
$k[$j++] = _Ac + (8 / 3); /*15834*/
17263+
$k[$j++] = _Ac + 2.66666667; /*15834*/
1725817264
} else {
1725917265
/*15834*/
1726017266
var _Ad = $k[--$j]; /*15834*/
17261-
$k[$j++] = _Ad + (4 / 3); /*15834*/
17267+
$k[$j++] = _Ad + 1.33333334; /*15834*/
1726217268
} /*15834*/
1726317269
} /*15834*/
1726417270
var _Ae = $k[--$j]; /*15834*/
@@ -17269,18 +17275,18 @@ function BWIPP() {
1726917275
if ($k[--$j]) {
1727017276
/*15835*/
1727117277
var _Ai = $k[--$j]; /*15835*/
17272-
$k[$j++] = _Ai + (2 / 3); /*15835*/
17278+
$k[$j++] = _Ai + 0.66666667; /*15835*/
1727317279
} else {
1727417280
/*15835*/
1727517281
$1.isEA(); /*15835*/
1727617282
if ($k[--$j]) {
1727717283
/*15835*/
1727817284
var _Ak = $k[--$j]; /*15835*/
17279-
$k[$j++] = _Ak + (13 / 3); /*15835*/
17285+
$k[$j++] = _Ak + 4.33333334; /*15835*/
1728017286
} else {
1728117287
/*15835*/
1728217288
var _Al = $k[--$j]; /*15835*/
17283-
$k[$j++] = _Al + (10 / 3); /*15835*/
17289+
$k[$j++] = _Al + 3.33333334; /*15835*/
1728417290
} /*15835*/
1728517291
} /*15835*/
1728617292
var _Am = $k[--$j]; /*15835*/
@@ -22743,18 +22749,18 @@ function BWIPP() {
2274322749
if ($k[--$j]) {
2274422750
/*19451*/
2274522751
var _8x = $k[--$j]; /*19451*/
22746-
$k[$j++] = _8x + (2 / 3); /*19451*/
22752+
$k[$j++] = _8x + 0.66666667; /*19451*/
2274722753
} else {
2274822754
/*19451*/
2274922755
$1.isEA(); /*19451*/
2275022756
if ($k[--$j]) {
2275122757
/*19451*/
2275222758
var _8z = $k[--$j]; /*19451*/
22753-
$k[$j++] = _8z + (8 / 3); /*19451*/
22759+
$k[$j++] = _8z + 2.66666667; /*19451*/
2275422760
} else {
2275522761
/*19451*/
2275622762
var _90 = $k[--$j]; /*19451*/
22757-
$k[$j++] = _90 + (4 / 3); /*19451*/
22763+
$k[$j++] = _90 + 1.33333334; /*19451*/
2275822764
} /*19451*/
2275922765
} /*19451*/
2276022766
var _91 = $k[--$j]; /*19451*/
@@ -22765,18 +22771,18 @@ function BWIPP() {
2276522771
if ($k[--$j]) {
2276622772
/*19452*/
2276722773
var _95 = $k[--$j]; /*19452*/
22768-
$k[$j++] = _95 + (2 / 3); /*19452*/
22774+
$k[$j++] = _95 + 0.66666667; /*19452*/
2276922775
} else {
2277022776
/*19452*/
2277122777
$1.isEA(); /*19452*/
2277222778
if ($k[--$j]) {
2277322779
/*19452*/
2277422780
var _97 = $k[--$j]; /*19452*/
22775-
$k[$j++] = _97 + (8 / 3); /*19452*/
22781+
$k[$j++] = _97 + 2.66666667; /*19452*/
2277622782
} else {
2277722783
/*19452*/
2277822784
var _98 = $k[--$j]; /*19452*/
22779-
$k[$j++] = _98 + (4 / 3); /*19452*/
22785+
$k[$j++] = _98 + 1.33333334; /*19452*/
2278022786
} /*19452*/
2278122787
} /*19452*/
2278222788
var _99 = $k[--$j]; /*19452*/
@@ -22787,18 +22793,18 @@ function BWIPP() {
2278722793
if ($k[--$j]) {
2278822794
/*19453*/
2278922795
var _9D = $k[--$j]; /*19453*/
22790-
$k[$j++] = _9D + (2 / 3); /*19453*/
22796+
$k[$j++] = _9D + 0.66666667; /*19453*/
2279122797
} else {
2279222798
/*19453*/
2279322799
$1.isEA(); /*19453*/
2279422800
if ($k[--$j]) {
2279522801
/*19453*/
2279622802
var _9F = $k[--$j]; /*19453*/
22797-
$k[$j++] = _9F + (13 / 3); /*19453*/
22803+
$k[$j++] = _9F + 4.33333334; /*19453*/
2279822804
} else {
2279922805
/*19453*/
2280022806
var _9G = $k[--$j]; /*19453*/
22801-
$k[$j++] = _9G + (10 / 3); /*19453*/
22807+
$k[$j++] = _9G + 3.33333334; /*19453*/
2280222808
} /*19453*/
2280322809
} /*19453*/
2280422810
var _9H = $k[--$j]; /*19453*/
@@ -36396,7 +36402,7 @@ return {
3639636402
request:Request, toBuffer:ToBuffer, render:Render, raw:Raw,
3639736403
fixupOptions:FixupOptions,
3639836404
loadFont:FontLib.loadFont,
36399-
VERSION:'2.0.5 (2019-12-16)',
36405+
VERSION:'__BWIPJS_VERS__',
3640036406

3640136407
// Internals
3640236408
BWIPJS:BWIPJS, BWIPP:BWIPP, STBTT:STBTT, FontLib:FontLib,

0 commit comments

Comments
 (0)