opal 0.7.2 → 0.8.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -1
  3. data/CHANGELOG.md +29 -0
  4. data/CONTRIBUTING.md +51 -4
  5. data/Gemfile +3 -0
  6. data/README.md +5 -5
  7. data/config.ru +1 -1
  8. data/examples/sinatra/Gemfile +1 -0
  9. data/examples/sinatra/config.ru +13 -3
  10. data/lib/mspec/opal/rake_task.rb +21 -30
  11. data/lib/mspec/opal/runner.rb +37 -0
  12. data/lib/mspec/opal/special_calls.rb +6 -0
  13. data/lib/opal/builder.rb +1 -0
  14. data/lib/opal/builder_processors.rb +5 -2
  15. data/lib/opal/cli_runners/phantom.js +10 -1
  16. data/lib/opal/compiler.rb +6 -3
  17. data/lib/opal/config.rb +48 -0
  18. data/lib/opal/nodes/call.rb +3 -2
  19. data/lib/opal/nodes/literal.rb +19 -2
  20. data/lib/opal/parser/grammar.rb +2224 -2196
  21. data/lib/opal/parser/grammar.y +25 -7
  22. data/lib/opal/parser/lexer.rb +12 -9
  23. data/lib/opal/path_reader.rb +1 -1
  24. data/lib/opal/sprockets/erb.rb +6 -20
  25. data/lib/opal/sprockets/path_reader.rb +4 -2
  26. data/lib/opal/sprockets/processor.rb +135 -80
  27. data/lib/opal/sprockets/server.rb +49 -78
  28. data/lib/opal/sprockets/source_map_header_patch.rb +41 -0
  29. data/lib/opal/sprockets/source_map_server.rb +115 -0
  30. data/lib/opal/version.rb +1 -1
  31. data/lib/tilt/opal.rb +48 -0
  32. data/opal.gemspec +1 -1
  33. data/opal/corelib/array.rb +179 -51
  34. data/opal/corelib/array/inheritance.rb +14 -0
  35. data/opal/corelib/boolean.rb +5 -0
  36. data/opal/corelib/hash.rb +1 -1
  37. data/opal/corelib/kernel.rb +660 -164
  38. data/opal/corelib/match_data.rb +44 -21
  39. data/opal/corelib/module.rb +83 -53
  40. data/opal/corelib/numeric.rb +15 -1
  41. data/opal/corelib/regexp.rb +31 -75
  42. data/opal/corelib/runtime.js +20 -8
  43. data/opal/corelib/string.rb +754 -243
  44. data/opal/corelib/string/inheritance.rb +20 -3
  45. data/opal/corelib/struct.rb +30 -6
  46. data/opal/corelib/variables.rb +2 -2
  47. data/spec/filters/bugs/array.rb +0 -39
  48. data/spec/filters/bugs/kernel.rb +10 -7
  49. data/spec/filters/bugs/module.rb +21 -0
  50. data/spec/filters/bugs/opal.rb +0 -5
  51. data/spec/filters/bugs/singleton.rb +0 -2
  52. data/spec/filters/bugs/string.rb +69 -315
  53. data/spec/filters/bugs/struct.rb +0 -16
  54. data/spec/filters/unsupported/encoding.rb +7 -0
  55. data/spec/filters/unsupported/float.rb +3 -0
  56. data/spec/filters/unsupported/integer_size.rb +52 -0
  57. data/spec/filters/unsupported/marshal.rb +4 -0
  58. data/spec/filters/unsupported/mutable_strings.rb +37 -0
  59. data/spec/filters/unsupported/private_methods.rb +11 -0
  60. data/spec/filters/unsupported/rational_numbers.rb +4 -0
  61. data/spec/filters/unsupported/regular_expressions.rb +47 -0
  62. data/spec/filters/unsupported/symbols.rb +7 -0
  63. data/spec/filters/unsupported/tainted.rb +23 -1
  64. data/spec/filters/unsupported/trusted.rb +5 -0
  65. data/spec/lib/fixtures/complex_sprockets.js.rb.erb +4 -0
  66. data/spec/lib/fixtures/jst_file.js.jst +1 -0
  67. data/spec/lib/parser/call_spec.rb +19 -0
  68. data/spec/lib/parser/def_spec.rb +6 -0
  69. data/spec/lib/sprockets/erb_spec.rb +17 -4
  70. data/spec/lib/sprockets/processor_spec.rb +50 -18
  71. data/spec/lib/sprockets/server_spec.rb +39 -11
  72. data/spec/lib/tilt/opal_spec.rb +19 -0
  73. data/spec/opal/core/kernel/format_spec.rb +10 -10
  74. data/spec/opal/core/language/predefined_spec.rb +10 -0
  75. data/spec/opal/core/object_id_spec.rb +56 -0
  76. data/spec/opal/core/runtime/bridged_classes_spec.rb +4 -4
  77. data/spec/opal/core/runtime_spec.rb +7 -0
  78. data/spec/opal/stdlib/native/native_class_spec.rb +1 -1
  79. data/spec/opal/stdlib/promise/always_spec.rb +30 -0
  80. data/spec/opal/stdlib/promise/then_spec.rb +8 -0
  81. data/spec/opal/stdlib/promise/trace_spec.rb +8 -0
  82. data/spec/rubyspecs +15 -104
  83. data/spec/spec_helper.rb +4 -0
  84. data/stdlib/native.rb +7 -18
  85. data/stdlib/nodejs/file.rb +1 -1
  86. data/stdlib/opal-parser.rb +1 -0
  87. data/stdlib/pp.rb +7 -5
  88. data/stdlib/promise.rb +53 -41
  89. data/tasks/testing.rake +8 -6
  90. metadata +28 -14
  91. data/spec/filters/bugs/match_data.rb +0 -13
  92. data/spec/filters/bugs/numeric.rb +0 -22
  93. data/spec/filters/bugs/regexp.rb +0 -9
  94. data/spec/filters/bugs/unknown.rb +0 -11
@@ -1,13 +0,0 @@
1
- opal_filter "MatchData" do
2
- fails "MatchData#regexp returns the pattern used in the match"
3
- fails "MatchData#values_at when passed a Range returns an array of the matching value"
4
-
5
- fails "MatchData#[Symbol] returns the corresponding named match when given a Symbol"
6
- fails "MatchData#[Symbol] returns the corresponding named match when given a String"
7
- fails "MatchData#[Symbol] returns the matching version of multiple corresponding named match"
8
- fails "MatchData#[Symbol] returns the last match when multiple named matches exist with the same name"
9
- fails "MatchData#[Symbol] returns nil on non-matching named matches"
10
- fails "MatchData#[Symbol] raises an IndexError if there is no named match corresponding to the Symbol"
11
- fails "MatchData#[Symbol] raises an IndexError if there is no named match corresponding to the String"
12
- fails "MatchData#[Symbol] returns matches in the String's encoding"
13
- end
@@ -1,22 +0,0 @@
1
- opal_filter "Fixnum bugs" do
2
- fails "Integer#downto [stop] when self and stop are Fixnums raises an ArgumentError for invalid endpoints"
3
- fails "Integer#upto [stop] when self and stop are Fixnums raises an ArgumentError for non-numeric endpoints"
4
- fails "Integer#even? returns true when self is an even number"
5
-
6
- fails "Fixnum#to_s when no base given returns self converted to a String using base 10"
7
-
8
- fails "Fixnum#zero? returns true if self is 0"
9
- end
10
-
11
- opal_filter "Fixnum#<< doesn't handle Bignum and large number checks" do
12
- fails "Fixnum#<< with n << m returns a Bignum == fixnum_min() * 2 when fixnum_min() << 1 and n < 0"
13
- fails "Fixnum#<< with n << m returns a Bignum == fixnum_max() * 2 when fixnum_max() << 1 and n > 0"
14
- fails "Fixnum#<< with n << m returns 0 when m < 0 and m is a Bignum"
15
- fails "Fixnum#<< with n << m returns 0 when m < 0 and m == p where 2**p > n >= 2**(p-1)"
16
- end
17
-
18
- opal_filter "Fixnum#>> doesn't handle Bignum" do
19
- fails "Fixnum#>> with n >> m returns a Bignum == fixnum_max() * 2 when fixnum_max() >> -1 and n > 0"
20
- fails "Fixnum#>> with n >> m returns a Bignum == fixnum_min() * 2 when fixnum_min() >> -1 and n < 0"
21
- fails "Fixnum#>> with n >> m returns 0 when m is a Bignum"
22
- end
@@ -1,9 +0,0 @@
1
- opal_filter "RegExp" do
2
- fails "Regexp#eql? is true if self and other have the same character set code"
3
- fails "Regexp#== is true if self and other have the same character set code"
4
- fails "Regexp#~ matches against the contents of $_"
5
- fails "Regexp#match uses the start as a character offset"
6
- fails "Regexp#match matches the input at a given position"
7
- fails "Regexp#match with [string, position] when given a positive position matches the input at a given position"
8
- fails "Regexp#match with [string, position] when given a negative position matches the input at a given position"
9
- end
@@ -1,11 +0,0 @@
1
- opal_filter "Kernel#Integer() fix broke mspec" do
2
- fails "Array#shuffle calls #to_f on the Object returned by #rand"
3
- fails "Array#shuffle raises a RangeError if the random generator returns a value less than 0.0"
4
- fails "Array#shuffle raises a RangeError if the random generator returns a value equal to 1.0"
5
- fails "Array#shuffle raises a RangeError if the random generator returns a value greater than 1.0"
6
- fails "A singleton class has class Bignum as the superclass of a Bignum instance"
7
- fails "Hash.[] ignores elements that are arrays of more than 2 elements"
8
- fails "Hash.[] creates a Hash; values can be provided as a list of value-invalid-pairs in an array"
9
- fails "Hash#default_proc= raises an error if passed nil"
10
- fails "ERB::Util.html_escape not escape characters except '& < > \"'"
11
- end