aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example')
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/array.js14
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/keyword.js16
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/prompt.js49
3 files changed, 79 insertions, 0 deletions
diff --git a/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/array.js b/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/array.js
new file mode 100644
index 0000000000..c805d5192f
--- /dev/null
+++ b/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/array.js
@@ -0,0 +1,14 @@
+var falafel = require('../');
+
+var src = '(' + function () {
+ var xs = [ 1, 2, [ 3, 4 ] ];
+ var ys = [ 5, 6 ];
+ console.dir([ xs, ys ]);
+} + ')()';
+
+var output = falafel(src, function (node) {
+ if (node.type === 'ArrayExpression') {
+ node.update('fn(' + node.source() + ')');
+ }
+});
+console.log(output);
diff --git a/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/keyword.js b/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/keyword.js
new file mode 100644
index 0000000000..b7cdd4a544
--- /dev/null
+++ b/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/keyword.js
@@ -0,0 +1,16 @@
+var falafel = require('../');
+var src = 'console.log(beep "boop", "BOOP");';
+
+function isKeyword (id) {
+ if (id === 'beep') return true;
+}
+
+var output = falafel(src, { isKeyword: isKeyword }, function (node) {
+ if (node.type === 'UnaryExpression'
+ && node.operator === 'beep') {
+ node.update(
+ 'String(' + node.argument.source() + ').toUpperCase()'
+ );
+ }
+});
+console.log(output);
diff --git a/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/prompt.js b/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/prompt.js
new file mode 100644
index 0000000000..a1062a03f4
--- /dev/null
+++ b/deps/npm/node_modules/readable-stream/node_modules/inline-process-browser/node_modules/falafel/example/prompt.js
@@ -0,0 +1,49 @@
+var falafel = require('../');
+var vm = require('vm');
+
+var termExps = [
+ 'Identifier',
+ 'CallExpression',
+ 'BinaryExpression',
+ 'UpdateExpression',
+ 'UnaryExpression'
+].reduce(function (acc, key) { acc[key] = true; return acc }, {});
+
+function terminated (node) {
+ for (var p = node; p.parent; p = p.parent) {
+ if (termExps[p.type]) return true;
+ }
+ return false;
+}
+
+var src = '{"a":[2,~9,prompt(":d")],"b":4,"c":prompt("beep"),"d":6}';
+
+var offsets = [];
+var output = falafel('(' + src + ')', function (node) {
+ var isLeaf = node.parent
+ && !terminated(node.parent) && terminated(node)
+ ;
+
+ if (isLeaf) {
+ var s = node.source();
+ var prompted = false;
+ var res = vm.runInNewContext('(' + s + ')', {
+ prompt : function (x) {
+ setTimeout(function () {
+ node.update(x.toUpperCase());
+ }, Math.random() * 50);
+ prompted = true;
+ }
+ });
+ if (!prompted) {
+ var s_ = JSON.stringify(res);
+ node.update(s_);
+ }
+ }
+});
+
+setTimeout(function () {
+ console.log(src);
+ console.log('---');
+ console.log(output);
+}, 200);