1
0
Fork 0
mirror of https://github.com/jashkenas/coffeescript.git synced 2022-11-09 12:23:24 -05:00

Merge pull request #1793 from TrevorBurnham/header

Adding header to generated JS (#1778)
This commit is contained in:
Trevor Burnham 2012-01-10 11:01:16 -08:00
commit 447ce82721
16 changed files with 33 additions and 7 deletions

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var CoffeeScript, runScripts;

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var CoffeeScript, cakefileDirectory, fatalError, fs, helpers, missingTask, oparse, options, optparse, path, printTasks, switches, tasks;
@ -65,8 +66,9 @@
};
printTasks = function() {
var cakefilePath, desc, name, spaces, task;
cakefilePath = path.join(path.relative(__originalDirname, process.cwd()), 'Cakefile');
var cakefilePath, desc, name, relative, spaces, task;
relative = path.relative || path.resolve;
cakefilePath = path.join(relative(__originalDirname, process.cwd()), 'Cakefile');
console.log("" + cakefilePath + " defines the following tasks:\n");
for (name in tasks) {
task = tasks[name];

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var Lexer, RESERVED, compile, fs, lexer, parser, path, vm, _ref,
__hasProp = Object.prototype.hasOwnProperty;
@ -33,17 +34,20 @@
exports.helpers = require('./helpers');
exports.compile = compile = function(code, options) {
var merge;
var header, js, merge;
if (options == null) options = {};
merge = exports.helpers.merge;
try {
return (parser.parse(lexer.tokenize(code))).compile(merge({}, options));
js = (parser.parse(lexer.tokenize(code))).compile(options);
if (!options.header) return js;
} catch (err) {
if (options.filename) {
err.message = "In " + options.filename + ", " + err.message;
}
throw err;
}
header = "Generated by CoffeeScript " + this.VERSION;
return "// " + header + "\n" + js;
};
exports.tokens = function(code, options) {

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var BANNER, CoffeeScript, EventEmitter, SWITCHES, compileJoin, compileOptions, compilePath, compileScript, compileStdio, exec, forkNode, fs, helpers, joinTimeout, lint, loadRequires, notSources, optionParser, optparse, opts, outputPath, parseOptions, path, printLine, printTokens, printWarn, removeSource, sourceCode, sources, spawn, timeLog, unwatchDir, usage, version, wait, watch, watchDir, watchers, writeJs, _ref;
@ -406,7 +407,8 @@
compileOptions = function(filename) {
return {
filename: filename,
bare: opts.bare
bare: opts.bare,
header: opts.compile
};
};

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var Parser, alt, alternatives, grammar, name, o, operators, token, tokens, unwrap;

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var extend, flatten;

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var key, val, _ref;

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, TRAILING_SPACES, UNARY, WHITESPACE, compact, count, key, last, starts, _ref, _ref2,
__indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var Access, Arr, Assign, Base, Block, Call, Class, Closure, Code, Comment, Existence, Extends, For, IDENTIFIER, IDENTIFIER_STR, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, compact, del, ends, extend, flatten, last, merge, multident, starts, unfoldSoak, utility, _ref,
__hasProp = Object.prototype.hasOwnProperty,

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments;

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var ACCESSOR, CoffeeScript, Module, REPL_PROMPT, REPL_PROMPT_CONTINUATION, REPL_PROMPT_MULTILINE, SIMPLEVAR, Script, autocomplete, backlog, completeAttribute, completeVariable, enableColours, error, getCompletions, inspect, multilineMode, readline, repl, stdin, stdout;

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var BALANCED_PAIRS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_BLOCK, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, left, rite, _i, _len, _ref,
__indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },

View file

@ -1,3 +1,4 @@
// Generated by CoffeeScript 1.2.1-pre
(function() {
var Scope, extend, last, _ref;

View file

@ -34,10 +34,13 @@ exports.helpers = require './helpers'
exports.compile = compile = (code, options = {}) ->
{merge} = exports.helpers
try
(parser.parse lexer.tokenize code).compile merge {}, options
js = (parser.parse lexer.tokenize code).compile options
return js unless options.header
catch err
err.message = "In #{options.filename}, #{err.message}" if options.filename
throw err
header = "Generated by CoffeeScript #{@VERSION}"
"// #{header}\n#{js}"
# Tokenize a string of CoffeeScript code, and return the array of tokens.
exports.tokens = (code, options) ->

View file

@ -313,7 +313,8 @@ parseOptions = ->
return
# The compile-time options to pass to the CoffeeScript compiler.
compileOptions = (filename) -> {filename, bare: opts.bare}
compileOptions = (filename) ->
{filename, bare: opts.bare, header: opts.compile}
# Start up a new Node.js instance with the arguments in `--nodejs` passed to
# the `node` binary, preserving the other options.

View file

@ -13,6 +13,10 @@ test "--bare", ->
eq -1, CoffeeScript.compile('x = y', bare: on).indexOf 'function'
ok 'passed' is CoffeeScript.eval '"passed"', bare: on, filename: 'test'
test "header (#1778)", ->
header = "// Generated by CoffeeScript #{CoffeeScript.VERSION}\n"
eq 0, CoffeeScript.compile('x = y', header: on).indexOf header
test "multiple generated references", ->
a = {b: []}
a.b[true] = -> this == a.b