From 50c2856097ce49cc7ae38c72d0e9aba50b0c3481 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald <jonas.jenwald@gmail.com> Date: Fri, 27 Jan 2017 13:34:37 +0100 Subject: [PATCH] Move `EOF`/`isEOF` from core/parser.js to core/primitives.js Given the nature of `EOF` and `isEOF`, it seems to me that they really ought to be placed in `core/primitives.js` instead. In general, it doesn't seem great to have to depend on the entire `core/parser.js` file for such simple primitives/helper functions. In particular, while `core/ps_parser.js` is completely separate from `core/parser.js` with regards to its function, it still depends on the latter for just *one* primitive. Note that compared to e.g. PR 7389, this will not reduce the number of dependencies for `core/ps_parser`, however the new dependency IMHO makes more sense. --- src/core/cmap.js | 2 +- src/core/evaluator.js | 2 +- src/core/parser.js | 10 ++-------- src/core/primitives.js | 8 ++++++++ src/core/ps_parser.js | 10 +++++----- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/core/cmap.js b/src/core/cmap.js index c5144f960..8a5a329b9 100644 --- a/src/core/cmap.js +++ b/src/core/cmap.js @@ -36,12 +36,12 @@ var error = sharedUtil.error; var isInt = sharedUtil.isInt; var isString = sharedUtil.isString; var MissingDataException = sharedUtil.MissingDataException; +var isEOF = corePrimitives.isEOF; var isName = corePrimitives.isName; var isCmd = corePrimitives.isCmd; var isStream = corePrimitives.isStream; var StringStream = coreStream.StringStream; var Lexer = coreParser.Lexer; -var isEOF = coreParser.isEOF; var BUILT_IN_CMAPS = [ // << Start unicode maps. diff --git a/src/core/evaluator.js b/src/core/evaluator.js index ead82fbf8..31155e74a 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -65,6 +65,7 @@ var getLookupTableFactory = sharedUtil.getLookupTableFactory; var warn = sharedUtil.warn; var Dict = corePrimitives.Dict; var Name = corePrimitives.Name; +var isEOF = corePrimitives.isEOF; var isCmd = corePrimitives.isCmd; var isDict = corePrimitives.isDict; var isName = corePrimitives.isName; @@ -75,7 +76,6 @@ var JpegStream = coreStream.JpegStream; var Stream = coreStream.Stream; var Lexer = coreParser.Lexer; var Parser = coreParser.Parser; -var isEOF = coreParser.isEOF; var PDFImage = coreImage.PDFImage; var ColorSpace = coreColorSpace.ColorSpace; var MurmurHash3_64 = coreMurmurHash3.MurmurHash3_64; diff --git a/src/core/parser.js b/src/core/parser.js index 88ad7038f..eb26e12e9 100644 --- a/src/core/parser.js +++ b/src/core/parser.js @@ -38,10 +38,12 @@ var isInt = sharedUtil.isInt; var isNum = sharedUtil.isNum; var isString = sharedUtil.isString; var warn = sharedUtil.warn; +var EOF = corePrimitives.EOF; var Cmd = corePrimitives.Cmd; var Dict = corePrimitives.Dict; var Name = corePrimitives.Name; var Ref = corePrimitives.Ref; +var isEOF = corePrimitives.isEOF; var isCmd = corePrimitives.isCmd; var isDict = corePrimitives.isDict; var isName = corePrimitives.isName; @@ -57,12 +59,6 @@ var NullStream = coreStream.NullStream; var PredictorStream = coreStream.PredictorStream; var RunLengthStream = coreStream.RunLengthStream; -var EOF = {}; - -function isEOF(v) { - return (v === EOF); -} - var MAX_LENGTH_TO_CACHE = 1000; var Parser = (function ParserClosure() { @@ -1119,9 +1115,7 @@ var Linearization = { } }; -exports.EOF = EOF; exports.Lexer = Lexer; exports.Linearization = Linearization; exports.Parser = Parser; -exports.isEOF = isEOF; })); diff --git a/src/core/primitives.js b/src/core/primitives.js index b27222134..b57528776 100644 --- a/src/core/primitives.js +++ b/src/core/primitives.js @@ -28,6 +28,8 @@ var isArray = sharedUtil.isArray; +var EOF = {}; + var Name = (function NameClosure() { function Name(name) { this.name = name; @@ -268,6 +270,10 @@ var RefSetCache = (function RefSetCacheClosure() { return RefSetCache; })(); +function isEOF(v) { + return (v === EOF); +} + function isName(v, name) { return v instanceof Name && (name === undefined || v.name === name); } @@ -293,12 +299,14 @@ function isStream(v) { return typeof v === 'object' && v !== null && v.getBytes !== undefined; } +exports.EOF = EOF; exports.Cmd = Cmd; exports.Dict = Dict; exports.Name = Name; exports.Ref = Ref; exports.RefSet = RefSet; exports.RefSetCache = RefSetCache; +exports.isEOF = isEOF; exports.isCmd = isCmd; exports.isDict = isDict; exports.isName = isName; diff --git a/src/core/ps_parser.js b/src/core/ps_parser.js index b16ef59ca..d72c976c1 100644 --- a/src/core/ps_parser.js +++ b/src/core/ps_parser.js @@ -18,18 +18,18 @@ (function (root, factory) { if (typeof define === 'function' && define.amd) { define('pdfjs/core/ps_parser', ['exports', 'pdfjs/shared/util', - 'pdfjs/core/parser'], factory); + 'pdfjs/core/primitives'], factory); } else if (typeof exports !== 'undefined') { - factory(exports, require('../shared/util.js'), require('./parser.js')); + factory(exports, require('../shared/util.js'), require('./primitives.js')); } else { factory((root.pdfjsCorePsParser = {}), root.pdfjsSharedUtil, - root.pdfjsCoreParser); + root.pdfjsCorePrimitives); } -}(this, function (exports, sharedUtil, coreParser) { +}(this, function (exports, sharedUtil, corePrimitives) { var error = sharedUtil.error; var isSpace = sharedUtil.isSpace; -var EOF = coreParser.EOF; +var EOF = corePrimitives.EOF; var PostScriptParser = (function PostScriptParserClosure() { function PostScriptParser(lexer) {