react / react-0.13.3 / node_modules / coffee-react / node_modules / coffee-script / lib / coffee-script / coffee-script.js
80760 views// Generated by CoffeeScript 1.9.21(function() {2var Lexer, SourceMap, base, compile, ext, formatSourcePosition, fs, getSourceMap, helpers, i, len, lexer, parser, path, ref, sourceMaps, vm, withPrettyErrors,3hasProp = {}.hasOwnProperty,4indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };56fs = require('fs');78vm = require('vm');910path = require('path');1112Lexer = require('./lexer').Lexer;1314parser = require('./parser').parser;1516helpers = require('./helpers');1718SourceMap = require('./sourcemap');1920exports.VERSION = '1.9.2';2122exports.FILE_EXTENSIONS = ['.coffee', '.litcoffee', '.coffee.md'];2324exports.helpers = helpers;2526withPrettyErrors = function(fn) {27return function(code, options) {28var err;29if (options == null) {30options = {};31}32try {33return fn.call(this, code, options);34} catch (_error) {35err = _error;36throw helpers.updateSyntaxError(err, code, options.filename);37}38};39};4041exports.compile = compile = withPrettyErrors(function(code, options) {42var answer, currentColumn, currentLine, extend, fragment, fragments, header, i, js, len, map, merge, newLines, token, tokens;43merge = helpers.merge, extend = helpers.extend;44options = extend({}, options);45if (options.sourceMap) {46map = new SourceMap;47}48tokens = lexer.tokenize(code, options);49options.referencedVars = (function() {50var i, len, results;51results = [];52for (i = 0, len = tokens.length; i < len; i++) {53token = tokens[i];54if (token.variable) {55results.push(token[1]);56}57}58return results;59})();60fragments = parser.parse(tokens).compileToFragments(options);61currentLine = 0;62if (options.header) {63currentLine += 1;64}65if (options.shiftLine) {66currentLine += 1;67}68currentColumn = 0;69js = "";70for (i = 0, len = fragments.length; i < len; i++) {71fragment = fragments[i];72if (options.sourceMap) {73if (fragment.locationData) {74map.add([fragment.locationData.first_line, fragment.locationData.first_column], [currentLine, currentColumn], {75noReplace: true76});77}78newLines = helpers.count(fragment.code, "\n");79currentLine += newLines;80if (newLines) {81currentColumn = fragment.code.length - (fragment.code.lastIndexOf("\n") + 1);82} else {83currentColumn += fragment.code.length;84}85}86js += fragment.code;87}88if (options.header) {89header = "Generated by CoffeeScript " + this.VERSION;90js = "// " + header + "\n" + js;91}92if (options.sourceMap) {93answer = {94js: js95};96answer.sourceMap = map;97answer.v3SourceMap = map.generate(options, code);98return answer;99} else {100return js;101}102});103104exports.tokens = withPrettyErrors(function(code, options) {105return lexer.tokenize(code, options);106});107108exports.nodes = withPrettyErrors(function(source, options) {109if (typeof source === 'string') {110return parser.parse(lexer.tokenize(source, options));111} else {112return parser.parse(source);113}114});115116exports.run = function(code, options) {117var answer, dir, mainModule, ref;118if (options == null) {119options = {};120}121mainModule = require.main;122mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.';123mainModule.moduleCache && (mainModule.moduleCache = {});124dir = options.filename ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.');125mainModule.paths = require('module')._nodeModulePaths(dir);126if (!helpers.isCoffee(mainModule.filename) || require.extensions) {127answer = compile(code, options);128code = (ref = answer.js) != null ? ref : answer;129}130return mainModule._compile(code, mainModule.filename);131};132133exports["eval"] = function(code, options) {134var Module, _module, _require, createContext, i, isContext, js, k, len, o, r, ref, ref1, ref2, ref3, sandbox, v;135if (options == null) {136options = {};137}138if (!(code = code.trim())) {139return;140}141createContext = (ref = vm.Script.createContext) != null ? ref : vm.createContext;142isContext = (ref1 = vm.isContext) != null ? ref1 : function(ctx) {143return options.sandbox instanceof createContext().constructor;144};145if (createContext) {146if (options.sandbox != null) {147if (isContext(options.sandbox)) {148sandbox = options.sandbox;149} else {150sandbox = createContext();151ref2 = options.sandbox;152for (k in ref2) {153if (!hasProp.call(ref2, k)) continue;154v = ref2[k];155sandbox[k] = v;156}157}158sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox;159} else {160sandbox = global;161}162sandbox.__filename = options.filename || 'eval';163sandbox.__dirname = path.dirname(sandbox.__filename);164if (!(sandbox !== global || sandbox.module || sandbox.require)) {165Module = require('module');166sandbox.module = _module = new Module(options.modulename || 'eval');167sandbox.require = _require = function(path) {168return Module._load(path, _module, true);169};170_module.filename = sandbox.__filename;171ref3 = Object.getOwnPropertyNames(require);172for (i = 0, len = ref3.length; i < len; i++) {173r = ref3[i];174if (r !== 'paths') {175_require[r] = require[r];176}177}178_require.paths = _module.paths = Module._nodeModulePaths(process.cwd());179_require.resolve = function(request) {180return Module._resolveFilename(request, _module);181};182}183}184o = {};185for (k in options) {186if (!hasProp.call(options, k)) continue;187v = options[k];188o[k] = v;189}190o.bare = true;191js = compile(code, o);192if (sandbox === global) {193return vm.runInThisContext(js);194} else {195return vm.runInContext(js, sandbox);196}197};198199exports.register = function() {200return require('./register');201};202203if (require.extensions) {204ref = this.FILE_EXTENSIONS;205for (i = 0, len = ref.length; i < len; i++) {206ext = ref[i];207if ((base = require.extensions)[ext] == null) {208base[ext] = function() {209throw new Error("Use CoffeeScript.register() or require the coffee-script/register module to require " + ext + " files.");210};211}212}213}214215exports._compileFile = function(filename, sourceMap) {216var answer, err, raw, stripped;217if (sourceMap == null) {218sourceMap = false;219}220raw = fs.readFileSync(filename, 'utf8');221stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw;222try {223answer = compile(stripped, {224filename: filename,225sourceMap: sourceMap,226literate: helpers.isLiterate(filename)227});228} catch (_error) {229err = _error;230throw helpers.updateSyntaxError(err, stripped, filename);231}232return answer;233};234235lexer = new Lexer;236237parser.lexer = {238lex: function() {239var tag, token;240token = parser.tokens[this.pos++];241if (token) {242tag = token[0], this.yytext = token[1], this.yylloc = token[2];243parser.errorToken = token.origin || token;244this.yylineno = this.yylloc.first_line;245} else {246tag = '';247}248return tag;249},250setInput: function(tokens) {251parser.tokens = tokens;252return this.pos = 0;253},254upcomingInput: function() {255return "";256}257};258259parser.yy = require('./nodes');260261parser.yy.parseError = function(message, arg) {262var errorLoc, errorTag, errorText, errorToken, token, tokens;263token = arg.token;264errorToken = parser.errorToken, tokens = parser.tokens;265errorTag = errorToken[0], errorText = errorToken[1], errorLoc = errorToken[2];266errorText = (function() {267switch (false) {268case errorToken !== tokens[tokens.length - 1]:269return 'end of input';270case errorTag !== 'INDENT' && errorTag !== 'OUTDENT':271return 'indentation';272case errorTag !== 'IDENTIFIER' && errorTag !== 'NUMBER' && errorTag !== 'STRING' && errorTag !== 'STRING_START' && errorTag !== 'REGEX' && errorTag !== 'REGEX_START':273return errorTag.replace(/_START$/, '').toLowerCase();274default:275return helpers.nameWhitespaceCharacter(errorText);276}277})();278return helpers.throwSyntaxError("unexpected " + errorText, errorLoc);279};280281formatSourcePosition = function(frame, getSourceMapping) {282var as, column, fileLocation, fileName, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName;283fileName = void 0;284fileLocation = '';285if (frame.isNative()) {286fileLocation = "native";287} else {288if (frame.isEval()) {289fileName = frame.getScriptNameOrSourceURL();290if (!fileName) {291fileLocation = (frame.getEvalOrigin()) + ", ";292}293} else {294fileName = frame.getFileName();295}296fileName || (fileName = "<anonymous>");297line = frame.getLineNumber();298column = frame.getColumnNumber();299source = getSourceMapping(fileName, line, column);300fileLocation = source ? fileName + ":" + source[0] + ":" + source[1] : fileName + ":" + line + ":" + column;301}302functionName = frame.getFunctionName();303isConstructor = frame.isConstructor();304isMethodCall = !(frame.isToplevel() || isConstructor);305if (isMethodCall) {306methodName = frame.getMethodName();307typeName = frame.getTypeName();308if (functionName) {309tp = as = '';310if (typeName && functionName.indexOf(typeName)) {311tp = typeName + ".";312}313if (methodName && functionName.indexOf("." + methodName) !== functionName.length - methodName.length - 1) {314as = " [as " + methodName + "]";315}316return "" + tp + functionName + as + " (" + fileLocation + ")";317} else {318return typeName + "." + (methodName || '<anonymous>') + " (" + fileLocation + ")";319}320} else if (isConstructor) {321return "new " + (functionName || '<anonymous>') + " (" + fileLocation + ")";322} else if (functionName) {323return functionName + " (" + fileLocation + ")";324} else {325return fileLocation;326}327};328329sourceMaps = {};330331getSourceMap = function(filename) {332var answer, ref1;333if (sourceMaps[filename]) {334return sourceMaps[filename];335}336if (ref1 = path != null ? path.extname(filename) : void 0, indexOf.call(exports.FILE_EXTENSIONS, ref1) < 0) {337return;338}339answer = exports._compileFile(filename, true);340return sourceMaps[filename] = answer.sourceMap;341};342343Error.prepareStackTrace = function(err, stack) {344var frame, frames, getSourceMapping;345getSourceMapping = function(filename, line, column) {346var answer, sourceMap;347sourceMap = getSourceMap(filename);348if (sourceMap) {349answer = sourceMap.sourceLocation([line - 1, column - 1]);350}351if (answer) {352return [answer[0] + 1, answer[1] + 1];353} else {354return null;355}356};357frames = (function() {358var j, len1, results;359results = [];360for (j = 0, len1 = stack.length; j < len1; j++) {361frame = stack[j];362if (frame.getFunction() === exports.run) {363break;364}365results.push(" at " + (formatSourcePosition(frame, getSourceMapping)));366}367return results;368})();369return (err.toString()) + "\n" + (frames.join('\n')) + "\n";370};371372}).call(this);373374375