| Index: node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/lib/js-yaml/type/js/function.js
|
| diff --git a/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/lib/js-yaml/type/js/function.js b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/lib/js-yaml/type/js/function.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..65dcf7f8a9f9603ab26a55bb4bd22d7f8c6a802c
|
| --- /dev/null
|
| +++ b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/lib/js-yaml/type/js/function.js
|
| @@ -0,0 +1,71 @@
|
| +'use strict';
|
| +
|
| +
|
| +var esprima;
|
| +
|
| +// Browserified version does not have esprima
|
| +//
|
| +// 1. For node.js just require module as deps
|
| +// 2. For browser try to require mudule via external AMD system.
|
| +// If not found - try to fallback to window.esprima. If not
|
| +// found too - then fail to parse.
|
| +//
|
| +try {
|
| + esprima = require('esprima');
|
| +} catch (_) {
|
| + /*global window */
|
| + if (window) { esprima = window.esprima; }
|
| +}
|
| +
|
| +
|
| +var Type = require('../../type');
|
| +
|
| +
|
| +function resolveJavascriptFunction(state) {
|
| + /*jslint evil:true*/
|
| +
|
| + try {
|
| + var source = '(' + state.result + ')',
|
| + ast = esprima.parse(source, { range: true }),
|
| + params = [],
|
| + body;
|
| +
|
| + if ('Program' !== ast.type ||
|
| + 1 !== ast.body.length ||
|
| + 'ExpressionStatement' !== ast.body[0].type ||
|
| + 'FunctionExpression' !== ast.body[0].expression.type) {
|
| + return false;
|
| + }
|
| +
|
| + ast.body[0].expression.params.forEach(function (param) {
|
| + params.push(param.name);
|
| + });
|
| +
|
| + body = ast.body[0].expression.body.range;
|
| +
|
| + // Esprima's ranges include the first '{' and the last '}' characters on
|
| + // function expressions. So cut them out.
|
| + state.result = new Function(params, source.slice(body[0]+1, body[1]-1));
|
| + return true;
|
| + } catch (err) {
|
| + return false;
|
| + }
|
| +}
|
| +
|
| +
|
| +function representJavascriptFunction(object /*, style*/) {
|
| + return object.toString();
|
| +}
|
| +
|
| +
|
| +function isFunction(object) {
|
| + return '[object Function]' === Object.prototype.toString.call(object);
|
| +}
|
| +
|
| +
|
| +module.exports = new Type('tag:yaml.org,2002:js/function', {
|
| + loadKind: 'scalar',
|
| + loadResolver: resolveJavascriptFunction,
|
| + dumpPredicate: isFunction,
|
| + dumpRepresenter: representJavascriptFunction
|
| +});
|
|
|