Browse Source

Fixes getNumber at the end of stream

Yury Delendik 13 years ago
parent
commit
4c0f9eb924
  1. 3
      src/parser.js
  2. 17
      test/unit/parser_spec.js
  3. 1
      test/unit/unit_test.html

3
src/parser.js

@ -333,8 +333,7 @@ var Lexer = (function LexerClosure() {
var floating = false; var floating = false;
var str = ch; var str = ch;
var stream = this.stream; var stream = this.stream;
for (;;) { while ((ch = stream.lookChar())) {
ch = stream.lookChar();
if (ch == '.' && !floating) { if (ch == '.' && !floating) {
str += ch; str += ch;
floating = true; floating = true;

17
test/unit/parser_spec.js

@ -0,0 +1,17 @@
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
'use strict';
describe('parser', function() {
describe('Lexer', function() {
it('should stop parsing numbers at the end of stream', function() {
var input = new StringStream('1.234');
var lexer = new Lexer(input);
var result = lexer.getNumber('1');
expect(result).toEqual(11.234);
});
});
});

1
test/unit/unit_test.html

@ -41,6 +41,7 @@
<script type="text/javascript" src="crypto_spec.js"></script> <script type="text/javascript" src="crypto_spec.js"></script>
<script type="text/javascript" src="evaluator_spec.js"></script> <script type="text/javascript" src="evaluator_spec.js"></script>
<script type="text/javascript" src="stream_spec.js"></script> <script type="text/javascript" src="stream_spec.js"></script>
<script type="text/javascript" src="parser_spec.js"></script>
<script type="text/javascript" src="api_spec.js"></script> <script type="text/javascript" src="api_spec.js"></script>
<script type="text/javascript" src="metadata_spec.js"></script> <script type="text/javascript" src="metadata_spec.js"></script>
<script type="text/javascript" src="util_spec.js"></script> <script type="text/javascript" src="util_spec.js"></script>

Loading…
Cancel
Save