From 43f1946c7a57b42cf1306c5857859cec9209edbc Mon Sep 17 00:00:00 2001
From: Yury Delendik <ydelendik@mozilla.com>
Date: Sun, 20 May 2012 14:05:23 -0500
Subject: [PATCH] Add prefixes for literals

---
 src/evaluator.js            | 10 +++++++++-
 test/unit/evaluator_spec.js | 18 ++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/evaluator.js b/src/evaluator.js
index 2c07db88c..1dab7de0b 100644
--- a/src/evaluator.js
+++ b/src/evaluator.js
@@ -112,7 +112,15 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 
     // (reserved partial commands for the lexer)
     BM: null,
-    BD: null
+    BD: null,
+    'true': null,
+    fa: null,
+    fal: null,
+    fals: null,
+    'false': null,
+    nu: null,
+    nul: null,
+    'null': null
   };
 
   PartialEvaluator.prototype = {
diff --git a/test/unit/evaluator_spec.js b/test/unit/evaluator_spec.js
index 286b8158a..e31a525ac 100644
--- a/test/unit/evaluator_spec.js
+++ b/test/unit/evaluator_spec.js
@@ -108,6 +108,24 @@ describe('evaluator', function() {
       expect(result.argsArray[1].length).toEqual(1);
       expect(result.argsArray[1][0]).toEqual(5);
     });
+
+    it('should handle glued operations and literals', function() {
+      var evaluator = new PartialEvaluator(new XrefMock(), new HandlerMock(),
+                                           'prefix');
+      var stream = new StringStream('trueifalserinulli');
+      var result = evaluator.getOperatorList(stream, new ResourcesMock(), []);
+
+      expect(!!result.fnArray && !!result.argsArray).toEqual(true);
+      expect(result.fnArray.length).toEqual(3);
+      expect(result.fnArray[0]).toEqual('setFlatness');
+      expect(result.fnArray[1]).toEqual('setRenderingIntent');
+      expect(result.fnArray[2]).toEqual('setFlatness');
+      expect(result.argsArray.length).toEqual(3);
+      expect(result.argsArray[0].length).toEqual(1);
+      expect(result.argsArray[0][0]).toEqual(true);
+      expect(result.argsArray[1].length).toEqual(1);
+      expect(result.argsArray[1][0]).toEqual(false);
+    });
   });
 });