From 8577dc9d458c255f74831fedd35813091449a138 Mon Sep 17 00:00:00 2001
From: suVene
Date: Mon, 22 Dec 2008 12:06:29 +0000
Subject: add $U.runnable(generator)
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27232 d0d07461-0603-4401-acd4-de1884942a52
---
_libly.js | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
(limited to '_libly.js')
diff --git a/_libly.js b/_libly.js
index f3c4dd3..abb846a 100644
--- a/_libly.js
+++ b/_libly.js
@@ -5,7 +5,7 @@ var PLUGIN_INFO =
Vimperator plugins library?
適当なライブラリっぽいものたち。
suVene
- 0.1.13
+ 0.1.14
1.2
2.0pre
http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/_libly.js
@@ -47,6 +47,8 @@ evalJson(str, toRemove):
dateFormat(dtm, fmt):
Date型インスタンスを、指定されたフォーマットで文字列に変換します。
fmt を省略した場合、"%y/%M/%d %h:%m:%s" となります。
+runnable(generator):
+ gererator を実行し、再帰的に resume する為の引数を渡します。
== Browser ==
getSelectedString:
@@ -181,6 +183,22 @@ libly.$U = {//{{{
}
return (fmt || '%y/%M/%d %h:%m:%s').replace(/%([yMdhms%])/g, function (_, n) d[n]);
},
+ /**
+ * example)
+ * $U.runnable(function(resume) {
+ * // execute asynchronous function.
+ * // goto next yield;
+ * var val = yield setTimeout(function() { resume('value!'), 1000) });
+ * alert(val); // value!
+ * yield;
+ * });
+ */
+ runnable: function(generator) {
+ var it = generator(function(value) {
+ try { it.send(value); } catch (e) {}
+ });
+ it.next();
+ },
// }}}
// Browser {{{
getSelectedString: function() {
--
cgit v1.2.3