882 Commits (01aa32615b5311b9d71cb050a76c754cd23cde78)
 

Author SHA1 Message Date
David Majda 9111020ca2 Refactor "semantic_not" emitter function a bit 13 years ago
David Majda cc3bd4f310 Refactor "zero_or_more" emitter function a bit 13 years ago
David Majda 85c1b010b6 Refactor "one_or_more" emitter function a bit 13 years ago
David Majda b5ca96dd48 Refactor "action" emitter function a bit 13 years ago
David Majda 50a0371e2d Refactor "rule_ref" emitter function a bit 13 years ago
David Majda eaba6b8a9d Refactor "literal" emitter function a bit 13 years ago
David Majda 2120c908c7 Refactor "class" emitter function a bit 13 years ago
David Majda 0748fee1d3 Use Codie for code templates
This will allow moving some code into the templates later.
13 years ago
David Majda 38c25efde0 Use single quotes for code in the emitter
Strings with code should use single quotes so that double quotes (which
I generally prefer) could be used in the code itself without escaping.
13 years ago
David Majda 45c99f8f6b Generate more efficient code for empty literals
Original patch by Wolfgang Kluge:

  797173f676
13 years ago
David Majda 4de3cc1716 Fix comment typos
Original patch by Wolfgang Kluge:

  07e0cfcc02
13 years ago
David Majda eceda8b5e8 Use correct disjunction operator in |computeErrorPosition|
Original patch by Wolfgang Kluge:

  6b793b33df
13 years ago
David Majda cb2415a4fd Fix output printed during test failures
Expected value was being printed instead of the actual one.

Original patch by Wolfgang Kluge:

  1e875d4479
13 years ago
David Majda 50be1081e0 Sort JSHint options alphabetically 13 years ago
David Majda ce40a8e815 benchmark/index.js: Use radix in |parseInt| call
Fixes the following JSHint error:

  ./benchmark/index.js: line 59, col 18, Missing radix parameter.
13 years ago
David Majda c8c5187768 Make "jake hint" check benchmark/index.js 13 years ago
David Majda 11a44948ab Extract JavaScript and CSS from benchmark/index.html into separate files
JavaScript is extracted to make it JSHintable, CSS is just for symmetry.
13 years ago
David Majda 8841c31d1b benchamrk/runner.js: Add "()" to constructor invocations
Fixes the following JSHint errors:

  ./benchmark/runner.js: line 73, col 28, Missing '()' invoking a constructor.
  ./benchmark/runner.js: line 75, col 33, Missing '()' invoking a constructor.
13 years ago
David Majda cad3013966 benchmark/runner.js: Add missing semicolon
Fixes the following JSHint error:

  ./benchmark/runner.js: line 21, col 42, Missing semicolon.
13 years ago
David Majda 17f62ae9e3 test/parser-test.js: Replace "\0" with "\x00"
Fixes the following JSHint errors:

  ./test/parser-test.js: line 353, col 54, Bad escapement.
  ./test/parser-test.js: line 384, col 54, Bad escapement.
  ./test/parser-test.js: line 436, col 60, Bad escapement.
  ./test/parser-test.js: line 437, col 60, Bad escapement.
  ./test/parser-test.js: line 472, col 50, Bad escapement.
13 years ago
David Majda 934bfa5eef test/parser-test.js: Fix missing/unnecessary semicolons
Fixes the following JSHint errors:

  ./test/parser-test.js: line 49, col 4, Missing semicolon.
  ./test/parser-test.js: line 58, col 4, Missing semicolon.
  ./test/parser-test.js: line 77, col 2, Unnecessary semicolon.
  ./test/parser-test.js: line 137, col 23, Missing semicolon.
13 years ago
David Majda d84f38c64b test/parser-test.js: Fix comments that look like nested to JSHint
Fixes the following JSHint errors:

  ./test/parser-test.js: line 521, col 29, Nested comment.
  ./test/parser-test.js: line 521, col 29, Stopping, unable to continue. (87% scanned).
13 years ago
David Majda 34d19a7dc6 test/passes-test.js: Add missing semicolons
Fixes the following JSHint errors:

  ./test/passes-test.js: line 12, col 6, Missing semicolon.
  ./test/passes-test.js: line 25, col 4, Missing semicolon.
  ./test/passes-test.js: line 229, col 41, Missing semicolon.
13 years ago
David Majda 0fe5769024 test/checks-test.js: Avoid function definitions in loops
Fixes the following JSHint errors:

  ./test/checks-test.js: line 26, col 8, Don't make functions within a loop.
  ./test/checks-test.js: line 31, col 5, Don't make functions within a loop.
  ./test/checks-test.js: line 59, col 8, Don't make functions within a loop.
  ./test/checks-test.js: line 64, col 5, Don't make functions within a loop.
13 years ago
David Majda 96192417d8 test/compiler-test.js: Remove extra comma
Fixes the following JSHint error:

  ./test/compiler-test.js: line 498, col 49, Extra comma.
13 years ago
David Majda e93eaa0e0e test/compiler-test.js: Add missing semicolon
Fixes the following JSHint error:

  ./test/compiler-test.js: line 420, col 47, Missing semicolon.
13 years ago
David Majda cc4910d9b9 src/compiler.js: Fix variable redefinition
Fixes the following JSHint error:

  ./src/compiler.js: line 23, col 16, 'i' is already defined.
13 years ago
David Majda bc4821581c src/emitter.js: Fix variable redefinitions
Fixes the following JSHint errors:

  ./src/emitter.js: line 95, col 21, 'name' is already defined.
  ./src/emitter.js: line 361, col 35, 'setReportFailuresCode' is already defined.
  ./src/emitter.js: line 362, col 39, 'restoreReportFailuresCode' is already defined.
  ./src/emitter.js: line 363, col 31, 'reportFailureCode' is already defined.
  ./src/emitter.js: line 393, col 38, 'setReportFailuresCode' used out of scope.Fixes the following JSHint errors:
  ./src/emitter.js: line 394, col 38, 'restoreReportFailuresCode' used out of scope.
  ./src/emitter.js: line 395, col 38, 'reportFailureCode' used out of scope.
  ./src/emitter.js: line 666, col 26, 'formalParams' is already defined.
  ./src/emitter.js: line 667, col 26, 'actualParams' is already defined.
  ./src/emitter.js: line 669, col 26, 'formalParams' is already defined.
  ./src/emitter.js: line 670, col 26, 'actualParams' is already defined.
  ./src/emitter.js: line 685, col 27, 'formalParams' used out of scope.
  ./src/emitter.js: line 686, col 27, 'actualParams' used out of scope.
  ./src/emitter.js: line 770, col 20, 'regexp' is already defined.
  ./src/emitter.js: line 784, col 22, 'regexp' used out of scope.
13 years ago
David Majda a52522c7c6 src/emitter.js: Remove unnecessary semicolon
Fixes the following JSHint error:

  ./src/emitter.js: line 77, col 4, Unnecessary semicolon.
13 years ago
David Majda d1b83e4ab3 src/emitter.js: Use strict comparison
Fixes the following JSHint error:

  ./src/emitter.js: line 44, col 48, Expected '!==' and instead saw '!='.
13 years ago
David Majda f893d47b98 src/utils.js: Make |quoteForRegexpClass| escape control characters
Fixes the following JSHint errors:

  ./src/parser.js: line 3614, col 16, Mixed spaces and tabs.
  ./src/parser.js: line 3614, col 20, Unsafe character.
13 years ago
David Majda ab49197ef1 src/utils.js: Make |quote| escape control characters
Also change |quote| in src/emitter.js so both are in sync.

Fixes the following JSHint errors:

  ./src/parser.js: line 3613, col 27, Mixed spaces and tabs.
  ./src/parser.js: line 3613, col 31, Unsafe character.
  ./src/parser.js: line 3613, col 38, Control character in string: [     .
  ./src/parser.js: line 3613, col 40, Control character in string: [
13 years ago
David Majda 67afc788ad src/parser.pegjs: Use radix in |parseInt| calls instead of "0x" prefix
Fixes the following JSHint errors:

  ./src/parser.js: line 2878, col 44, Missing radix parameter.
  ./src/parser.js: line 2949, col 44, Missing radix parameter.
13 years ago
David Majda 13c47d6c4f src/parser.pegjs: Replace "\0" with "\x00"
Fixes the following JSHint error:

  ./src/parser.js: line 2820, col 44, Bad escapement.
13 years ago
David Majda b80cd9cb02 src/parser.pegjs: Use strict comparison
Fixes the following JSHint errors:

  ./src/parser.js: line 460, col 50, Expected '!==' and instead saw '!='.
  ./src/parser.js: line 486, col 42, Expected '!==' and instead saw '!='.
13 years ago
David Majda cc416199be src/parser.pegjs: Add missing semicolons
Fixes the following JSHint errors:

  ./src/parser.js: line 193, col 18, Missing semicolon.
  ./src/parser.js: line 407, col 20, Missing semicolon.
  ./src/parser.js: line 2493, col 18, Missing semicolon.
  ./src/parser.js: line 2759, col 40, Missing semicolon.
13 years ago
David Majda 559db3a812 src/emitter.js: Sync |escape| in generated parsers with utils.js
Fixes the following JSHint errors:

  ./src/parser.js: line 102, col 26, 'escapeChar' is already defined.
  ./src/parser.js: line 103, col 22, 'length' is already defined.
  ./src/parser.js: line 106, col 23, 'escapeChar' used out of scope.
  ./src/parser.js: line 106, col 86, 'length' used out of scope.
13 years ago
David Majda e0ef7e1abb src/passes.js: Add missing semicolon
Fixes the following JSHint error:

  ./src/passes.js: line 98, col 8, Missing semicolon.
13 years ago
David Majda 2f671e0022 src/peg.js: Prevent redefinition of |undefined| differently
Fixes the following JSHint error:

  ./src/peg.js: line 5, col 5, Expected an identifier and instead saw 'undefined' (a reserved word).
13 years ago
David Majda 10cca7b69d src/utils.js: Fix unescaped "]" inside a regexp
Fixes the following JSHint error:

  ./src/utils.js: line 124, col 15, Unescaped ']'.
13 years ago
David Majda 6e934fccca src/utils.js: Fix missing/unnecessary semicolons
Fixes the following JSHint errors:

  ./src/utils.js: line 108, col 2, Unnecessary semicolon.
  ./src/utils.js: line 128, col 39, Missing semicolon.
  ./src/utils.js: line 140, col 4, Missing semicolon.
13 years ago
David Majda 938f655ccf src/utils.js: Fix variable redefinition in |escape|
Fixes the following JSHint errors:

  ./src/utils.js: line 76, col 20, 'escapeChar' is already defined.
  ./src/utils.js: line 77, col 16, 'length' is already defined.
  ./src/utils.js: line 80, col 17, 'escapeChar' used out of scope.
  ./src/utils.js: line 80, col 80, 'length' used out of scope.
13 years ago
David Majda c7f99019c2 Add "jake hint" task that checks all javaScript files using JSHint
This currently outputs many issues. These will be fixed in subsequent
commits.
13 years ago
David Majda a92676edce Upgrade QUnit to the current master
Exact commit ID: 96e42601cadcba989f80bd4c294b7e0ee4ff1d29
13 years ago
David Majda 468597be27 Use |charCodeAt| instead of |charCode| when matching one-character literals
The speedup is marginal (if any) but let's have this anyway.

Speed impact
------------
Before:     212.49 kB/s
After:      213.01 kB/s
Difference: 0.24%

Size impact
-----------
Before:     1056976 b
After:      1058314 b
Difference: 0.12%

(Measured by /tools/impact with Node.js v0.4.8 on x86_64 GNU/Linux.)

Closes GH-50.
13 years ago
David Majda d3aff0c66a Use |charAt| instead of |substr| when matching classes
Speed impact
------------
Before:     131.36 kB/s
After:      213.59 kB/s
Difference: 62.59%

Size impact
-----------
Before:     1056976 b
After:      1056976 b
Difference: 0.00%

(Measured by /tools/impact with Node.js v0.4.8 on x86_64 GNU/Linux.)

Closes GH-49.
13 years ago
David Majda 0a1cea5f12 Use |charAt| instead of |substr| when matching one-character literals
Speed impact
------------
Before:     130.62 kB/s
After:      133.76 kB/s
Difference: 2.40%

Size impact
-----------
Before:     1058371 b
After:      1056976 b
Difference: -0.14%

(Measured by /tools/impact with Node.js v0.4.8 on x86_64 GNU/Linux.)
13 years ago
David Majda 2fc877e875 Match literals using |RegExp.prototype.test|
This is little faster than |String.prototype.match| in successful cases
since return value of |test| is just a boolean, not a special array as
with |match|.

Speed impact
------------
Before:     130.75 kB/s
After:      131.81 kB/s
Difference: 0.81%

Size impact
-----------
Before:     1059811 b
After:      1058371 b
Difference: -0.14%

(Measured by /tools/impact with Node.js v0.4.8 on x86_64 GNU/Linux.)
13 years ago
David Majda 2d4ee4fb23 Make /tools/improve script measure speed 5 times and compute an average
I measured speed 5 times manually too before introducing the script. It
gives more stable results.
13 years ago
David Majda d0c96481bf Add /tools/impact script to measure speed and size impact of commits 13 years ago