opal 0.10.6 → 0.11.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.codeclimate.yml +19 -0
- data/.gitmodules +1 -1
- data/.jshintrc +1 -2
- data/.travis.yml +26 -18
- data/CHANGELOG.md +89 -23
- data/{CODE_OF_CONDUCT.md → CONDUCT.md} +0 -0
- data/Gemfile +19 -21
- data/HACKING.md +2 -0
- data/README.md +7 -6
- data/Rakefile +1 -1
- data/appveyor.yml +21 -4
- data/benchmark-ips/bm_case.rb +33 -0
- data/benchmark-ips/bm_constants_lookup.rb +13 -0
- data/benchmark-ips/bm_is_number.rb +29 -0
- data/benchmark-ips/bm_symbol_to_proc.rb +19 -0
- data/benchmark/bm_constant_lookup_big.rb +799 -0
- data/benchmark/bm_constant_lookup_small.rb +59 -0
- data/benchmark/bm_module_definition_big.rb +400 -0
- data/benchmark/bm_module_definition_small.rb +30 -0
- data/bin/opal-repl +23 -1
- data/docs/compiled_ruby.md +16 -14
- data/docs/faq.md +3 -3
- data/docs/rspec.md +2 -1
- data/docs/unsupported_features.md +6 -4
- data/examples/rack/Gemfile +1 -0
- data/examples/rack/app/application.rb +14 -3
- data/examples/rack/app/user.rb +2 -0
- data/examples/rack/config.ru +1 -1
- data/examples/rack/index.html.erb +1 -0
- data/lib/opal.rb +6 -1
- data/lib/opal/ast/builder.rb +17 -0
- data/lib/opal/ast/node.rb +30 -0
- data/lib/opal/builder.rb +14 -3
- data/lib/opal/builder_processors.rb +1 -0
- data/lib/opal/cli.rb +45 -59
- data/lib/opal/cli_options.rb +11 -7
- data/lib/opal/cli_runners.rb +1 -0
- data/lib/opal/cli_runners/applescript.rb +3 -3
- data/lib/opal/cli_runners/nashorn.rb +1 -0
- data/lib/opal/cli_runners/nodejs.rb +4 -1
- data/lib/opal/cli_runners/phantom.js +1 -2
- data/lib/opal/cli_runners/phantomjs.rb +3 -2
- data/lib/opal/cli_runners/server.rb +1 -0
- data/lib/opal/compiler.rb +145 -94
- data/lib/opal/config.rb +1 -0
- data/lib/opal/deprecations.rb +18 -0
- data/lib/opal/erb.rb +1 -0
- data/lib/opal/errors.rb +1 -0
- data/lib/opal/fragment.rb +1 -0
- data/lib/opal/hike_path_finder.rb +1 -0
- data/lib/opal/nodes.rb +3 -0
- data/lib/opal/nodes/arglist.rb +2 -1
- data/lib/opal/nodes/args/initialize_kwargs.rb +1 -0
- data/lib/opal/nodes/args/kwarg.rb +7 -7
- data/lib/opal/nodes/args/kwoptarg.rb +6 -7
- data/lib/opal/nodes/args/kwrestarg.rb +5 -5
- data/lib/opal/nodes/args/mlhsarg.rb +3 -2
- data/lib/opal/nodes/args/normarg.rb +6 -7
- data/lib/opal/nodes/args/optarg.rb +5 -7
- data/lib/opal/nodes/args/post_args.rb +6 -5
- data/lib/opal/nodes/args/post_kwargs.rb +1 -0
- data/lib/opal/nodes/args/restarg.rb +7 -7
- data/lib/opal/nodes/array.rb +1 -0
- data/lib/opal/nodes/base.rb +24 -3
- data/lib/opal/nodes/call.rb +167 -155
- data/lib/opal/nodes/call_special.rb +31 -217
- data/lib/opal/nodes/case.rb +36 -22
- data/lib/opal/nodes/class.rb +4 -3
- data/lib/opal/nodes/constants.rb +28 -48
- data/lib/opal/nodes/csend.rb +25 -0
- data/lib/opal/nodes/def.rb +49 -16
- data/lib/opal/nodes/defined.rb +170 -60
- data/lib/opal/nodes/definitions.rb +40 -133
- data/lib/opal/nodes/defs.rb +29 -0
- data/lib/opal/nodes/for.rb +52 -25
- data/lib/opal/nodes/hash.rb +12 -35
- data/lib/opal/nodes/helpers.rb +27 -54
- data/lib/opal/nodes/if.rb +21 -32
- data/lib/opal/nodes/inline_args.rb +12 -13
- data/lib/opal/nodes/iter.rb +61 -36
- data/lib/opal/nodes/literal.rb +189 -116
- data/lib/opal/nodes/logic.rb +20 -25
- data/lib/opal/nodes/masgn.rb +20 -18
- data/lib/opal/nodes/module.rb +10 -11
- data/lib/opal/nodes/node_with_args.rb +14 -17
- data/lib/opal/nodes/rescue.rb +37 -70
- data/lib/opal/nodes/runtime_helpers.rb +8 -3
- data/lib/opal/nodes/scope.rb +9 -5
- data/lib/opal/nodes/singleton_class.rb +4 -3
- data/lib/opal/nodes/super.rb +115 -87
- data/lib/opal/nodes/top.rb +7 -2
- data/lib/opal/nodes/variables.rb +46 -35
- data/lib/opal/nodes/while.rb +11 -1
- data/lib/opal/nodes/yield.rb +1 -17
- data/lib/opal/parser.rb +28 -770
- data/lib/opal/path_reader.rb +5 -1
- data/lib/opal/paths.rb +10 -4
- data/lib/opal/regexp_anchors.rb +1 -0
- data/lib/opal/rewriter.rb +60 -0
- data/lib/opal/rewriters/base.rb +60 -0
- data/lib/opal/rewriters/binary_operator_assignment.rb +144 -0
- data/lib/opal/rewriters/block_to_iter.rb +17 -0
- data/lib/opal/rewriters/break_finder.rb +34 -0
- data/lib/opal/rewriters/dot_js_syntax.rb +60 -0
- data/lib/opal/rewriters/explicit_writer_return.rb +58 -0
- data/lib/opal/rewriters/js_reserved_words.rb +111 -0
- data/lib/opal/rewriters/logical_operator_assignment.rb +155 -0
- data/lib/opal/rewriters/opal_engine_check.rb +42 -0
- data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +67 -0
- data/lib/opal/server.rb +4 -0
- data/lib/opal/simple_server.rb +100 -0
- data/lib/opal/source_map.rb +1 -1
- data/lib/opal/util.rb +5 -5
- data/lib/opal/version.rb +2 -1
- data/lib/tilt/opal.rb +1 -0
- data/opal.gemspec +8 -7
- data/opal/README.md +1 -1
- data/opal/corelib/array.rb +137 -83
- data/opal/corelib/basic_object.rb +6 -6
- data/opal/corelib/class.rb +14 -11
- data/opal/corelib/complex.rb +5 -1
- data/opal/corelib/constants.rb +3 -3
- data/opal/corelib/enumerable.rb +129 -11
- data/opal/corelib/error.rb +35 -17
- data/opal/corelib/file.rb +65 -170
- data/opal/corelib/hash.rb +128 -13
- data/opal/corelib/helpers.rb +12 -15
- data/opal/corelib/io.rb +1 -0
- data/opal/corelib/kernel.rb +40 -21
- data/opal/corelib/marshal/read_buffer.rb +1 -1
- data/opal/corelib/method.rb +33 -13
- data/opal/corelib/module.rb +133 -81
- data/opal/corelib/number.rb +141 -25
- data/opal/corelib/numeric.rb +0 -8
- data/opal/corelib/process.rb +44 -4
- data/opal/corelib/random.rb +117 -0
- data/opal/corelib/random/seedrandom.js.rb +15 -0
- data/opal/corelib/range.rb +133 -10
- data/opal/corelib/regexp.rb +37 -9
- data/opal/corelib/runtime.js +601 -390
- data/opal/corelib/string.rb +39 -8
- data/opal/corelib/string/encoding.rb +51 -7
- data/opal/corelib/struct.rb +20 -0
- data/opal/corelib/time.rb +3 -3
- data/opal/corelib/variables.rb +1 -1
- data/opal/opal.rb +1 -0
- data/spec/filters/bugs/array.rb +5 -1
- data/spec/filters/bugs/basicobject.rb +2 -5
- data/spec/filters/bugs/bigdecimal.rb +8 -22
- data/spec/filters/bugs/class.rb +2 -1
- data/spec/filters/bugs/comparable.rb +5 -0
- data/spec/filters/bugs/date.rb +3 -3
- data/spec/filters/bugs/enumerable.rb +4 -11
- data/spec/filters/bugs/enumerator.rb +2 -4
- data/spec/filters/bugs/exception.rb +16 -2
- data/spec/filters/bugs/file.rb +8 -0
- data/spec/filters/bugs/float.rb +7 -1
- data/spec/filters/bugs/hash.rb +6 -2
- data/spec/filters/bugs/integer.rb +2 -0
- data/spec/filters/bugs/io.rb +8 -0
- data/spec/filters/bugs/kernel.rb +9 -138
- data/spec/filters/bugs/language.rb +89 -174
- data/spec/filters/bugs/marshal.rb +33 -35
- data/spec/filters/bugs/method.rb +0 -24
- data/spec/filters/bugs/module.rb +19 -55
- data/spec/filters/bugs/numeric.rb +0 -119
- data/spec/filters/bugs/pathname.rb +2 -0
- data/spec/filters/bugs/proc.rb +5 -4
- data/spec/filters/bugs/random.rb +7 -0
- data/spec/filters/bugs/range.rb +12 -120
- data/spec/filters/bugs/rational.rb +1 -1
- data/spec/filters/bugs/regexp.rb +2 -40
- data/spec/filters/bugs/set.rb +0 -1
- data/spec/filters/bugs/string.rb +5 -8
- data/spec/filters/bugs/stringscanner.rb +11 -19
- data/spec/filters/bugs/time.rb +7 -1
- data/spec/filters/bugs/unboundmethod.rb +1 -11
- data/spec/filters/unsupported/array.rb +5 -1
- data/spec/filters/unsupported/basicobject.rb +1 -1
- data/spec/filters/unsupported/bignum.rb +4 -1
- data/spec/filters/unsupported/class.rb +1 -1
- data/spec/filters/unsupported/delegator.rb +1 -1
- data/spec/filters/unsupported/enumerable.rb +1 -1
- data/spec/filters/unsupported/enumerator.rb +1 -1
- data/spec/filters/unsupported/file.rb +4 -0
- data/spec/filters/unsupported/fixnum.rb +1 -1
- data/spec/filters/unsupported/float.rb +4 -1
- data/spec/filters/unsupported/freeze.rb +27 -5
- data/spec/filters/unsupported/hash.rb +7 -15
- data/spec/filters/unsupported/integer.rb +1 -1
- data/spec/filters/unsupported/kernel.rb +2 -1
- data/spec/filters/unsupported/language.rb +6 -1
- data/spec/filters/unsupported/marshal.rb +1 -1
- data/spec/filters/unsupported/matchdata.rb +4 -1
- data/spec/filters/unsupported/math.rb +1 -1
- data/spec/filters/unsupported/pathname.rb +1 -1
- data/spec/filters/unsupported/privacy.rb +141 -9
- data/spec/filters/unsupported/proc.rb +1 -1
- data/spec/filters/unsupported/random.rb +4 -0
- data/spec/filters/unsupported/range.rb +7 -0
- data/spec/filters/unsupported/regexp.rb +25 -15
- data/spec/filters/unsupported/set.rb +1 -1
- data/spec/filters/unsupported/singleton.rb +1 -1
- data/spec/filters/unsupported/string.rb +110 -101
- data/spec/filters/unsupported/struct.rb +1 -1
- data/spec/filters/unsupported/symbol.rb +2 -1
- data/spec/filters/unsupported/taint.rb +22 -7
- data/spec/filters/unsupported/thread.rb +1 -1
- data/spec/filters/unsupported/time.rb +1 -1
- data/spec/lib/builder_spec.rb +17 -0
- data/spec/lib/cli_spec.rb +37 -8
- data/spec/lib/compiler/call_spec.rb +98 -66
- data/spec/lib/compiler_spec.rb +39 -30
- data/spec/lib/dependency_resolver_spec.rb +2 -2
- data/spec/lib/deprecations_spec.rb +16 -0
- data/spec/lib/fixtures/source_location_test.rb +7 -0
- data/spec/lib/rewriters/binary_operator_assignment_spec.rb +151 -0
- data/spec/lib/rewriters/block_to_iter_spec.rb +28 -0
- data/spec/lib/rewriters/dot_js_syntax_spec.rb +108 -0
- data/spec/lib/rewriters/explicit_writer_return_spec.rb +186 -0
- data/spec/lib/rewriters/js_reserved_words_spec.rb +116 -0
- data/spec/lib/rewriters/logical_operator_assignment_spec.rb +202 -0
- data/spec/lib/rewriters/opal_engine_check_spec.rb +82 -0
- data/spec/lib/rewriters/rubyspec/filters_rewriter_spec.rb +53 -0
- data/spec/lib/simple_server_spec.rb +54 -0
- data/spec/mspec-opal/formatters.rb +65 -17
- data/spec/mspec-opal/runner.rb +47 -67
- data/spec/opal/core/date_spec.rb +14 -0
- data/spec/opal/core/exception_spec.rb +10 -0
- data/spec/opal/core/hash/internals_spec.rb +10 -10
- data/spec/opal/core/kernel/rand_spec.rb +0 -4
- data/spec/opal/core/kernel/respond_to_spec.rb +5 -2
- data/spec/opal/core/language/constant_lookup_spec.rb +38 -0
- data/spec/opal/core/language/predefined_spec.rb +1 -1
- data/spec/opal/core/language/safe_navigator_spec.rb +7 -0
- data/spec/opal/core/language/send_spec.rb +1 -9
- data/spec/opal/core/language/string_spec.rb +8 -8
- data/spec/opal/core/language/versions/def_2_0_spec.rb +0 -4
- data/spec/opal/core/language_spec.rb +32 -0
- data/spec/opal/core/module/const_get_spec.rb +1 -1
- data/spec/opal/core/runtime/is_a_spec.rb +36 -0
- data/spec/opal/core/runtime/rescue_spec.rb +35 -0
- data/spec/opal/core/runtime_spec.rb +4 -4
- data/spec/opal/core/string_spec.rb +8 -8
- data/spec/opal/core/time_spec.rb +26 -17
- data/spec/opal/stdlib/erb/quoted.opalerb +1 -1
- data/spec/opal/stdlib/json/parse_spec.rb +4 -0
- data/spec/opal/stdlib/native/hash_spec.rb +16 -0
- data/spec/ruby_specs +2 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/support/rewriters_helper.rb +24 -0
- data/stdlib/base64.rb +4 -2
- data/stdlib/bigdecimal/bignumber.js.rb +1 -1
- data/stdlib/date.rb +18 -19
- data/stdlib/json.rb +16 -4
- data/stdlib/nashorn/file.rb +15 -0
- data/stdlib/native.rb +21 -12
- data/stdlib/nodejs/dir.rb +1 -1
- data/stdlib/nodejs/file.rb +49 -20
- data/stdlib/nodejs/io.rb +22 -1
- data/stdlib/nodejs/{node_modules/js-yaml/dist/js-yaml.js → js-yaml-3-6-1.js} +815 -626
- data/stdlib/nodejs/kernel.rb +3 -1
- data/stdlib/nodejs/package.json +0 -1
- data/stdlib/nodejs/stacktrace.rb +163 -0
- data/stdlib/nodejs/yaml.rb +2 -1
- data/stdlib/opal-platform.rb +15 -0
- data/stdlib/opal/platform.rb +5 -13
- data/stdlib/pathname.rb +1 -1
- data/stdlib/strscan.rb +15 -1
- data/stdlib/yaml.rb +1 -1
- data/tasks/benchmarking.rake +9 -0
- data/tasks/building.rake +24 -20
- data/tasks/linting.rake +24 -13
- data/tasks/testing.rake +322 -205
- data/tasks/testing/mspec_special_calls.rb +44 -15
- data/tasks/testing/opal_rspec_smoketest.Gemfile +13 -0
- data/test/nodejs/fixtures/hello.rb +1 -0
- data/test/nodejs/test_file.rb +57 -0
- data/test/nodejs/test_io.rb +18 -0
- data/test/nodejs/test_opal_builder.rb +12 -0
- data/test/opal/unsupported_and_bugs.rb +9 -0
- metadata +127 -240
- data/lib/opal/parser/grammar.rb +0 -6157
- data/lib/opal/parser/grammar.y +0 -2011
- data/lib/opal/parser/keywords.rb +0 -66
- data/lib/opal/parser/lexer.rb +0 -1352
- data/lib/opal/parser/parser_scope.rb +0 -28
- data/lib/opal/parser/sexp.rb +0 -90
- data/lib/opal/sprockets.rb +0 -77
- data/lib/opal/sprockets/environment.rb +0 -23
- data/lib/opal/sprockets/erb.rb +0 -28
- data/lib/opal/sprockets/path_reader.rb +0 -36
- data/lib/opal/sprockets/processor.rb +0 -173
- data/lib/opal/sprockets/server.rb +0 -133
- data/lib/opal/sprockets/source_map_header_patch.rb +0 -41
- data/lib/opal/sprockets/source_map_server.rb +0 -117
- data/spec/filters/bugs/compiler_opal.rb +0 -5
- data/spec/filters/bugs/language_opal.rb +0 -88
- data/spec/filters/unsupported/module.rb +0 -8
- data/spec/lib/compiler/pre_processed_conditionals_spec.rb +0 -87
- data/spec/lib/lexer_spec.rb +0 -110
- data/spec/lib/parser/alias_spec.rb +0 -26
- data/spec/lib/parser/and_spec.rb +0 -13
- data/spec/lib/parser/aref_spec.rb +0 -10
- data/spec/lib/parser/attrasgn_spec.rb +0 -28
- data/spec/lib/parser/begin_spec.rb +0 -42
- data/spec/lib/parser/block_spec.rb +0 -12
- data/spec/lib/parser/break_spec.rb +0 -17
- data/spec/lib/parser/call_spec.rb +0 -201
- data/spec/lib/parser/class_spec.rb +0 -35
- data/spec/lib/parser/comments_spec.rb +0 -11
- data/spec/lib/parser/def_spec.rb +0 -109
- data/spec/lib/parser/if_spec.rb +0 -26
- data/spec/lib/parser/iter_spec.rb +0 -59
- data/spec/lib/parser/lambda_spec.rb +0 -219
- data/spec/lib/parser/literal_spec.rb +0 -118
- data/spec/lib/parser/masgn_spec.rb +0 -37
- data/spec/lib/parser/module_spec.rb +0 -27
- data/spec/lib/parser/not_spec.rb +0 -21
- data/spec/lib/parser/op_asgn1_spec.rb +0 -23
- data/spec/lib/parser/op_asgn2_spec.rb +0 -23
- data/spec/lib/parser/op_asgn_spec.rb +0 -17
- data/spec/lib/parser/or_spec.rb +0 -13
- data/spec/lib/parser/return_spec.rb +0 -22
- data/spec/lib/parser/sclass_spec.rb +0 -21
- data/spec/lib/parser/string_spec.rb +0 -286
- data/spec/lib/parser/super_spec.rb +0 -20
- data/spec/lib/parser/unary_spec.rb +0 -52
- data/spec/lib/parser/undef_spec.rb +0 -19
- data/spec/lib/parser/unless_spec.rb +0 -13
- data/spec/lib/parser/variables_spec.rb +0 -112
- data/spec/lib/parser/while_spec.rb +0 -15
- data/spec/lib/parser/yield_spec.rb +0 -20
- data/spec/lib/sprockets/erb_spec.rb +0 -38
- data/spec/lib/sprockets/path_reader_spec.rb +0 -41
- data/spec/lib/sprockets/processor_spec.rb +0 -79
- data/spec/lib/sprockets/server_spec.rb +0 -102
- data/spec/lib/sprockets_spec.rb +0 -39
- data/spec/lib/tilt/opal_spec.rb +0 -37
- data/spec/opal/core/language/block_spec.rb +0 -538
- data/spec/opal/core/language/proc_spec.rb +0 -263
- data/spec/opal/core/language/variables_spec.rb +0 -1366
- data/spec/opal/core/runtime/block_send_spec.rb +0 -28
- data/spec/opal/core/runtime/send_spec.rb +0 -34
- data/spec/support/parser_helpers.rb +0 -37
- data/stdlib/nodejs/node_modules/js-yaml/HISTORY.md +0 -277
- data/stdlib/nodejs/node_modules/js-yaml/LICENSE +0 -21
- data/stdlib/nodejs/node_modules/js-yaml/README.md +0 -288
- data/stdlib/nodejs/node_modules/js-yaml/bin/js-yaml.js +0 -140
- data/stdlib/nodejs/node_modules/js-yaml/bower.json +0 -23
- data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.min.js +0 -3
- data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.js +0 -102
- data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.yml +0 -18
- data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.js +0 -31
- data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.json +0 -22
- data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.js +0 -18
- data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.yml +0 -197
- data/stdlib/nodejs/node_modules/js-yaml/index.js +0 -7
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml.js +0 -39
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/common.js +0 -62
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/dumper.js +0 -554
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/exception.js +0 -25
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/loader.js +0 -1581
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/mark.js +0 -78
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema.js +0 -103
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/core.js +0 -18
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +0 -25
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +0 -28
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +0 -17
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/json.js +0 -25
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type.js +0 -61
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/binary.js +0 -133
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/bool.js +0 -37
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/float.js +0 -110
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/int.js +0 -183
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/function.js +0 -85
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +0 -84
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +0 -27
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/map.js +0 -8
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/merge.js +0 -12
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/null.js +0 -36
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/omap.js +0 -56
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/pairs.js +0 -61
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/seq.js +0 -8
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/set.js +0 -33
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/str.js +0 -8
- data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +0 -98
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/HISTORY.md +0 -115
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/LICENSE +0 -21
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +0 -239
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +0 -36
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/choice.js +0 -22
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/constants.js +0 -59
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/help.js +0 -13
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +0 -33
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/parents.js +0 -28
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +0 -23
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +0 -49
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sum.js +0 -35
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +0 -270
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/index.js +0 -1
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action.js +0 -146
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +0 -55
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +0 -47
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +0 -40
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +0 -48
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +0 -50
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +0 -43
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +0 -27
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +0 -26
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +0 -148
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +0 -50
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +0 -481
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +0 -14
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +0 -50
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +0 -54
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +0 -75
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +0 -1168
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/const.js +0 -18
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +0 -88
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +0 -798
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +0 -77
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.npmignore +0 -2
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.travis.yml +0 -8
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +0 -825
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/bower.json +0 -33
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +0 -11
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/foo.js +0 -10
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/gulpfile.js +0 -26
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +0 -673
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +0 -107
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +0 -23
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +0 -22
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +0 -69
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +0 -6
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +0 -1415
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/package.json +0 -62
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/README.md +0 -73
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +0 -117
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +0 -177
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/esprima.js +0 -3908
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/package.json +0 -69
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/compat.js +0 -239
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/reflect.js +0 -422
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/run.js +0 -66
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/runner.js +0 -387
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/test.js +0 -20238
- data/stdlib/nodejs/node_modules/js-yaml/package.json +0 -83
data/opal/corelib/string.rb
CHANGED
@@ -566,7 +566,7 @@ class String < `String`
|
|
566
566
|
|
567
567
|
def inspect
|
568
568
|
%x{
|
569
|
-
var escapable = /[\\\"\x00-\x1f\
|
569
|
+
var escapable = /[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
570
570
|
meta = {
|
571
571
|
'\u0007': '\\a',
|
572
572
|
'\u001b': '\\e',
|
@@ -627,6 +627,10 @@ class String < `String`
|
|
627
627
|
`self.replace(/^\s*/, '')`
|
628
628
|
end
|
629
629
|
|
630
|
+
def ascii_only?
|
631
|
+
`self.match(/[ -~\n]*/)[0] === self`
|
632
|
+
end
|
633
|
+
|
630
634
|
def match(pattern, pos = undefined, &block)
|
631
635
|
if String === pattern || pattern.respond_to?(:to_str)
|
632
636
|
pattern = Regexp.new(pattern.to_str)
|
@@ -957,7 +961,7 @@ class String < `String`
|
|
957
961
|
string = self.toString(),
|
958
962
|
index = 0,
|
959
963
|
match,
|
960
|
-
i;
|
964
|
+
i, ii;
|
961
965
|
|
962
966
|
if (pattern.$$is_regexp) {
|
963
967
|
pattern = new RegExp(pattern.source, 'gm' + (pattern.ignoreCase ? 'i' : ''));
|
@@ -992,7 +996,7 @@ class String < `String`
|
|
992
996
|
|
993
997
|
if (limit < 0) {
|
994
998
|
if (match !== null && match[0] === '' && pattern.source.indexOf('(?=') === -1) {
|
995
|
-
for (i = 0
|
999
|
+
for (i = 0, ii = match.length; i < ii; i++) {
|
996
1000
|
result.push('');
|
997
1001
|
}
|
998
1002
|
}
|
@@ -1218,13 +1222,17 @@ class String < `String`
|
|
1218
1222
|
end
|
1219
1223
|
|
1220
1224
|
def to_proc
|
1221
|
-
|
1222
|
-
sym = self
|
1225
|
+
sym = `self.valueOf()`
|
1223
1226
|
|
1224
1227
|
proc do |*args, &block|
|
1225
|
-
|
1226
|
-
|
1227
|
-
|
1228
|
+
%x{
|
1229
|
+
if (args.length === 0) {
|
1230
|
+
#{raise ArgumentError, "no receiver given"}
|
1231
|
+
}
|
1232
|
+
var obj = args.shift();
|
1233
|
+
if (obj == null) obj = nil;
|
1234
|
+
return Opal.send(obj, sym, args, block);
|
1235
|
+
}
|
1228
1236
|
end
|
1229
1237
|
end
|
1230
1238
|
|
@@ -1692,6 +1700,29 @@ class String < `String`
|
|
1692
1700
|
def self._load(*args)
|
1693
1701
|
self.new(*args)
|
1694
1702
|
end
|
1703
|
+
|
1704
|
+
def unpack(pattern)
|
1705
|
+
%x{
|
1706
|
+
function stringToBytes(string) {
|
1707
|
+
var i,
|
1708
|
+
singleByte,
|
1709
|
+
l = string.length,
|
1710
|
+
result = [];
|
1711
|
+
|
1712
|
+
for (i = 0; i < l; i++) {
|
1713
|
+
singleByte = string.charCodeAt(i);
|
1714
|
+
result.push(singleByte);
|
1715
|
+
}
|
1716
|
+
return result;
|
1717
|
+
}
|
1718
|
+
}
|
1719
|
+
case pattern
|
1720
|
+
when "U*", "C*"
|
1721
|
+
`stringToBytes(self);`
|
1722
|
+
else
|
1723
|
+
raise NotImplementedError
|
1724
|
+
end
|
1725
|
+
end
|
1695
1726
|
end
|
1696
1727
|
|
1697
1728
|
Symbol = String
|
@@ -93,8 +93,8 @@ Encoding.register "UTF-8", aliases: ["CP65001"], ascii: true do
|
|
93
93
|
}
|
94
94
|
end
|
95
95
|
|
96
|
-
def bytesize
|
97
|
-
bytes.length
|
96
|
+
def bytesize(string)
|
97
|
+
string.bytes.length
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
@@ -110,8 +110,42 @@ Encoding.register "UTF-16LE" do
|
|
110
110
|
}
|
111
111
|
end
|
112
112
|
|
113
|
-
def bytesize
|
114
|
-
bytes.length
|
113
|
+
def bytesize(string)
|
114
|
+
string.bytes.length
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
Encoding.register "UTF-16BE" do
|
119
|
+
def each_byte(string, &block)
|
120
|
+
%x{
|
121
|
+
for (var i = 0, length = string.length; i < length; i++) {
|
122
|
+
var code = string.charCodeAt(i);
|
123
|
+
|
124
|
+
#{yield `code >> 8`};
|
125
|
+
#{yield `code & 0xff`};
|
126
|
+
}
|
127
|
+
}
|
128
|
+
end
|
129
|
+
|
130
|
+
def bytesize(string)
|
131
|
+
string.bytes.length
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
Encoding.register "UTF-32LE" do
|
136
|
+
def each_byte(string, &block)
|
137
|
+
%x{
|
138
|
+
for (var i = 0, length = string.length; i < length; i++) {
|
139
|
+
var code = string.charCodeAt(i);
|
140
|
+
|
141
|
+
#{yield `code & 0xff`};
|
142
|
+
#{yield `code >> 8`};
|
143
|
+
}
|
144
|
+
}
|
145
|
+
end
|
146
|
+
|
147
|
+
def bytesize(string)
|
148
|
+
string.bytes.length
|
115
149
|
end
|
116
150
|
end
|
117
151
|
|
@@ -124,8 +158,8 @@ Encoding.register "ASCII-8BIT", aliases: ["BINARY"], ascii: true do
|
|
124
158
|
}
|
125
159
|
end
|
126
160
|
|
127
|
-
def bytesize
|
128
|
-
bytes.length
|
161
|
+
def bytesize(string)
|
162
|
+
string.bytes.length
|
129
163
|
end
|
130
164
|
end
|
131
165
|
|
@@ -157,7 +191,12 @@ class String
|
|
157
191
|
end
|
158
192
|
|
159
193
|
def force_encoding(encoding)
|
160
|
-
|
194
|
+
%x{
|
195
|
+
if (encoding === self.encoding) {
|
196
|
+
return self;
|
197
|
+
}
|
198
|
+
}
|
199
|
+
encoding = Opal.coerce_to!(encoding, String, :to_s)
|
161
200
|
encoding = Encoding.find(encoding)
|
162
201
|
|
163
202
|
return self if encoding == @encoding
|
@@ -174,4 +213,9 @@ class String
|
|
174
213
|
def getbyte(idx)
|
175
214
|
@encoding.getbyte(self, idx)
|
176
215
|
end
|
216
|
+
|
217
|
+
# stub
|
218
|
+
def valid_encoding?
|
219
|
+
true
|
220
|
+
end
|
177
221
|
end
|
data/opal/corelib/struct.rb
CHANGED
@@ -261,6 +261,26 @@ class Struct
|
|
261
261
|
}
|
262
262
|
end
|
263
263
|
|
264
|
+
def dig(key, *keys)
|
265
|
+
if `key.$$is_string && self.$$data.hasOwnProperty(key)`
|
266
|
+
item = `self.$$data[key] || nil`
|
267
|
+
else
|
268
|
+
item = nil
|
269
|
+
end
|
270
|
+
|
271
|
+
%x{
|
272
|
+
if (item === nil || keys.length === 0) {
|
273
|
+
return item;
|
274
|
+
}
|
275
|
+
}
|
276
|
+
|
277
|
+
unless item.respond_to?(:dig)
|
278
|
+
raise TypeError, "#{item.class} does not have #dig method"
|
279
|
+
end
|
280
|
+
|
281
|
+
item.dig(*keys)
|
282
|
+
end
|
283
|
+
|
264
284
|
def self._load(args)
|
265
285
|
attributes = args.values_at(*members)
|
266
286
|
self.new(*attributes)
|
data/opal/corelib/time.rb
CHANGED
@@ -279,7 +279,7 @@ class Time < `Date`
|
|
279
279
|
end
|
280
280
|
|
281
281
|
def ==(other)
|
282
|
-
`#{to_f} === #{other.to_f}`
|
282
|
+
Time === other && (`#{to_f} === #{other.to_f}`)
|
283
283
|
end
|
284
284
|
|
285
285
|
def asctime
|
@@ -391,7 +391,7 @@ class Time < `Date`
|
|
391
391
|
result = string.match(/[A-Z]{3,4}/)[0];
|
392
392
|
}
|
393
393
|
else {
|
394
|
-
result = string.match(/\(
|
394
|
+
result = string.match(/\([^)]+\)/)[0].match(/[A-Z]/g).join('');
|
395
395
|
}
|
396
396
|
|
397
397
|
if (result == "GMT" && /(GMT\W*\d{4})/.test(string)) {
|
@@ -694,7 +694,7 @@ class Time < `Date`
|
|
694
694
|
`#{wday} == 2`
|
695
695
|
end
|
696
696
|
|
697
|
-
alias tv_sec
|
697
|
+
alias tv_sec to_i
|
698
698
|
|
699
699
|
alias tv_usec usec
|
700
700
|
|
data/opal/corelib/variables.rb
CHANGED
data/opal/opal.rb
CHANGED
data/spec/filters/bugs/array.rb
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
opal_filter "Array" do
|
2
|
+
fails "Array#delete_if updates the receiver after all blocks"
|
3
|
+
fails "Array#flatten does not call #to_ary on elements beyond the given level"
|
2
4
|
fails "Array#flatten performs respond_to? and method_missing-aware checks when coercing elements to array"
|
3
5
|
fails "Array#flatten with a non-Array object in the Array calls #method_missing if defined"
|
4
6
|
fails "Array#join raises a NoMethodError if an element does not respond to #to_str, #to_ary, or #to_s"
|
7
|
+
fails "Array#keep_if updates the receiver after all blocks"
|
5
8
|
fails "Array#partition returns in the left array values for which the block evaluates to true"
|
6
9
|
fails "Array#rassoc calls elem == obj on the second element of each contained array"
|
7
10
|
fails "Array#rassoc does not check the last element in each contained but speficically the second"
|
11
|
+
fails "Array#reject! updates the receiver after all blocks"
|
8
12
|
fails "Array#select returns a new array of elements for which block is true"
|
13
|
+
fails "Array#select! updates the receiver after all blocks"
|
9
14
|
fails "Array#uniq! properly handles recursive arrays"
|
10
15
|
fails "Array#zip fills nil when the given enumereator is shorter than self"
|
11
|
-
fails "Array.[] can unpack 2 or more nested referenced array"
|
12
16
|
end
|
@@ -1,16 +1,13 @@
|
|
1
1
|
opal_filter "BasicObject" do
|
2
|
-
fails "BasicObject does not define built-in constants (according to const_defined?)"
|
3
|
-
fails "BasicObject does not define built-in constants (according to defined?)"
|
4
|
-
fails "BasicObject raises NameError when referencing built-in constants"
|
5
2
|
fails "BasicObject raises NoMethodError for nonexistent methods after #method_missing is removed"
|
6
3
|
fails "BasicObject#initialize does not accept arguments"
|
7
4
|
fails "BasicObject#instance_eval raises a TypeError when defining methods on an immediate"
|
8
5
|
fails "BasicObject#instance_eval raises a TypeError when defining methods on numerics"
|
9
|
-
fails "BasicObject#instance_eval sets class variables in the receiver"
|
10
6
|
fails "BasicObject#instance_eval evaluates string with given filename and linenumber"
|
11
7
|
fails "BasicObject#instance_exec binds the block's binding self to the receiver"
|
12
8
|
fails "BasicObject#instance_exec raises a LocalJumpError unless given a block"
|
13
9
|
fails "BasicObject#instance_exec raises a TypeError when defining methods on an immediate"
|
14
10
|
fails "BasicObject#instance_exec raises a TypeError when defining methods on numerics"
|
15
|
-
fails "BasicObject#
|
11
|
+
fails "BasicObject#method_missing for an instance sets the receiver of the raised NoMethodError"
|
12
|
+
fails "BasicObject#method_missing for an instance sets the receiver of the raised NoMethodError"
|
16
13
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
opal_filter "BigDecimal" do
|
2
|
-
fails "BigDecimal#% raises TypeError if the argument cannot be coerced to BigDecimal"
|
3
2
|
fails "BigDecimal#% returns NaN if NaN is involved"
|
4
3
|
fails "BigDecimal#% returns NaN if the dividend is Infinity"
|
5
|
-
fails "BigDecimal#% returns a [Float value] when the argument is Float"
|
6
4
|
fails "BigDecimal#% returns self modulo other"
|
7
5
|
fails "BigDecimal#% returns the dividend if the divisor is Infinity"
|
8
6
|
fails "BigDecimal#** 0 to power of 0 is 1"
|
@@ -21,16 +19,13 @@ opal_filter "BigDecimal" do
|
|
21
19
|
fails "BigDecimal#<=> returns 1 if a > b" #fails only with mock object
|
22
20
|
fails "BigDecimal#> properly handles infinity values" #fails only with mock object
|
23
21
|
fails "BigDecimal#>= properly handles infinity values" #fails only with mock object
|
24
|
-
fails "BigDecimal#ceil returns n digits right of the decimal point if given n > 0"
|
25
22
|
fails "BigDecimal#ceil returns the smallest integer greater or equal to self, if n is unspecified"
|
26
23
|
fails "BigDecimal#ceil sets n digits left of the decimal point to 0, if given n < 0"
|
27
24
|
fails "BigDecimal#coerce returns [other, self] both as BigDecimal"
|
28
25
|
fails "BigDecimal#div returns a / b with optional precision" #fails the case of > 20 decimal places for to_s('F')
|
29
26
|
fails "BigDecimal#div with precision set to 0 returns a / b" #fails a single assertion: @one.send(@method, BigDecimal('-2E5555'), *@object).should == BigDecimal('-0.5E-5555')
|
30
|
-
fails "BigDecimal#divmod Can be reversed with * and +"
|
31
27
|
fails "BigDecimal#divmod array contains quotient and modulus as BigDecimal"
|
32
|
-
fails "BigDecimal#divmod
|
33
|
-
fails "BigDecimal#divmod raises TypeError if the argument cannot be coerced to BigDecimal"
|
28
|
+
fails "BigDecimal#divmod can be reversed with * and +" # Expected 0 to equal -1
|
34
29
|
fails "BigDecimal#divmod returns an array of Infinity and NaN if the dividend is Infinity"
|
35
30
|
fails "BigDecimal#divmod returns an array of two NaNs if NaN is involved"
|
36
31
|
fails "BigDecimal#divmod returns an array of zero and the dividend if the divisor is Infinity"
|
@@ -57,18 +52,10 @@ opal_filter "BigDecimal" do
|
|
57
52
|
fails "BigDecimal#inspect looks like this"
|
58
53
|
fails "BigDecimal#inspect returns String starting with #"
|
59
54
|
fails "BigDecimal#inspect value after first comma is value as string"
|
60
|
-
fails "BigDecimal#mod_part_of_divmod raises TypeError if the argument cannot be coerced to BigDecimal"
|
61
55
|
fails "BigDecimal#mod_part_of_divmod returns NaN if NaN is involved"
|
62
56
|
fails "BigDecimal#mod_part_of_divmod returns NaN if the dividend is Infinity"
|
63
|
-
fails "BigDecimal#mod_part_of_divmod returns a [Float value] when the argument is Float"
|
64
57
|
fails "BigDecimal#mod_part_of_divmod returns self modulo other"
|
65
58
|
fails "BigDecimal#mod_part_of_divmod returns the dividend if the divisor is Infinity"
|
66
|
-
fails "BigDecimal#modulo raises TypeError if the argument cannot be coerced to BigDecimal"
|
67
|
-
fails "BigDecimal#modulo returns NaN if NaN is involved"
|
68
|
-
fails "BigDecimal#modulo returns NaN if the dividend is Infinity"
|
69
|
-
fails "BigDecimal#modulo returns a [Float value] when the argument is Float"
|
70
|
-
fails "BigDecimal#modulo returns self modulo other"
|
71
|
-
fails "BigDecimal#modulo returns the dividend if the divisor is Infinity"
|
72
59
|
fails "BigDecimal#power 0 to power of 0 is 1"
|
73
60
|
fails "BigDecimal#power 0 to powers < 0 is Infinity"
|
74
61
|
fails "BigDecimal#power other powers of 0 are 0"
|
@@ -100,13 +87,13 @@ opal_filter "BigDecimal" do
|
|
100
87
|
fails "BigDecimal#round uses default rounding method unless given"
|
101
88
|
fails "BigDecimal#sign returns negative value if BigDecimal less than 0"
|
102
89
|
fails "BigDecimal#sign returns positive value if BigDecimal greater than 0"
|
103
|
-
fails "BigDecimal#split
|
104
|
-
fails "BigDecimal#split
|
105
|
-
fails "BigDecimal#split
|
106
|
-
fails "BigDecimal#split
|
107
|
-
fails "BigDecimal#split
|
108
|
-
fails "BigDecimal#split Third value: the base (currently always ten)"
|
90
|
+
fails "BigDecimal#split first value: -1 for numbers < 0" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
|
91
|
+
fails "BigDecimal#split first value: 0 if BigDecimal is NaN" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
|
92
|
+
fails "BigDecimal#split first value: 1 for numbers > 0" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
|
93
|
+
fails "BigDecimal#split fourth value: the exponent" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
|
94
|
+
fails "BigDecimal#split second value: a string with the significant digits" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
|
109
95
|
fails "BigDecimal#split splits BigDecimal in an array with four values"
|
96
|
+
fails "BigDecimal#split third value: the base (currently always ten)" # NoMethodError: undefined method `split' for 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593014782083152134043
|
110
97
|
fails "BigDecimal#sqrt raises ArgumentError if 2 arguments are given"
|
111
98
|
fails "BigDecimal#sqrt raises ArgumentError if a negative number is given"
|
112
99
|
fails "BigDecimal#sqrt raises ArgumentError when no argument is given"
|
@@ -147,12 +134,11 @@ opal_filter "BigDecimal" do
|
|
147
134
|
fails "BigDecimal.mode raise an exception if the flag is true"
|
148
135
|
fails "BigDecimal.mode returns Infinity when too big"
|
149
136
|
fails "BigDecimal.mode returns the appropriate value and continue the computation if the flag is false"
|
150
|
-
fails "BigDecimal.new
|
137
|
+
fails "BigDecimal.new accepts significant digits >= given precision" # NoMethodError: undefined method `precs' for 3.1415923
|
151
138
|
fails "BigDecimal.new allows for [eEdD] as exponent separator"
|
152
139
|
fails "BigDecimal.new allows for underscores in all parts"
|
153
140
|
fails "BigDecimal.new creates a new object of class BigDecimal"
|
154
141
|
fails "BigDecimal.new determines precision from initial value"
|
155
|
-
fails "BigDecimal.new ignores leading whitespace"
|
156
142
|
fails "BigDecimal.new ignores trailing garbage"
|
157
143
|
fails "BigDecimal.new raises ArgumentError when Float is used without precision"
|
158
144
|
fails "BigDecimal.new treats invalid strings as 0.0"
|
data/spec/filters/bugs/class.rb
CHANGED
@@ -3,8 +3,9 @@ opal_filter "Class" do
|
|
3
3
|
fails "Class#dup duplicates both the class and the singleton class"
|
4
4
|
fails "Class#dup retains an included module in the ancestor chain for the singleton class"
|
5
5
|
fails "Class#dup retains the correct ancestor chain for the singleton class"
|
6
|
-
fails "Class#initialize raises a TypeError when called on already initialized classes"
|
7
6
|
fails "Class#initialize raises a TypeError when called on BasicObject"
|
7
|
+
fails "Class#initialize raises a TypeError when called on already initialized classes"
|
8
8
|
fails "Class#initialize when given the Class raises a TypeError"
|
9
|
+
fails "Class#new uses the internal allocator and does not call #allocate" # RuntimeError: allocate should not be called
|
9
10
|
fails "Class.new raises a TypeError if passed a metaclass"
|
10
11
|
end
|
@@ -0,0 +1,5 @@
|
|
1
|
+
opal_filter "Comparable" do
|
2
|
+
fails "Comparable#== when #<=> raises an exception if it is a StandardError lets it go through"
|
3
|
+
fails "Comparable#== when #<=> raises an exception if it is a subclass of StandardError lets it go through"
|
4
|
+
fails "Comparable#== when #<=> returns nor nil neither an Integer raises an ArgumentError"
|
5
|
+
end
|
data/spec/filters/bugs/date.rb
CHANGED
@@ -5,8 +5,8 @@ opal_filter "Date" do
|
|
5
5
|
fails "Date#civil creates a Date for different calendar reform dates"
|
6
6
|
fails "Date#civil doesn't create dates for invalid arguments"
|
7
7
|
fails "Date#commercial creates a Date for Julian Day Number day 0 by default"
|
8
|
-
fails "Date#commercial
|
9
|
-
fails "Date#commercial
|
8
|
+
fails "Date#commercial creates a Date for the correct day given the year, week and day number" # NoMethodError: undefined method `commercial' for Date
|
9
|
+
fails "Date#commercial creates a Date for the monday in the year and week given" # NoMethodError: undefined method `commercial' for Date
|
10
10
|
fails "Date#commercial creates only Date objects for valid weeks"
|
11
11
|
fails "Date#cwyear determines the commercial year"
|
12
12
|
fails "Date#day_fraction determines the day fraction"
|
@@ -47,9 +47,9 @@ opal_filter "Date" do
|
|
47
47
|
fails "Date#strptime parses a commercial week"
|
48
48
|
fails "Date#strptime parses a commercial year with leading zeroes"
|
49
49
|
fails "Date#strptime parses a commercial year with only two digits"
|
50
|
+
fails "Date#strptime parses a date given MM/DD/YY"
|
50
51
|
fails "Date#strptime parses a date given as YYYY-MM-DD"
|
51
52
|
fails "Date#strptime parses a date given in full notation"
|
52
|
-
fails "Date#strptime parses a date given MM/DD/YY"
|
53
53
|
fails "Date#strptime parses a date with slashes"
|
54
54
|
fails "Date#strptime parses a full date"
|
55
55
|
fails "Date#strptime parses a full day name"
|
@@ -1,6 +1,9 @@
|
|
1
1
|
opal_filter "Enumerable" do
|
2
|
+
fails "Enumerable#chunk_while on a single-element array ignores the block and returns an enumerator that yields [element]" # Expected [] to equal [[1]]
|
2
3
|
fails "Enumerable#first returns a gathered array from yield parameters"
|
3
4
|
fails "Enumerable#grep with a block calls the block with gathered array when yielded with multiple arguments"
|
5
|
+
fails "Enumerable#grep_v with block calls the block with gathered array when yielded with multiple arguments"
|
6
|
+
fails "Enumerable#grep_v without block compares pattern with gathered array when yielded with multiple arguments"
|
4
7
|
fails "Enumerable#max_by when called with an argument n when n is nil returns the maximum element"
|
5
8
|
fails "Enumerable#max_by when called with an argument n with a block on a enumerable of length x where x < n returns an array containing the maximum n elements of length n"
|
6
9
|
fails "Enumerable#max_by when called with an argument n with a block returns an array containing the maximum n elements based on the block's value"
|
@@ -23,17 +26,8 @@ opal_filter "Enumerable" do
|
|
23
26
|
fails "Enumerable#minmax_by returns the object that appears first in #each in case of a tie"
|
24
27
|
fails "Enumerable#minmax_by uses min/max.<=>(current) to determine order"
|
25
28
|
fails "Enumerable#reverse_each gathers whole arrays as elements when each yields multiple"
|
26
|
-
fails "Enumerable#slice_after raises an ArgumentError when given an incorrect number of arguments"
|
27
|
-
fails "Enumerable#slice_after when given a block and an argument raises an ArgumentError"
|
28
|
-
fails "Enumerable#slice_after when given a block and no argument calls the block to determine when to yield"
|
29
|
-
fails "Enumerable#slice_after when given an argument and no block calls === on the argument to determine when to yield"
|
30
|
-
fails "Enumerable#slice_after when given an argument and no block doesn't yield an empty array if the filter matches the first entry or the last entry"
|
31
|
-
fails "Enumerable#slice_after when given an argument and no block uses standard boolean as a test"
|
32
|
-
fails "Enumerable#slice_when when given a block calls the block for length of the receiver enumerable minus one times"
|
33
|
-
fails "Enumerable#slice_when when given a block returns an enumerator"
|
34
|
-
fails "Enumerable#slice_when when given a block splits chunks between adjacent elements i and j where the block returns true"
|
35
|
-
fails "Enumerable#slice_when when not given a block raises an ArgumentError"
|
36
29
|
fails "Enumerable#slice_when when an iterator method yields more than one value processes all yielded values"
|
30
|
+
fails "Enumerable#slice_when when given a block doesn't yield an empty array on a small enumerable" # Expected [] to equal [[42]]
|
37
31
|
fails "Enumerable#sort_by returns an array of elements when a block is supplied and #map returns an enumerable"
|
38
32
|
fails "Enumerable#take_while calls the block with initial args when yielded with multiple arguments"
|
39
33
|
fails "Enumerable#to_h calls #to_ary on contents"
|
@@ -46,5 +40,4 @@ opal_filter "Enumerable" do
|
|
46
40
|
fails "Enumerable#zip converts arguments to enums using #to_enum"
|
47
41
|
fails "Enumerable#zip gathers whole arrays as elements when each yields multiple"
|
48
42
|
fails "Enumerable#zip passes each element of the result array to a block and return nil if a block is given"
|
49
|
-
fails "when an iterator method yields more than one value processes all yielded values"
|
50
43
|
end
|
@@ -8,15 +8,13 @@ opal_filter "Enumerator" do
|
|
8
8
|
fails "Enumerator#feed returns nil"
|
9
9
|
fails "Enumerator#feed sets the future return value of yield if called before advancing the iterator"
|
10
10
|
fails "Enumerator#feed sets the return value of Yielder#yield"
|
11
|
-
fails "Enumerator#initialize is a private method"
|
12
|
-
fails "Enumerator#initialize on frozen instance raises a RuntimeError"
|
13
11
|
fails "Enumerator#initialize returns self when given a block"
|
14
12
|
fails "Enumerator#initialize returns self when given an object"
|
15
13
|
fails "Enumerator#initialize sets size to nil if size is not given"
|
16
14
|
fails "Enumerator#initialize sets size to nil if the given size is nil"
|
15
|
+
fails "Enumerator#initialize sets size to the given size if the given size is Float::INFINITY"
|
17
16
|
fails "Enumerator#initialize sets size to the given size if the given size is a Fixnum"
|
18
17
|
fails "Enumerator#initialize sets size to the given size if the given size is a Proc"
|
19
|
-
fails "Enumerator#initialize sets size to the given size if the given size is Float::INFINITY"
|
20
18
|
fails "Enumerator#next_values advances the position of the current element"
|
21
19
|
fails "Enumerator#next_values advances the position of the enumerator each time when called multiple times"
|
22
20
|
fails "Enumerator#next_values raises StopIteration if called on a finished enumerator"
|
@@ -38,5 +36,5 @@ opal_filter "Enumerator" do
|
|
38
36
|
fails "Enumerator#peek_values works in concert with #rewind"
|
39
37
|
fails "Enumerator#size returns returning value from size.call if set size is a Proc"
|
40
38
|
fails "Enumerator#size returns the result from size.call if the size respond to call"
|
41
|
-
fails "Enumerator#to_enum exposes multi-arg yields as an array"
|
39
|
+
fails "Enumerator#to_enum exposes multi-arg yields as an array" # NoMethodError: undefined method `next' for #<Enumerator: #<Object:0x53e80>:each>
|
42
40
|
end
|