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) {