opal 0.9.0.beta2 → 0.9.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.jshintrc +2 -1
  3. data/.travis.yml +8 -4
  4. data/CHANGELOG.md +270 -251
  5. data/CONTRIBUTING.md +41 -0
  6. data/README.md +8 -8
  7. data/Rakefile +1 -1
  8. data/lib/opal/cli.rb +1 -0
  9. data/lib/opal/cli_options.rb +2 -2
  10. data/lib/opal/cli_runners.rb +1 -0
  11. data/lib/opal/cli_runners/nashorn.rb +58 -0
  12. data/lib/opal/cli_runners/phantom.js +11 -9
  13. data/lib/opal/compiler.rb +2 -0
  14. data/lib/opal/erb.rb +2 -1
  15. data/lib/opal/nodes/def.rb +15 -6
  16. data/lib/opal/nodes/helpers.rb +1 -1
  17. data/lib/opal/nodes/literal.rb +1 -1
  18. data/lib/opal/nodes/masgn.rb +79 -29
  19. data/lib/opal/nodes/module.rb +1 -1
  20. data/lib/opal/nodes/top.rb +6 -2
  21. data/lib/opal/parser.rb +1 -0
  22. data/lib/opal/parser/grammar.rb +3160 -3083
  23. data/lib/opal/parser/grammar.y +39 -11
  24. data/lib/opal/parser/lexer.rb +15 -13
  25. data/lib/opal/parser/sexp.rb +5 -0
  26. data/lib/opal/version.rb +1 -1
  27. data/opal/corelib/array.rb +21 -6
  28. data/opal/corelib/basic_object.rb +17 -4
  29. data/opal/corelib/class.rb +1 -1
  30. data/opal/corelib/constants.rb +2 -2
  31. data/opal/corelib/enumerator.rb +2 -0
  32. data/opal/corelib/hash.rb +50 -50
  33. data/opal/corelib/helpers.rb +1 -1
  34. data/opal/corelib/io.rb +9 -6
  35. data/opal/corelib/kernel.rb +37 -9
  36. data/opal/corelib/module.rb +6 -17
  37. data/opal/corelib/nil.rb +4 -0
  38. data/opal/corelib/number.rb +0 -4
  39. data/opal/corelib/runtime.js +637 -662
  40. data/opal/corelib/struct.rb +7 -3
  41. data/spec/filters/bugs/array.rb +4 -9
  42. data/spec/filters/bugs/basicobject.rb +1 -15
  43. data/spec/filters/bugs/date.rb +4 -26
  44. data/spec/filters/bugs/enumerable.rb +26 -1
  45. data/spec/filters/bugs/enumerator.rb +4 -4
  46. data/spec/filters/bugs/exception.rb +1 -7
  47. data/spec/filters/bugs/float.rb +14 -0
  48. data/spec/filters/bugs/hash.rb +0 -2
  49. data/spec/filters/bugs/integer.rb +1 -1
  50. data/spec/filters/bugs/kernel.rb +47 -66
  51. data/spec/filters/bugs/language.rb +1 -2
  52. data/spec/filters/bugs/module.rb +11 -14
  53. data/spec/filters/bugs/numeric.rb +3 -3
  54. data/spec/filters/bugs/proc.rb +0 -1
  55. data/spec/filters/bugs/range.rb +2 -3
  56. data/spec/filters/bugs/regexp.rb +15 -17
  57. data/spec/filters/bugs/set.rb +2 -2
  58. data/spec/filters/bugs/string.rb +29 -5
  59. data/spec/filters/bugs/{strscan.rb → stringscanner.rb} +9 -10
  60. data/spec/filters/bugs/struct.rb +0 -4
  61. data/spec/filters/bugs/time.rb +2 -3
  62. data/spec/filters/bugs/unboundmethod.rb +3 -0
  63. data/spec/filters/unsupported/freeze.rb +2 -1
  64. data/spec/filters/unsupported/taint.rb +2 -0
  65. data/spec/lib/parser/aref_spec.rb +10 -0
  66. data/spec/lib/parser/lambda_spec.rb +14 -0
  67. data/spec/lib/parser/op_asgn_spec.rb +17 -0
  68. data/spec/lib/parser/return_spec.rb +5 -0
  69. data/spec/lib/parser/unary_spec.rb +4 -0
  70. data/spec/lib/sprockets/erb_spec.rb +1 -1
  71. data/spec/mspec/opal/formatters.rb +159 -0
  72. data/{lib → spec}/mspec/opal/runner.rb +0 -160
  73. data/spec/opal/core/hash/internals_spec.rb +162 -162
  74. data/spec/opal/core/kernel/at_exit_spec.rb +70 -0
  75. data/spec/opal/core/kernel/extend_spec.rb +1 -1
  76. data/spec/opal/core/kernel/instance_variables_spec.rb +56 -0
  77. data/spec/opal/core/language/equal_spec.rb +8 -0
  78. data/spec/opal/core/language/predefined_spec.rb +1 -1
  79. data/spec/opal/core/language/ternary_operator_spec.rb +14 -0
  80. data/spec/opal/core/language/versions/{hash_1.9.rb → hash_1_9_spec.rb} +5 -0
  81. data/spec/opal/core/module/fixtures/classes.rb +11 -1
  82. data/spec/opal/core/module/method_lookup_spec.rb +13 -0
  83. data/spec/opal/core/runtime/super_spec.rb +10 -0
  84. data/spec/opal/stdlib/native/new_spec.rb +84 -0
  85. data/spec/opal/stdlib/strscan/scan_spec.rb +11 -0
  86. data/spec/rubyspecs +6 -9
  87. data/spec/spec_helper.rb +9 -21
  88. data/stdlib/date.rb +121 -1
  89. data/stdlib/js.rb +13 -5
  90. data/stdlib/json.rb +3 -3
  91. data/stdlib/nashorn.rb +5 -0
  92. data/stdlib/nashorn/file.rb +13 -0
  93. data/stdlib/nashorn/io.rb +2 -0
  94. data/stdlib/native.rb +12 -4
  95. data/stdlib/nodejs/io.rb +5 -2
  96. data/stdlib/opal/platform.rb +19 -0
  97. data/stdlib/phantomjs.rb +4 -0
  98. data/stdlib/strscan.rb +1 -1
  99. data/tasks/building.rake +2 -1
  100. data/tasks/testing.rake +29 -34
  101. data/tasks/testing/{phantomjs1-sprockets.js → sprockets-phantomjs.js} +2 -20
  102. data/vendored-minitest/minitest/test.rb +7 -15
  103. metadata +32 -9
  104. data/lib/mspec/opal/main.rb.erb +0 -9
data/stdlib/js.rb CHANGED
@@ -23,11 +23,19 @@ module JS
23
23
  end
24
24
 
25
25
  # Use new to create a new instance of the prototype of the function.
26
- def new(func, *args, &block)
27
- args << block if block
28
- f = `function(){return func.apply(this, args)}`
29
- f.JS[:prototype] = func.JS[:prototype]
30
- `new f()`
26
+ if `typeof Function.prototype.bind == 'function'`
27
+ def new(func, *args, &block)
28
+ args.insert(0, `this`)
29
+ args << block if block
30
+ `new (#{func}.bind.apply(#{func}, #{args}))()`
31
+ end
32
+ else
33
+ def new(func, *args, &block)
34
+ args << block if block
35
+ f = `function(){return func.apply(this, args)}`
36
+ f.JS[:prototype] = func.JS[:prototype]
37
+ `new f()`
38
+ end
31
39
  end
32
40
 
33
41
  # Use typeof to return the underlying javascript type of value.
data/stdlib/json.rb CHANGED
@@ -83,7 +83,7 @@ module JSON
83
83
  options[:object_class] ||= Hash
84
84
  options[:array_class] ||= Array
85
85
 
86
- `to_opal(js_object, options.smap)`
86
+ `to_opal(js_object, options.$$smap)`
87
87
  end
88
88
 
89
89
  def self.generate(obj, options = {})
@@ -143,11 +143,11 @@ class Hash
143
143
  %x{
144
144
  var result = [];
145
145
 
146
- for (var i = 0, keys = self.keys, length = keys.length, key, value; i < length; i++) {
146
+ for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) {
147
147
  key = keys[i];
148
148
 
149
149
  if (key.$$is_string) {
150
- value = self.smap[key];
150
+ value = self.$$smap[key];
151
151
  } else {
152
152
  value = key.value;
153
153
  key = key.key;
data/stdlib/nashorn.rb ADDED
@@ -0,0 +1,5 @@
1
+ module Nashorn
2
+ end
3
+
4
+ require 'nashorn/io'
5
+ require 'nashorn/file'
@@ -0,0 +1,13 @@
1
+ class File
2
+
3
+ def self.read path
4
+ %x(
5
+ var Paths = Java.type('java.nio.file.Paths');
6
+ var Files = Java.type('java.nio.file.Files');
7
+ var lines = Files.readAllLines(Paths.get(path), Java.type('java.nio.charset.StandardCharsets').UTF_8);
8
+ var data = [];
9
+ lines.forEach(function(line) { data.push(line); });
10
+ return data.join("\n");
11
+ )
12
+ end
13
+ end
@@ -0,0 +1,2 @@
1
+ $stdout.write_proc = `function(s){print(s)}`
2
+ $stderr.write_proc = `function(s){print(s)}`
data/stdlib/native.rb CHANGED
@@ -213,6 +213,14 @@ module Kernel
213
213
  nil
214
214
  elsif native?(obj)
215
215
  Native::Object.new(obj)
216
+ elsif obj.is_a?(Array)
217
+ obj.map do |o|
218
+ Native(o)
219
+ end
220
+ elsif obj.is_a?(Proc)
221
+ proc do |*args, &block|
222
+ Native(obj.call(*args, &block))
223
+ end
216
224
  else
217
225
  obj
218
226
  end
@@ -524,8 +532,8 @@ class Hash
524
532
  def initialize(defaults = undefined, &block)
525
533
  %x{
526
534
  if (defaults !== undefined && defaults.constructor === Object) {
527
- var smap = self.smap,
528
- keys = self.keys,
535
+ var smap = self.$$smap,
536
+ keys = self.$$keys,
529
537
  key, value;
530
538
 
531
539
  for (key in defaults) {
@@ -561,8 +569,8 @@ class Hash
561
569
  def to_n
562
570
  %x{
563
571
  var result = {},
564
- keys = self.keys,
565
- smap = self.smap,
572
+ keys = self.$$keys,
573
+ smap = self.$$smap,
566
574
  key, value;
567
575
 
568
576
  for (var i = 0, length = keys.length; i < length; i++) {
data/stdlib/nodejs/io.rb CHANGED
@@ -1,2 +1,5 @@
1
- $stdout.write_proc = -> (string) {`process.stdout.write(string)`}
2
- $stderr.write_proc = -> (string) {`process.stderr.write(string)`}
1
+ STDOUT.write_proc = -> (string) {`process.stdout.write(string)`}
2
+ STDERR.write_proc = -> (string) {`process.stderr.write(string)`}
3
+
4
+ STDOUT.tty = true
5
+ STDERR.tty = true
@@ -0,0 +1,19 @@
1
+ phantomjs = `typeof(callPhantom) !== "undefined"`
2
+ browser = `typeof(document) !== "undefined"`
3
+ node = `typeof(process) !== "undefined" && process.versions && process.versions.node`
4
+ nashorn = `typeof(Java) !== "undefined" && Java.type`
5
+
6
+ case
7
+ when nashorn
8
+ OPAL_PLATFORM = 'nashorn'
9
+ require 'nashorn'
10
+ when phantomjs
11
+ OPAL_PLATFORM = 'phantomjs'
12
+ require 'phantomjs'
13
+ when node
14
+ OPAL_PLATFORM = 'nodejs'
15
+ require 'nodejs/kernel'
16
+ require 'nodejs/io'
17
+ else # browser, which is the primary target
18
+ # noop
19
+ end
data/stdlib/phantomjs.rb CHANGED
@@ -1,3 +1,7 @@
1
1
  `Opal.exit = function(status) { callPhantom(['exit', status]); };`
2
+
2
3
  STDOUT.write_proc = `function(str){callPhantom(['stdout', str])}`
3
4
  STDERR.write_proc = `function(str){callPhantom(['stderr', str])}`
5
+
6
+ STDOUT.tty = true
7
+ STDERR.tty = true
data/stdlib/strscan.rb CHANGED
@@ -297,6 +297,6 @@ class StringScanner
297
297
 
298
298
  private
299
299
  def anchor(pattern)
300
- `new RegExp('^' + pattern.toString().substr(1, pattern.toString().length - 2))`
300
+ `new RegExp('^(?:' + pattern.toString().substr(1, pattern.toString().length - 2) + ')')`
301
301
  end
302
302
  end
data/tasks/building.rake CHANGED
@@ -48,7 +48,8 @@ end
48
48
 
49
49
  desc 'Rebuild grammar.rb for opal parser'
50
50
  task :racc do
51
- %x(racc -l lib/opal/parser/grammar.y -o lib/opal/parser/grammar.rb)
51
+ debug_option = '--debug' if ENV['RACC_DEBUG']
52
+ sh "racc #{debug_option} -l -o lib/opal/parser/grammar.rb lib/opal/parser/grammar.y"
52
53
  end
53
54
 
54
55
  desc 'Remove any generated file.'
data/tasks/testing.rake CHANGED
@@ -14,6 +14,7 @@ module Testing
14
14
  mspec/helpers/environment
15
15
  mspec/guards/block_device
16
16
  mspec/guards/endian
17
+ a_file
17
18
  ]
18
19
  end
19
20
 
@@ -73,10 +74,12 @@ module Testing
73
74
 
74
75
  File.write filename, <<-RUBY
75
76
  require 'spec_helper'
77
+ require 'opal/platform'
76
78
  #{enter_benchmarking_mode}
77
79
  #{requires.join("\n ")}
78
80
  OSpecFilter.main.unused_filters_message(list: #{!!ENV['LIST_UNUSED_FILTERS']})
79
81
  OSpecRunner.main.did_finish
82
+ exit MSpec.exit_code
80
83
  RUBY
81
84
  end
82
85
 
@@ -101,10 +104,10 @@ Use PATTERN environment variable to manually set the glob for specs:
101
104
  DESC
102
105
 
103
106
  %w[rubyspec opal].each do |suite|
104
- desc "Run the MSpec/#{suite} test suite on Phantom.js" + pattern_usage
105
- task :"mspec_#{suite}_phantom" do
106
- filename = File.expand_path('tmp/mspec_phantom.rb')
107
- runner = "#{__dir__}/testing/phantomjs1-sprockets.js"
107
+ desc "Run the MSpec/#{suite} test suite on Opal::Sprockets/phantomjs" + pattern_usage
108
+ task :"mspec_#{suite}_sprockets_phantomjs" do
109
+ filename = File.expand_path('tmp/mspec_sprockets_phantomjs.rb')
110
+ runner = "#{__dir__}/testing/sprockets-phantomjs.js"
108
111
  port = 9999
109
112
  url = "http://localhost:#{port}/"
110
113
 
@@ -114,7 +117,7 @@ DESC
114
117
  Testing.stubs.each {|s| ::Opal::Processor.stub_file s }
115
118
 
116
119
  Opal::Config.arity_check_enabled = true
117
- Opal::Config.freezing_stubs_enabled = false
120
+ Opal::Config.freezing_stubs_enabled = true
118
121
  Opal::Config.tainting_stubs_enabled = false
119
122
  Opal::Config.dynamic_require_severity = :error
120
123
 
@@ -134,29 +137,33 @@ DESC
134
137
  end
135
138
  end
136
139
 
137
- desc "Run the MSpec test suite on Node.js" + pattern_usage
138
- task :"mspec_#{suite}_node" do
139
- include_paths = '-Ispec -Ilib'
140
+ %w[nodejs phantomjs].each do |platform|
141
+ desc "Run the MSpec test suite on Opal::Builder/#{platform}" + pattern_usage
142
+ task :"mspec_#{suite}_#{platform}" do
143
+ include_paths = '-Ispec -Ilib'
140
144
 
141
- filename = 'tmp/mspec_node.rb'
142
- js_filename = 'tmp/mspec_node.js'
143
- mkdir_p File.dirname(filename)
144
- bm_filepath = Testing.bm_filepath if ENV['BM']
145
- Testing.write_file filename, Testing.specs(ENV.to_hash.merge 'SUITE' => suite), bm_filepath
145
+ filename = "tmp/mspec_#{platform}.rb"
146
+ mkdir_p File.dirname(filename)
147
+ bm_filepath = Testing.bm_filepath if ENV['BM']
148
+ Testing.write_file filename, Testing.specs(ENV.to_hash.merge 'SUITE' => suite), bm_filepath
146
149
 
147
- stubs = Testing.stubs.map{|s| "-s#{s}"}.join(' ')
150
+ stubs = Testing.stubs.map{|s| "-s#{s}"}.join(' ')
148
151
 
149
- sh "ruby -rbundler/setup -r#{__dir__}/testing/mspec_special_calls "\
150
- "bin/opal -gmspec #{include_paths} #{stubs} -rnodejs/io -rnodejs/kernel -Dwarning -A #{filename} -c > #{js_filename}"
151
- sh "NODE_PATH=stdlib/nodejs/node_modules node #{js_filename}"
152
+ sh "ruby -rbundler/setup -r#{__dir__}/testing/mspec_special_calls "\
153
+ "bin/opal -gmspec #{include_paths} #{stubs} -R#{platform} -Dwarning -A #{filename}"
152
154
 
153
- if bm_filepath
154
- puts "Benchmark results have been written to #{bm_filepath}"
155
- puts "To view the results, run bundle exec rake bench:report"
155
+ if bm_filepath
156
+ puts "Benchmark results have been written to #{bm_filepath}"
157
+ puts "To view the results, run bundle exec rake bench:report"
158
+ end
156
159
  end
157
160
  end
158
161
  end
159
162
 
163
+ task :mspec_phantomjs => [:mspec_opal_phantomjs, :mspec_rubyspec_phantomjs]
164
+ task :mspec_nodejs => [:mspec_opal_nodejs, :mspec_rubyspec_nodejs]
165
+ task :mspec_sprockets_phantomjs => [:mspec_opal_sprockets_phantomjs, :mspec_rubyspec_sprockets_phantomjs]
166
+
160
167
  task :jshint do
161
168
  js_filename = 'tmp/jshint.js'
162
169
  mkdir_p 'tmp'
@@ -213,23 +220,11 @@ task :cruby_tests do
213
220
  puts "== Running: #{files.join ", "}"
214
221
 
215
222
  sh "ruby -rbundler/setup "\
216
- "bin/opal #{include_paths} #{stubs} -rnodejs -ropal-parser -Dwarning -A #{filename} -c > #{js_filename}"
223
+ "bin/opal #{include_paths} #{stubs} -ropal/platform -ropal-parser -Dwarning -A #{filename} -c > #{js_filename}"
217
224
  sh "NODE_PATH=stdlib/nodejs/node_modules node #{js_filename}"
218
225
  end
219
226
 
220
- task :mspec => [:mspec_rubyspec_node, :mspec_rubyspec_phantom, :mspec_opal_node, :mspec_opal_phantom]
227
+ task :mspec => [:mspec_phantomjs, :mspec_nodejs, :mspec_sprockets_phantomjs]
221
228
  task :minitest => [:cruby_tests]
222
229
  task :test_all => [:rspec, :mspec, :minitest]
223
230
 
224
-
225
- if (current_suite = ENV['SUITE'])
226
- # Legacy tasks, only if ENV['SUITE'] is set
227
- desc "Deprecated: use mspec_rubyspec_phantom or mspec_opal_phantom instead"
228
- task :mspec_phantom => :"mspec_#{current_suite}_phantom"
229
-
230
- desc "Deprecated: use mspec_rubyspec_node or mspec_opal_node instead"
231
- task :mspec_node => :"mspec_#{current_suite}_node"
232
- else
233
- task :mspec_phantom => [:mspec_opal_phantom, :mspec_rubyspec_phantom]
234
- task :mspec_node => [:mspec_opal_node, :mspec_rubyspec_node]
235
- end
@@ -1,7 +1,8 @@
1
1
  /*
2
2
  * Test runner for phantomjs
3
3
  */
4
- var args = phantom.args;
4
+ var system = require('system');
5
+ var args = phantom.args ? phantom.args : system.args.slice(1);
5
6
  var page = require('webpage').create();
6
7
  var url = args[0];
7
8
 
@@ -25,7 +26,6 @@ page.onInitialized = function() {
25
26
  });
26
27
  };
27
28
 
28
- var system = require('system');
29
29
  page.onCallback = function(data) {
30
30
  switch (data[0]) {
31
31
  case 'exit':
@@ -46,23 +46,5 @@ page.open(url, function(status) {
46
46
  if (status !== 'success') {
47
47
  console.error("Cannot load: " + url);
48
48
  phantom_exit(1);
49
- } else {
50
- var timeout = parseInt(args[1] || 60000, 10);
51
- var start = Date.now();
52
- var interval = setInterval(function() {
53
- if (Date.now() > start + timeout) {
54
- console.error("Specs timed out");
55
- phantom_exit(124);
56
- } else {
57
- var code = page.evaluate(function() {
58
- return window.OPAL_SPEC_CODE;
59
- });
60
-
61
- if (code === 0 || code === 1) {
62
- clearInterval(interval);
63
- phantom_exit(code);
64
- }
65
- }
66
- }, 500);
67
49
  }
68
50
  });
@@ -202,21 +202,13 @@ module Minitest
202
202
  end # LifecycleHooks
203
203
 
204
204
  def capture_exceptions # :nodoc:
205
- begin
206
- yield
207
- # rescue *PASSTHROUGH_EXCEPTIONS
208
- # raise
209
- # rescue Assertion => e
210
- # self.failures << e
211
- # rescue Exception => e
212
- # self.failures << UnexpectedError.new(e)
213
- rescue => e
214
- case e
215
- when *PASSTHROUGH_EXCEPTIONS
216
- when Assertion then self.failures << e
217
- when Exception then self.failures << UnexpectedError.new(e)
218
- end
219
- end
205
+ yield
206
+ rescue *PASSTHROUGH_EXCEPTIONS
207
+ raise
208
+ rescue Assertion => e
209
+ self.failures << e
210
+ rescue Exception => e
211
+ self.failures << UnexpectedError.new(e)
220
212
  end
221
213
 
222
214
  ##
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0.beta2
4
+ version: 0.9.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Beynon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-05 00:00:00.000000000 Z
11
+ date: 2015-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sourcemap
@@ -347,8 +347,6 @@ files:
347
347
  - examples/sinatra/Gemfile.lock
348
348
  - examples/sinatra/app/application.rb
349
349
  - examples/sinatra/config.ru
350
- - lib/mspec/opal/main.rb.erb
351
- - lib/mspec/opal/runner.rb
352
350
  - lib/opal.rb
353
351
  - lib/opal/builder.rb
354
352
  - lib/opal/builder_processors.rb
@@ -356,6 +354,7 @@ files:
356
354
  - lib/opal/cli_options.rb
357
355
  - lib/opal/cli_runners.rb
358
356
  - lib/opal/cli_runners/apple_script.rb
357
+ - lib/opal/cli_runners/nashorn.rb
359
358
  - lib/opal/cli_runners/nodejs.rb
360
359
  - lib/opal/cli_runners/phantom.js
361
360
  - lib/opal/cli_runners/phantomjs.rb
@@ -484,7 +483,7 @@ files:
484
483
  - spec/filters/bugs/set.rb
485
484
  - spec/filters/bugs/singleton.rb
486
485
  - spec/filters/bugs/string.rb
487
- - spec/filters/bugs/strscan.rb
486
+ - spec/filters/bugs/stringscanner.rb
488
487
  - spec/filters/bugs/struct.rb
489
488
  - spec/filters/bugs/time.rb
490
489
  - spec/filters/bugs/unboundmethod.rb
@@ -541,6 +540,7 @@ files:
541
540
  - spec/lib/lexer_spec.rb
542
541
  - spec/lib/parser/alias_spec.rb
543
542
  - spec/lib/parser/and_spec.rb
543
+ - spec/lib/parser/aref_spec.rb
544
544
  - spec/lib/parser/attrasgn_spec.rb
545
545
  - spec/lib/parser/begin_spec.rb
546
546
  - spec/lib/parser/block_spec.rb
@@ -558,6 +558,7 @@ files:
558
558
  - spec/lib/parser/not_spec.rb
559
559
  - spec/lib/parser/op_asgn1_spec.rb
560
560
  - spec/lib/parser/op_asgn2_spec.rb
561
+ - spec/lib/parser/op_asgn_spec.rb
561
562
  - spec/lib/parser/or_spec.rb
562
563
  - spec/lib/parser/return_spec.rb
563
564
  - spec/lib/parser/sclass_spec.rb
@@ -580,6 +581,8 @@ files:
580
581
  - spec/lib/sprockets/server_spec.rb
581
582
  - spec/lib/sprockets_spec.rb
582
583
  - spec/lib/tilt/opal_spec.rb
584
+ - spec/mspec/opal/formatters.rb
585
+ - spec/mspec/opal/runner.rb
583
586
  - spec/opal/compiler/irb_spec.rb
584
587
  - spec/opal/core/arity_spec.rb
585
588
  - spec/opal/core/array/intersection_spec.rb
@@ -629,6 +632,7 @@ files:
629
632
  - spec/opal/core/hash/internals_spec.rb
630
633
  - spec/opal/core/helpers_spec.rb
631
634
  - spec/opal/core/kernel/Array_spec.rb
635
+ - spec/opal/core/kernel/at_exit_spec.rb
632
636
  - spec/opal/core/kernel/block_given_spec.rb
633
637
  - spec/opal/core/kernel/class_spec.rb
634
638
  - spec/opal/core/kernel/define_singleton_method_spec.rb
@@ -640,6 +644,7 @@ files:
640
644
  - spec/opal/core/kernel/instance_variable_defined_spec.rb
641
645
  - spec/opal/core/kernel/instance_variable_get_spec.rb
642
646
  - spec/opal/core/kernel/instance_variable_set_spec.rb
647
+ - spec/opal/core/kernel/instance_variables_spec.rb
643
648
  - spec/opal/core/kernel/loop_spec.rb
644
649
  - spec/opal/core/kernel/match_spec.rb
645
650
  - spec/opal/core/kernel/method_spec.rb
@@ -656,6 +661,7 @@ files:
656
661
  - spec/opal/core/kernel/sprintf_spec.rb
657
662
  - spec/opal/core/language/block_spec.rb
658
663
  - spec/opal/core/language/class_spec.rb
664
+ - spec/opal/core/language/equal_spec.rb
659
665
  - spec/opal/core/language/fixtures/array.rb
660
666
  - spec/opal/core/language/fixtures/block.rb
661
667
  - spec/opal/core/language/fixtures/break.rb
@@ -676,13 +682,14 @@ files:
676
682
  - spec/opal/core/language/regexp_spec.rb
677
683
  - spec/opal/core/language/send_spec.rb
678
684
  - spec/opal/core/language/string_spec.rb
685
+ - spec/opal/core/language/ternary_operator_spec.rb
679
686
  - spec/opal/core/language/variables_spec.rb
680
687
  - spec/opal/core/language/versions/array_1.9.rb
681
688
  - spec/opal/core/language/versions/block_1.9.rb
682
689
  - spec/opal/core/language/versions/break_1.9.rb
683
690
  - spec/opal/core/language/versions/case_1.9.rb
684
691
  - spec/opal/core/language/versions/def_2_0_spec.rb
685
- - spec/opal/core/language/versions/hash_1.9.rb
692
+ - spec/opal/core/language/versions/hash_1_9_spec.rb
686
693
  - spec/opal/core/language/versions/literal_lambda_1.9.rb
687
694
  - spec/opal/core/language/versions/not_1.9.rb
688
695
  - spec/opal/core/language/versions/send_1.9.rb
@@ -701,6 +708,7 @@ files:
701
708
  - spec/opal/core/module/constants_spec.rb
702
709
  - spec/opal/core/module/fixtures/classes.rb
703
710
  - spec/opal/core/module/method_defined_spec.rb
711
+ - spec/opal/core/module/method_lookup_spec.rb
704
712
  - spec/opal/core/module/module_function_spec.rb
705
713
  - spec/opal/core/module/name_spec.rb
706
714
  - spec/opal/core/module/public_method_defined_spec.rb
@@ -795,6 +803,7 @@ files:
795
803
  - spec/opal/stdlib/promise/trace_spec.rb
796
804
  - spec/opal/stdlib/promise/value_spec.rb
797
805
  - spec/opal/stdlib/promise/when_spec.rb
806
+ - spec/opal/stdlib/strscan/scan_spec.rb
798
807
  - spec/opal/stdlib/template/paths_spec.rb
799
808
  - spec/opal/stdlib/thread/mutex_spec.rb
800
809
  - spec/opal/stdlib/thread/thread_queue_spec.rb
@@ -823,6 +832,9 @@ files:
823
832
  - stdlib/js.rb
824
833
  - stdlib/json.rb
825
834
  - stdlib/math.rb
835
+ - stdlib/nashorn.rb
836
+ - stdlib/nashorn/file.rb
837
+ - stdlib/nashorn/io.rb
826
838
  - stdlib/native.rb
827
839
  - stdlib/nodejs.rb
828
840
  - stdlib/nodejs/dir.rb
@@ -1024,6 +1036,7 @@ files:
1024
1036
  - stdlib/observer.rb
1025
1037
  - stdlib/opal-parser.rb
1026
1038
  - stdlib/opal-source-maps.rb
1039
+ - stdlib/opal/platform.rb
1027
1040
  - stdlib/ostruct.rb
1028
1041
  - stdlib/pathname.rb
1029
1042
  - stdlib/phantomjs.rb
@@ -1053,7 +1066,7 @@ files:
1053
1066
  - tasks/linting.rake
1054
1067
  - tasks/testing.rake
1055
1068
  - tasks/testing/mspec_special_calls.rb
1056
- - tasks/testing/phantomjs1-sprockets.js
1069
+ - tasks/testing/sprockets-phantomjs.js
1057
1070
  - test/opal/test_keyword.rb
1058
1071
  - vendored-minitest/minitest.rb
1059
1072
  - vendored-minitest/minitest/assertions.rb
@@ -1119,7 +1132,7 @@ test_files:
1119
1132
  - spec/filters/bugs/set.rb
1120
1133
  - spec/filters/bugs/singleton.rb
1121
1134
  - spec/filters/bugs/string.rb
1122
- - spec/filters/bugs/strscan.rb
1135
+ - spec/filters/bugs/stringscanner.rb
1123
1136
  - spec/filters/bugs/struct.rb
1124
1137
  - spec/filters/bugs/time.rb
1125
1138
  - spec/filters/bugs/unboundmethod.rb
@@ -1176,6 +1189,7 @@ test_files:
1176
1189
  - spec/lib/lexer_spec.rb
1177
1190
  - spec/lib/parser/alias_spec.rb
1178
1191
  - spec/lib/parser/and_spec.rb
1192
+ - spec/lib/parser/aref_spec.rb
1179
1193
  - spec/lib/parser/attrasgn_spec.rb
1180
1194
  - spec/lib/parser/begin_spec.rb
1181
1195
  - spec/lib/parser/block_spec.rb
@@ -1193,6 +1207,7 @@ test_files:
1193
1207
  - spec/lib/parser/not_spec.rb
1194
1208
  - spec/lib/parser/op_asgn1_spec.rb
1195
1209
  - spec/lib/parser/op_asgn2_spec.rb
1210
+ - spec/lib/parser/op_asgn_spec.rb
1196
1211
  - spec/lib/parser/or_spec.rb
1197
1212
  - spec/lib/parser/return_spec.rb
1198
1213
  - spec/lib/parser/sclass_spec.rb
@@ -1215,6 +1230,8 @@ test_files:
1215
1230
  - spec/lib/sprockets/server_spec.rb
1216
1231
  - spec/lib/sprockets_spec.rb
1217
1232
  - spec/lib/tilt/opal_spec.rb
1233
+ - spec/mspec/opal/formatters.rb
1234
+ - spec/mspec/opal/runner.rb
1218
1235
  - spec/opal/compiler/irb_spec.rb
1219
1236
  - spec/opal/core/arity_spec.rb
1220
1237
  - spec/opal/core/array/intersection_spec.rb
@@ -1264,6 +1281,7 @@ test_files:
1264
1281
  - spec/opal/core/hash/internals_spec.rb
1265
1282
  - spec/opal/core/helpers_spec.rb
1266
1283
  - spec/opal/core/kernel/Array_spec.rb
1284
+ - spec/opal/core/kernel/at_exit_spec.rb
1267
1285
  - spec/opal/core/kernel/block_given_spec.rb
1268
1286
  - spec/opal/core/kernel/class_spec.rb
1269
1287
  - spec/opal/core/kernel/define_singleton_method_spec.rb
@@ -1275,6 +1293,7 @@ test_files:
1275
1293
  - spec/opal/core/kernel/instance_variable_defined_spec.rb
1276
1294
  - spec/opal/core/kernel/instance_variable_get_spec.rb
1277
1295
  - spec/opal/core/kernel/instance_variable_set_spec.rb
1296
+ - spec/opal/core/kernel/instance_variables_spec.rb
1278
1297
  - spec/opal/core/kernel/loop_spec.rb
1279
1298
  - spec/opal/core/kernel/match_spec.rb
1280
1299
  - spec/opal/core/kernel/method_spec.rb
@@ -1291,6 +1310,7 @@ test_files:
1291
1310
  - spec/opal/core/kernel/sprintf_spec.rb
1292
1311
  - spec/opal/core/language/block_spec.rb
1293
1312
  - spec/opal/core/language/class_spec.rb
1313
+ - spec/opal/core/language/equal_spec.rb
1294
1314
  - spec/opal/core/language/fixtures/array.rb
1295
1315
  - spec/opal/core/language/fixtures/block.rb
1296
1316
  - spec/opal/core/language/fixtures/break.rb
@@ -1311,13 +1331,14 @@ test_files:
1311
1331
  - spec/opal/core/language/regexp_spec.rb
1312
1332
  - spec/opal/core/language/send_spec.rb
1313
1333
  - spec/opal/core/language/string_spec.rb
1334
+ - spec/opal/core/language/ternary_operator_spec.rb
1314
1335
  - spec/opal/core/language/variables_spec.rb
1315
1336
  - spec/opal/core/language/versions/array_1.9.rb
1316
1337
  - spec/opal/core/language/versions/block_1.9.rb
1317
1338
  - spec/opal/core/language/versions/break_1.9.rb
1318
1339
  - spec/opal/core/language/versions/case_1.9.rb
1319
1340
  - spec/opal/core/language/versions/def_2_0_spec.rb
1320
- - spec/opal/core/language/versions/hash_1.9.rb
1341
+ - spec/opal/core/language/versions/hash_1_9_spec.rb
1321
1342
  - spec/opal/core/language/versions/literal_lambda_1.9.rb
1322
1343
  - spec/opal/core/language/versions/not_1.9.rb
1323
1344
  - spec/opal/core/language/versions/send_1.9.rb
@@ -1336,6 +1357,7 @@ test_files:
1336
1357
  - spec/opal/core/module/constants_spec.rb
1337
1358
  - spec/opal/core/module/fixtures/classes.rb
1338
1359
  - spec/opal/core/module/method_defined_spec.rb
1360
+ - spec/opal/core/module/method_lookup_spec.rb
1339
1361
  - spec/opal/core/module/module_function_spec.rb
1340
1362
  - spec/opal/core/module/name_spec.rb
1341
1363
  - spec/opal/core/module/public_method_defined_spec.rb
@@ -1430,6 +1452,7 @@ test_files:
1430
1452
  - spec/opal/stdlib/promise/trace_spec.rb
1431
1453
  - spec/opal/stdlib/promise/value_spec.rb
1432
1454
  - spec/opal/stdlib/promise/when_spec.rb
1455
+ - spec/opal/stdlib/strscan/scan_spec.rb
1433
1456
  - spec/opal/stdlib/template/paths_spec.rb
1434
1457
  - spec/opal/stdlib/thread/mutex_spec.rb
1435
1458
  - spec/opal/stdlib/thread/thread_queue_spec.rb