webruby 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webruby/environment.rb +4 -0
  3. data/lib/webruby/rake/files.rake +2 -1
  4. data/lib/webruby/rake/mruby.rake +4 -2
  5. data/modules/emscripten/AUTHORS +1 -0
  6. data/modules/emscripten/cmake/Platform/Emscripten.cmake +2 -0
  7. data/modules/emscripten/emcc +96 -40
  8. data/modules/emscripten/emrun +301 -136
  9. data/modules/emscripten/emscripten.py +5 -45
  10. data/modules/emscripten/src/analyzer.js +11 -1
  11. data/modules/emscripten/src/compiler.js +1 -1
  12. data/modules/emscripten/src/emrun_postjs.js +2 -2
  13. data/modules/emscripten/src/emrun_prejs.js +5 -0
  14. data/modules/emscripten/src/emscripten-source-map.min.js +31 -0
  15. data/modules/emscripten/src/library.js +187 -0
  16. data/modules/emscripten/src/library_egl.js +20 -0
  17. data/modules/emscripten/src/library_sdl.js +1 -0
  18. data/modules/emscripten/src/preamble.js +4 -0
  19. data/modules/emscripten/src/relooper/Relooper.cpp +33 -15
  20. data/modules/emscripten/src/relooper/Relooper.h +20 -14
  21. data/modules/emscripten/src/relooper/fuzzer.py +6 -0
  22. data/modules/emscripten/src/relooper/test.cpp +28 -0
  23. data/modules/emscripten/src/relooper/test.txt +211 -166
  24. data/modules/emscripten/src/relooper/test2.txt +20 -20
  25. data/modules/emscripten/src/relooper/test3.txt +41 -41
  26. data/modules/emscripten/src/relooper/test4.txt +26 -26
  27. data/modules/emscripten/src/relooper/test5.txt +52 -52
  28. data/modules/emscripten/src/relooper/test6.txt +19 -19
  29. data/modules/emscripten/src/relooper/test_dead.txt +1 -1
  30. data/modules/emscripten/src/relooper/test_debug.txt +31 -31
  31. data/modules/emscripten/src/relooper/test_fuzz1.txt +50 -50
  32. data/modules/emscripten/src/relooper/test_fuzz2.txt +21 -21
  33. data/modules/emscripten/src/relooper/test_fuzz3.txt +18 -18
  34. data/modules/emscripten/src/relooper/test_fuzz4.txt +28 -28
  35. data/modules/emscripten/src/relooper/test_fuzz5.txt +61 -61
  36. data/modules/emscripten/src/relooper/test_fuzz6.txt +179 -179
  37. data/modules/emscripten/src/relooper/test_inf.txt +846 -846
  38. data/modules/emscripten/src/relooper/testit.sh +15 -15
  39. data/modules/emscripten/system/include/emscripten/emscripten.h +64 -0
  40. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +8 -2
  41. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +9 -1
  42. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +11 -0
  43. data/modules/emscripten/tools/eliminator/eliminator-test.js +16 -1
  44. data/modules/emscripten/tools/file_packager.py +59 -49
  45. data/modules/emscripten/tools/js-optimizer.js +47 -8
  46. data/modules/emscripten/tools/shared.py +3 -3
  47. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +5 -3
  48. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +4 -0
  49. data/modules/mruby/INSTALL +11 -6
  50. data/modules/mruby/include/mrbconf.h +0 -3
  51. data/modules/mruby/include/mruby/khash.h +34 -36
  52. data/modules/mruby/include/mruby/string.h +3 -0
  53. data/modules/mruby/include/mruby.h +3 -3
  54. data/modules/mruby/mrblib/string.rb +3 -0
  55. data/modules/mruby/src/class.c +12 -12
  56. data/modules/mruby/src/codegen.c +18 -11
  57. data/modules/mruby/src/hash.c +12 -12
  58. data/modules/mruby/src/kernel.c +3 -3
  59. data/modules/mruby/src/load.c +29 -14
  60. data/modules/mruby/src/numeric.c +1 -1
  61. data/modules/mruby/src/object.c +14 -2
  62. data/modules/mruby/src/state.c +13 -10
  63. data/modules/mruby/src/string.c +1 -3
  64. data/modules/mruby/src/symbol.c +44 -18
  65. data/modules/mruby/src/variable.c +6 -6
  66. data/modules/mruby/test/t/class.rb +34 -0
  67. data/modules/mruby/test/t/module.rb +1 -1
  68. data/modules/mruby/test/t/syntax.rb +28 -0
  69. metadata +5 -13
  70. data/modules/emscripten/src/relooper.js +0 -11516
  71. data/modules/emscripten/src/relooper.js.raw.js +0 -11511
  72. data/modules/emscripten/tools/__init__.pyc +0 -0
  73. data/modules/emscripten/tools/cache.pyc +0 -0
  74. data/modules/emscripten/tools/gen_struct_info.pyc +0 -0
  75. data/modules/emscripten/tools/js_optimizer.pyc +0 -0
  76. data/modules/emscripten/tools/jsrun.pyc +0 -0
  77. data/modules/emscripten/tools/response_file.pyc +0 -0
  78. data/modules/emscripten/tools/shared.pyc +0 -0
  79. data/modules/emscripten/tools/tempfiles.pyc +0 -0
@@ -292,6 +292,17 @@ mrb_init_object(mrb_state *mrb)
292
292
  mrb_define_method(mrb, f, "inspect", false_to_s, MRB_ARGS_NONE());
293
293
  }
294
294
 
295
+ static mrb_value
296
+ inspect_type(mrb_state *mrb, mrb_value val)
297
+ {
298
+ if (mrb_type(val) == MRB_TT_FALSE || mrb_type(val) == MRB_TT_TRUE) {
299
+ return mrb_inspect(mrb, val);
300
+ }
301
+ else {
302
+ return mrb_str_new_cstr(mrb, mrb_obj_classname(mrb, val));
303
+ }
304
+ }
305
+
295
306
  static mrb_value
296
307
  convert_type(mrb_state *mrb, mrb_value val, const char *tname, const char *method, int raise)
297
308
  {
@@ -300,7 +311,7 @@ convert_type(mrb_state *mrb, mrb_value val, const char *tname, const char *metho
300
311
  m = mrb_intern_cstr(mrb, method);
301
312
  if (!mrb_respond_to(mrb, val, m)) {
302
313
  if (raise) {
303
- mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %S into %S", val, mrb_str_new_cstr(mrb, tname));
314
+ mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %S into %S", inspect_type(mrb, val), mrb_str_new_cstr(mrb, tname));
304
315
  return mrb_nil_value();
305
316
  }
306
317
  else {
@@ -499,8 +510,9 @@ mrb_to_integer(mrb_state *mrb, mrb_value val, const char *method)
499
510
  if (mrb_fixnum_p(val)) return val;
500
511
  v = convert_type(mrb, val, "Integer", method, TRUE);
501
512
  if (!mrb_obj_is_kind_of(mrb, v, mrb->fixnum_class)) {
513
+ mrb_value type = inspect_type(mrb, val);
502
514
  mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %S to Integer (%S#%S gives %S)",
503
- val, val, mrb_str_new_cstr(mrb, method), v);
515
+ type, type, mrb_str_new_cstr(mrb, method), inspect_type(mrb, v));
504
516
  }
505
517
  return v;
506
518
  }
@@ -136,7 +136,9 @@ mrb_irep_free(mrb_state *mrb, mrb_irep *irep)
136
136
  mrb_free(mrb, irep->iseq);
137
137
  for (i=0; i<irep->plen; i++) {
138
138
  if (mrb_type(irep->pool[i]) == MRB_TT_STRING) {
139
- mrb_free(mrb, mrb_str_ptr(irep->pool[i])->ptr);
139
+ if ((mrb_str_ptr(irep->pool[i])->flags & MRB_STR_NOFREE) == 0) {
140
+ mrb_free(mrb, mrb_str_ptr(irep->pool[i])->ptr);
141
+ }
140
142
  mrb_free(mrb, mrb_obj_ptr(irep->pool[i]));
141
143
  }
142
144
  #ifdef MRB_WORD_BOXING
@@ -170,12 +172,17 @@ mrb_str_pool(mrb_state *mrb, mrb_value str)
170
172
 
171
173
  len = s->len;
172
174
  ns->len = len;
173
- ns->ptr = (char *)mrb_malloc(mrb, (size_t)len+1);
174
- if (s->ptr) {
175
- memcpy(ns->ptr, s->ptr, len);
175
+ if (s->flags & MRB_STR_NOFREE) {
176
+ ns->ptr = s->ptr;
177
+ ns->flags = MRB_STR_NOFREE;
178
+ }
179
+ else {
180
+ ns->ptr = (char *)mrb_malloc(mrb, (size_t)len+1);
181
+ if (s->ptr) {
182
+ memcpy(ns->ptr, s->ptr, len);
183
+ }
184
+ ns->ptr[len] = '\0';
176
185
  }
177
- ns->ptr[len] = '\0';
178
-
179
186
  return mrb_obj_value(ns);
180
187
  }
181
188
 
@@ -207,10 +214,6 @@ mrb_close(mrb_state *mrb)
207
214
  mrb_free(mrb, mrb);
208
215
  }
209
216
 
210
- #ifndef MRB_IREP_ARRAY_INIT_SIZE
211
- # define MRB_IREP_ARRAY_INIT_SIZE (256u)
212
- #endif
213
-
214
217
  mrb_irep*
215
218
  mrb_add_irep(mrb_state *mrb)
216
219
  {
@@ -30,9 +30,6 @@ typedef struct mrb_shared_string {
30
30
  mrb_int len;
31
31
  } mrb_shared_string;
32
32
 
33
- #define MRB_STR_SHARED 1
34
- #define MRB_STR_NOFREE 2
35
-
36
33
  static mrb_value str_replace(mrb_state *mrb, struct RString *s1, struct RString *s2);
37
34
  static mrb_value mrb_str_subseq(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len);
38
35
 
@@ -92,6 +89,7 @@ mrb_str_modify(mrb_state *mrb, struct RString *s)
92
89
  }
93
90
  s->ptr[s->len] = '\0';
94
91
  s->aux.capa = s->len;
92
+ s->flags &= ~MRB_STR_NOFREE;
95
93
  return;
96
94
  }
97
95
  }
@@ -13,7 +13,8 @@
13
13
 
14
14
  /* ------------------------------------------------------ */
15
15
  typedef struct symbol_name {
16
- size_t len;
16
+ mrb_bool lit;
17
+ uint16_t len;
17
18
  const char *name;
18
19
  } symbol_name;
19
20
 
@@ -34,8 +35,8 @@ sym_hash_func(mrb_state *mrb, const symbol_name s)
34
35
  KHASH_DECLARE(n2s, symbol_name, mrb_sym, 1)
35
36
  KHASH_DEFINE (n2s, symbol_name, mrb_sym, 1, sym_hash_func, sym_hash_equal)
36
37
  /* ------------------------------------------------------ */
37
- mrb_sym
38
- mrb_intern(mrb_state *mrb, const char *name, size_t len)
38
+ static mrb_sym
39
+ sym_intern(mrb_state *mrb, const char *name, size_t len, int lit)
39
40
  {
40
41
  khash_t(n2s) *h = mrb->name2sym;
41
42
  symbol_name sname;
@@ -43,23 +44,44 @@ mrb_intern(mrb_state *mrb, const char *name, size_t len)
43
44
  mrb_sym sym;
44
45
  char *p;
45
46
 
47
+ if (len > UINT16_MAX) {
48
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "symbol length too long");
49
+ }
50
+ sname.lit = lit;
46
51
  sname.len = len;
47
52
  sname.name = name;
48
- k = kh_get(n2s, h, sname);
53
+ k = kh_get(n2s, mrb, h, sname);
49
54
  if (k != kh_end(h))
50
55
  return kh_value(h, k);
51
56
 
52
57
  sym = ++mrb->symidx;
53
- p = (char *)mrb_malloc(mrb, len+1);
54
- memcpy(p, name, len);
55
- p[len] = 0;
56
- sname.name = (const char*)p;
57
- k = kh_put(n2s, h, sname);
58
+ if (lit) {
59
+ sname.name = name;
60
+ }
61
+ else {
62
+ p = (char *)mrb_malloc(mrb, len+1);
63
+ memcpy(p, name, len);
64
+ p[len] = 0;
65
+ sname.name = (const char*)p;
66
+ }
67
+ k = kh_put(n2s, mrb, h, sname);
58
68
  kh_value(h, k) = sym;
59
69
 
60
70
  return sym;
61
71
  }
62
72
 
73
+ mrb_sym
74
+ mrb_intern(mrb_state *mrb, const char *name, size_t len)
75
+ {
76
+ return sym_intern(mrb, name, len, 0);
77
+ }
78
+
79
+ mrb_sym
80
+ mrb_intern_static(mrb_state *mrb, const char *name, size_t len)
81
+ {
82
+ return sym_intern(mrb, name, len, 1);
83
+ }
84
+
63
85
  mrb_sym
64
86
  mrb_intern_cstr(mrb_state *mrb, const char *name)
65
87
  {
@@ -79,10 +101,13 @@ mrb_check_intern(mrb_state *mrb, const char *name, size_t len)
79
101
  symbol_name sname;
80
102
  khiter_t k;
81
103
 
104
+ if (len > UINT16_MAX) {
105
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "symbol length too long");
106
+ }
82
107
  sname.len = len;
83
108
  sname.name = name;
84
109
 
85
- k = kh_get(n2s, h, sname);
110
+ k = kh_get(n2s, mrb, h, sname);
86
111
  if (k != kh_end(h)) {
87
112
  return mrb_symbol_value(kh_value(h, k));
88
113
  }
@@ -129,8 +154,14 @@ mrb_free_symtbl(mrb_state *mrb)
129
154
  khiter_t k;
130
155
 
131
156
  for (k = kh_begin(h); k != kh_end(h); k++)
132
- if (kh_exist(h, k)) mrb_free(mrb, (char*)kh_key(h, k).name);
133
- kh_destroy(n2s,mrb->name2sym);
157
+ if (kh_exist(h, k)) {
158
+ symbol_name s = kh_key(h, k);
159
+
160
+ if (!s.lit) {
161
+ mrb_free(mrb, (char*)s.name);
162
+ }
163
+ }
164
+ kh_destroy(n2s, mrb, mrb->name2sym);
134
165
  }
135
166
 
136
167
  void
@@ -381,14 +412,9 @@ mrb_sym2str(mrb_state *mrb, mrb_sym sym)
381
412
  {
382
413
  size_t len;
383
414
  const char *name = mrb_sym2name_len(mrb, sym, &len);
384
- mrb_value str;
385
415
 
386
416
  if (!name) return mrb_undef_value(); /* can't happen */
387
- str = mrb_str_new_static(mrb, name, len);
388
- if (symname_p(name) && strlen(name) == len) {
389
- return str;
390
- }
391
- return mrb_str_dump(mrb, str);
417
+ return mrb_str_new_static(mrb, name, len);
392
418
  }
393
419
 
394
420
  const char*
@@ -311,7 +311,7 @@ iv_put(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value val)
311
311
  khash_t(iv) *h = &t->h;
312
312
  khiter_t k;
313
313
 
314
- k = kh_put(iv, h, sym);
314
+ k = kh_put(iv, mrb, h, sym);
315
315
  kh_value(h, k) = val;
316
316
  }
317
317
 
@@ -321,7 +321,7 @@ iv_get(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value *vp)
321
321
  khash_t(iv) *h = &t->h;
322
322
  khiter_t k;
323
323
 
324
- k = kh_get(iv, h, sym);
324
+ k = kh_get(iv, mrb, h, sym);
325
325
  if (k != kh_end(h)) {
326
326
  if (vp) *vp = kh_value(h, k);
327
327
  return TRUE;
@@ -336,10 +336,10 @@ iv_del(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value *vp)
336
336
  khiter_t k;
337
337
 
338
338
  if (h) {
339
- k = kh_get(iv, h, sym);
339
+ k = kh_get(iv, mrb, h, sym);
340
340
  if (k != kh_end(h)) {
341
341
  mrb_value val = kh_value(h, k);
342
- kh_del(iv, h, k);
342
+ kh_del(iv, mrb, h, k);
343
343
  if (vp) *vp = val;
344
344
  return TRUE;
345
345
  }
@@ -360,7 +360,7 @@ iv_foreach(mrb_state *mrb, iv_tbl *t, iv_foreach_func *func, void *p)
360
360
  n = (*func)(mrb, kh_key(h, k), kh_value(h, k), p);
361
361
  if (n > 0) return FALSE;
362
362
  if (n < 0) {
363
- kh_del(iv, h, k);
363
+ kh_del(iv, mrb, h, k);
364
364
  }
365
365
  }
366
366
  }
@@ -386,7 +386,7 @@ iv_copy(mrb_state *mrb, iv_tbl *t)
386
386
  static void
387
387
  iv_free(mrb_state *mrb, iv_tbl *t)
388
388
  {
389
- kh_destroy(iv, &t->h);
389
+ kh_destroy(iv, mrb, &t->h);
390
390
  }
391
391
 
392
392
  #endif
@@ -258,3 +258,37 @@ assert('Class#inherited') do
258
258
 
259
259
  assert_equal(Baz, Foo.subclass_name)
260
260
  end
261
+
262
+ assert('singleton tests') do
263
+ bar = String.new
264
+
265
+ baz = class << bar
266
+ def self.run_baz
267
+ 200
268
+ end
269
+ end
270
+
271
+ assert_false baz.singleton_methods.include? :run_baz
272
+
273
+ assert_raise(NoMethodError, 'should raise NoMethodError') do
274
+ baz.run_baz
275
+ end
276
+
277
+ assert_raise(NoMethodError, 'should raise NoMethodError') do
278
+ bar.run_baz
279
+ end
280
+
281
+ baz = class << bar
282
+ def self.run_baz
283
+ 300
284
+ end
285
+ self
286
+ end
287
+
288
+ assert_true baz.singleton_methods.include? :run_baz
289
+ assert_equal 300, baz.run_baz
290
+
291
+ assert_raise(NoMethodError, 'should raise NoMethodError') do
292
+ bar.run_baz
293
+ end
294
+ end
@@ -83,7 +83,7 @@ assert('Module#attr', '15.2.2.4.11') do
83
83
  assert_true AttrTest.respond_to?(:cattr)
84
84
  assert_true test.respond_to?(:iattr)
85
85
 
86
- assert_false AttrTest.respond_to?(:vattr=)
86
+ assert_false AttrTest.respond_to?(:cattr=)
87
87
  assert_false test.respond_to?(:iattr=)
88
88
 
89
89
  test.iattr_val = 'test'
@@ -74,3 +74,31 @@ assert('Splat and mass assignment') do
74
74
  assert_equal 7, b
75
75
  assert_equal [8,9], c
76
76
  end
77
+
78
+ assert('Return values of case statements') do
79
+ a = [] << case 1
80
+ when 3 then 2
81
+ when 2 then 2
82
+ when 1 then 2
83
+ end
84
+
85
+ b = [] << case 1
86
+ when 2 then 2
87
+ else
88
+ end
89
+
90
+ def fb
91
+ n = 0
92
+ Proc.new do
93
+ n += 1
94
+ case
95
+ when n % 15 == 0
96
+ else n
97
+ end
98
+ end
99
+ end
100
+
101
+ assert_equal [2], a
102
+ assert_equal [nil], b
103
+ assert_equal 1, fb.call
104
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xuejie Xiao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-17 00:00:00.000000000 Z
11
+ date: 2013-12-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: compile your favourite Ruby source code for the browser!
14
14
  email: xxuejie@gmail.com
@@ -74,6 +74,8 @@ files:
74
74
  - modules/emscripten/src/embind/embind.js
75
75
  - modules/emscripten/src/embind/emval.js
76
76
  - modules/emscripten/src/emrun_postjs.js
77
+ - modules/emscripten/src/emrun_prejs.js
78
+ - modules/emscripten/src/emscripten-source-map.min.js
77
79
  - modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff
78
80
  - modules/emscripten/src/experimental/batching.diff
79
81
  - modules/emscripten/src/experimental/functypeopt.diff
@@ -161,8 +163,6 @@ files:
161
163
  - modules/emscripten/src/relooper/test_inf.txt
162
164
  - modules/emscripten/src/relooper/testit.sh
163
165
  - modules/emscripten/src/relooper/updateit.sh
164
- - modules/emscripten/src/relooper.js
165
- - modules/emscripten/src/relooper.js.raw.js
166
166
  - modules/emscripten/src/runtime.js
167
167
  - modules/emscripten/src/settings.js
168
168
  - modules/emscripten/src/shell.html
@@ -1081,7 +1081,6 @@ files:
1081
1081
  - modules/emscripten/third_party/websockify/wsirc.html
1082
1082
  - modules/emscripten/third_party/websockify/wstelnet.html
1083
1083
  - modules/emscripten/tools/__init__.py
1084
- - modules/emscripten/tools/__init__.pyc
1085
1084
  - modules/emscripten/tools/asm_module.py
1086
1085
  - modules/emscripten/tools/autodebugger.py
1087
1086
  - modules/emscripten/tools/autodebugger_c.py
@@ -1091,7 +1090,6 @@ files:
1091
1090
  - modules/emscripten/tools/bindings_generator.py
1092
1091
  - modules/emscripten/tools/bisect_pair.py
1093
1092
  - modules/emscripten/tools/cache.py
1094
- - modules/emscripten/tools/cache.pyc
1095
1093
  - modules/emscripten/tools/clean_webconsole.py
1096
1094
  - modules/emscripten/tools/crunch-worker.js
1097
1095
  - modules/emscripten/tools/diff_autodebugger.py
@@ -1205,13 +1203,10 @@ files:
1205
1203
  - modules/emscripten/tools/find_bigvars.py
1206
1204
  - modules/emscripten/tools/fix_closure.py
1207
1205
  - modules/emscripten/tools/gen_struct_info.py
1208
- - modules/emscripten/tools/gen_struct_info.pyc
1209
1206
  - modules/emscripten/tools/ie7_fix.py
1210
1207
  - modules/emscripten/tools/js-optimizer.js
1211
1208
  - modules/emscripten/tools/js_optimizer.py
1212
- - modules/emscripten/tools/js_optimizer.pyc
1213
1209
  - modules/emscripten/tools/jsrun.py
1214
- - modules/emscripten/tools/jsrun.pyc
1215
1210
  - modules/emscripten/tools/ll-strip.py
1216
1211
  - modules/emscripten/tools/make_file.py
1217
1212
  - modules/emscripten/tools/make_minigzip.py
@@ -1259,20 +1254,17 @@ files:
1259
1254
  - modules/emscripten/tools/reproduceriter.js
1260
1255
  - modules/emscripten/tools/reproduceriter.py
1261
1256
  - modules/emscripten/tools/response_file.py
1262
- - modules/emscripten/tools/response_file.pyc
1263
1257
  - modules/emscripten/tools/scan_js.py
1264
1258
  - modules/emscripten/tools/scan_ll.py
1265
1259
  - modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py
1266
1260
  - modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py
1267
1261
  - modules/emscripten/tools/settings_template_readonly.py
1268
1262
  - modules/emscripten/tools/shared.py
1269
- - modules/emscripten/tools/shared.pyc
1270
1263
  - modules/emscripten/tools/source-maps/sourcemap2json.js
1271
1264
  - modules/emscripten/tools/source-maps/sourcemapper.js
1272
1265
  - modules/emscripten/tools/split.py
1273
1266
  - modules/emscripten/tools/split_asm.py
1274
1267
  - modules/emscripten/tools/tempfiles.py
1275
- - modules/emscripten/tools/tempfiles.pyc
1276
1268
  - modules/emscripten/tools/test-js-optimizer-asm-last-output.js
1277
1269
  - modules/emscripten/tools/test-js-optimizer-asm-last.js
1278
1270
  - modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js
@@ -1560,7 +1552,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1560
1552
  version: '0'
1561
1553
  requirements: []
1562
1554
  rubyforge_project:
1563
- rubygems_version: 2.0.14
1555
+ rubygems_version: 2.0.3
1564
1556
  signing_key:
1565
1557
  specification_version: 4
1566
1558
  summary: webruby