opal 0.11.4 → 1.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +42 -10
- data/.rubocop.yml +398 -0
- data/.rubocop_todo.yml +44 -0
- data/.travis.yml +28 -34
- data/CHANGELOG.md +363 -142
- data/CONTRIBUTING.md +3 -5
- data/Gemfile +17 -12
- data/Guardfile +0 -1
- data/HACKING.md +1 -35
- data/LICENSE +2 -2
- data/README.md +42 -13
- data/Rakefile +1 -4
- data/UNRELEASED.md +133 -0
- data/benchmark-ips/README.md +6 -0
- data/benchmark-ips/bm_block_vs_yield.rb +21 -0
- data/benchmark-ips/bm_js_symbols_vs_strings.rb +28 -0
- data/benchmark-ips/bm_while_true_vs_loop.rb +19 -0
- data/bin/console +14 -0
- data/bin/opal +0 -1
- data/bin/opal-benchmark-ips +8 -0
- data/bin/opal-mspec +9 -1
- data/bin/opal-repl +2 -1
- data/bin/rake +7 -0
- data/bin/setup +8 -0
- data/docs/compiled_ruby.md +89 -8
- data/docs/compiler.md +3 -20
- data/docs/jquery.md +44 -11
- data/docs/promises.md +1 -1
- data/docs/rails.md +16 -12
- data/docs/sinatra.md +15 -8
- data/docs/using_sprockets.md +16 -11
- data/examples/rack/config.ru +1 -0
- data/examples/sinatra/Gemfile +1 -0
- data/examples/sinatra/config.ru +2 -11
- data/exe/opal-repl +3 -11
- data/lib/opal.rb +1 -0
- data/lib/opal/ast/builder.rb +4 -1
- data/lib/opal/ast/node.rb +1 -0
- data/lib/opal/builder.rb +84 -63
- data/lib/opal/builder_processors.rb +41 -56
- data/lib/opal/cli.rb +33 -49
- data/lib/opal/cli_options.rb +27 -17
- data/lib/opal/cli_runners.rb +73 -16
- data/lib/opal/cli_runners/applescript.rb +4 -4
- data/lib/opal/cli_runners/chrome.rb +29 -17
- data/lib/opal/cli_runners/nashorn.rb +5 -4
- data/lib/opal/cli_runners/nodejs.rb +8 -6
- data/lib/opal/cli_runners/server.rb +12 -11
- data/lib/opal/compiler.rb +85 -103
- data/lib/opal/config.rb +3 -3
- data/lib/opal/deprecations.rb +2 -1
- data/lib/opal/eof_content.rb +2 -2
- data/lib/opal/erb.rb +8 -7
- data/lib/opal/errors.rb +72 -1
- data/lib/opal/fragment.rb +23 -3
- data/lib/opal/hike.rb +305 -0
- data/lib/opal/nodes.rb +5 -10
- data/lib/opal/nodes/arglist.rb +7 -6
- data/lib/opal/nodes/args.rb +36 -0
- data/lib/opal/nodes/args/arg.rb +22 -0
- data/lib/opal/nodes/args/arity_check.rb +151 -0
- data/lib/opal/nodes/args/ensure_kwargs_are_kwargs.rb +28 -0
- data/lib/opal/nodes/args/extract_block_arg.rb +34 -0
- data/lib/opal/nodes/args/extract_kwarg.rb +32 -0
- data/lib/opal/nodes/args/extract_kwargs.rb +28 -0
- data/lib/opal/nodes/args/extract_kwoptarg.rb +35 -0
- data/lib/opal/nodes/args/extract_kwrestarg.rb +35 -0
- data/lib/opal/nodes/args/extract_optarg.rb +35 -0
- data/lib/opal/nodes/args/extract_post_arg.rb +28 -0
- data/lib/opal/nodes/args/extract_post_optarg.rb +41 -0
- data/lib/opal/nodes/args/extract_restarg.rb +40 -0
- data/lib/opal/nodes/args/fake_arg.rb +26 -0
- data/lib/opal/nodes/args/initialize_iterarg.rb +28 -0
- data/lib/opal/nodes/args/initialize_shadowarg.rb +24 -0
- data/lib/opal/nodes/args/parameters.rb +63 -0
- data/lib/opal/nodes/args/prepare_post_args.rb +22 -0
- data/lib/opal/nodes/array.rb +9 -8
- data/lib/opal/nodes/base.rb +20 -11
- data/lib/opal/nodes/call.rb +24 -25
- data/lib/opal/nodes/call_special.rb +4 -3
- data/lib/opal/nodes/case.rb +24 -26
- data/lib/opal/nodes/class.rb +4 -5
- data/lib/opal/nodes/constants.rb +8 -7
- data/lib/opal/nodes/csend.rb +2 -3
- data/lib/opal/nodes/def.rb +28 -74
- data/lib/opal/nodes/defined.rb +36 -36
- data/lib/opal/nodes/definitions.rb +10 -7
- data/lib/opal/nodes/defs.rb +8 -16
- data/lib/opal/nodes/hash.rb +5 -4
- data/lib/opal/nodes/helpers.rb +8 -8
- data/lib/opal/nodes/if.rb +10 -8
- data/lib/opal/nodes/iter.rb +16 -103
- data/lib/opal/nodes/lambda.rb +18 -0
- data/lib/opal/nodes/literal.rb +29 -63
- data/lib/opal/nodes/logic.rb +25 -24
- data/lib/opal/nodes/masgn.rb +8 -6
- data/lib/opal/nodes/module.rb +4 -4
- data/lib/opal/nodes/node_with_args.rb +14 -208
- data/lib/opal/nodes/rescue.rb +32 -32
- data/lib/opal/nodes/runtime_helpers.rb +5 -4
- data/lib/opal/nodes/scope.rb +18 -29
- data/lib/opal/nodes/singleton_class.rb +3 -3
- data/lib/opal/nodes/super.rb +12 -18
- data/lib/opal/nodes/top.rb +10 -8
- data/lib/opal/nodes/variables.rb +6 -6
- data/lib/opal/nodes/while.rb +7 -6
- data/lib/opal/nodes/x_string.rb +139 -0
- data/lib/opal/nodes/yield.rb +10 -7
- data/lib/opal/parser.rb +9 -46
- data/lib/opal/parser/default_config.rb +50 -0
- data/lib/opal/parser/patch.rb +26 -0
- data/lib/opal/parser/source_buffer.rb +11 -0
- data/lib/opal/parser/with_c_lexer.rb +14 -0
- data/lib/opal/parser/with_ruby_lexer.rb +6 -0
- data/lib/opal/path_reader.rb +6 -5
- data/lib/opal/paths.rb +9 -6
- data/lib/opal/regexp_anchors.rb +6 -5
- data/lib/opal/rewriter.rb +7 -0
- data/lib/opal/rewriters/arguments.rb +58 -0
- data/lib/opal/rewriters/base.rb +32 -12
- data/lib/opal/rewriters/binary_operator_assignment.rb +20 -20
- data/lib/opal/rewriters/block_to_iter.rb +2 -1
- data/lib/opal/rewriters/break_finder.rb +2 -0
- data/lib/opal/rewriters/dot_js_syntax.rb +3 -2
- data/lib/opal/rewriters/dump_args.rb +28 -0
- data/lib/opal/rewriters/explicit_writer_return.rb +4 -3
- data/lib/opal/rewriters/for_rewriter.rb +12 -12
- data/lib/opal/rewriters/hashes/key_duplicates_rewriter.rb +2 -1
- data/lib/opal/rewriters/inline_args.rb +220 -0
- data/lib/opal/rewriters/js_reserved_words.rb +21 -17
- data/lib/opal/rewriters/logical_operator_assignment.rb +24 -14
- data/lib/opal/rewriters/mlhs_args.rb +128 -0
- data/lib/opal/rewriters/opal_engine_check.rb +11 -6
- data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +3 -2
- data/lib/opal/server.rb +1 -0
- data/lib/opal/simple_server.rb +15 -23
- data/lib/opal/source_map.rb +7 -70
- data/lib/opal/source_map/file.rb +199 -0
- data/lib/opal/source_map/index.rb +83 -0
- data/lib/opal/source_map/map.rb +26 -0
- data/lib/opal/source_map/vlq.rb +98 -0
- data/lib/opal/util.rb +7 -5
- data/lib/opal/version.rb +2 -1
- data/lib/tilt/opal.rb +3 -3
- data/opal.gemspec +18 -9
- data/opal/corelib/array.rb +135 -117
- data/opal/corelib/array/pack.rb +446 -0
- data/opal/corelib/basic_object.rb +23 -9
- data/opal/corelib/boolean.rb +3 -3
- data/opal/corelib/class.rb +4 -10
- data/opal/corelib/comparable.rb +36 -23
- data/opal/corelib/complex.rb +108 -14
- data/opal/corelib/constants.rb +4 -4
- data/opal/corelib/enumerable.rb +132 -135
- data/opal/corelib/enumerator.rb +47 -50
- data/opal/corelib/error.rb +65 -8
- data/opal/corelib/file.rb +37 -32
- data/opal/corelib/hash.rb +90 -21
- data/opal/corelib/helpers.rb +7 -6
- data/opal/corelib/kernel.rb +53 -586
- data/opal/corelib/kernel/format.rb +544 -0
- data/opal/corelib/marshal.rb +1 -13
- data/opal/corelib/marshal/read_buffer.rb +20 -23
- data/opal/corelib/marshal/write_buffer.rb +23 -15
- data/opal/corelib/math.rb +12 -16
- data/opal/corelib/method.rb +5 -3
- data/opal/corelib/module.rb +80 -109
- data/opal/corelib/nil.rb +2 -2
- data/opal/corelib/number.rb +177 -43
- data/opal/corelib/numeric.rb +22 -16
- data/opal/corelib/pack_unpack/format_string_parser.rb +135 -0
- data/opal/corelib/proc.rb +3 -4
- data/opal/corelib/process.rb +1 -1
- data/opal/corelib/random.rb +24 -16
- data/opal/corelib/random/MersenneTwister.js +137 -0
- data/opal/corelib/random/math_random.js.rb +9 -0
- data/opal/corelib/random/mersenne_twister.js.rb +13 -0
- data/opal/corelib/random/seedrandom.js.rb +12 -0
- data/opal/corelib/range.rb +25 -26
- data/opal/corelib/rational.rb +57 -17
- data/opal/corelib/regexp.rb +39 -43
- data/opal/corelib/runtime.js +806 -683
- data/opal/corelib/string.rb +213 -112
- data/opal/corelib/string/encoding.rb +14 -17
- data/opal/corelib/string/unpack.rb +793 -0
- data/opal/corelib/struct.rb +40 -24
- data/opal/corelib/time.rb +14 -15
- data/opal/corelib/unsupported.rb +26 -4
- data/opal/opal.rb +2 -1
- data/opal/opal/full.rb +2 -0
- data/stdlib/base64.rb +1 -1
- data/stdlib/bigdecimal.rb +11 -13
- data/stdlib/buffer.rb +9 -8
- data/stdlib/buffer/array.rb +46 -48
- data/stdlib/buffer/view.rb +85 -47
- data/stdlib/console.rb +18 -18
- data/stdlib/date.rb +85 -66
- data/stdlib/delegate.rb +2 -2
- data/stdlib/e2mmap.rb +176 -0
- data/stdlib/encoding.rb +1 -1
- data/stdlib/erb.rb +1 -1
- data/stdlib/forwardable.rb +14 -14
- data/stdlib/json.rb +1 -2
- data/stdlib/logger.rb +112 -0
- data/stdlib/math.rb +1 -1
- data/stdlib/matrix.rb +2169 -0
- data/stdlib/matrix/eigenvalue_decomposition.rb +883 -0
- data/stdlib/matrix/lup_decomposition.rb +219 -0
- data/stdlib/nashorn/file.rb +7 -9
- data/stdlib/native.rb +69 -63
- data/stdlib/nodejs.rb +3 -0
- data/stdlib/nodejs/dir.rb +25 -4
- data/stdlib/nodejs/env.rb +40 -0
- data/stdlib/nodejs/file.rb +184 -34
- data/stdlib/nodejs/fileutils.rb +4 -4
- data/stdlib/nodejs/io.rb +4 -46
- data/stdlib/nodejs/irb.rb +27 -29
- data/stdlib/nodejs/kernel.rb +2 -11
- data/stdlib/nodejs/node_modules/balanced-match/.npmignore +5 -0
- data/stdlib/nodejs/node_modules/balanced-match/LICENSE.md +21 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/README.md +13 -2
- data/stdlib/nodejs/node_modules/balanced-match/index.js +59 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/package.json +46 -42
- data/stdlib/nodejs/node_modules/brace-expansion/LICENSE +21 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/README.md +9 -1
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/index.js +12 -2
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/package.json +48 -48
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/.travis.yml +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/README.markdown +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/example/map.js +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/index.js +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/package.json +47 -42
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/test/map.js +0 -0
- data/stdlib/nodejs/node_modules/fs.realpath/LICENSE +43 -0
- data/stdlib/nodejs/node_modules/fs.realpath/README.md +33 -0
- data/stdlib/nodejs/node_modules/fs.realpath/index.js +66 -0
- data/stdlib/nodejs/node_modules/fs.realpath/old.js +303 -0
- data/stdlib/nodejs/node_modules/fs.realpath/package.json +59 -0
- data/stdlib/nodejs/node_modules/glob/README.md +57 -46
- data/stdlib/nodejs/node_modules/glob/changelog.md +67 -0
- data/stdlib/nodejs/node_modules/glob/common.js +91 -28
- data/stdlib/nodejs/node_modules/glob/glob.js +196 -55
- data/stdlib/nodejs/node_modules/glob/package.json +55 -51
- data/stdlib/nodejs/node_modules/glob/sync.js +116 -39
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/README.md +0 -0
- data/stdlib/nodejs/node_modules/inflight/inflight.js +54 -0
- data/stdlib/nodejs/node_modules/inflight/package.json +58 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/README.md +0 -0
- data/stdlib/nodejs/node_modules/inherits/inherits.js +7 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/inherits_browser.js +0 -0
- data/stdlib/nodejs/node_modules/inherits/package.json +61 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → minimatch}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/README.md +2 -9
- data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/minimatch.js +284 -206
- data/stdlib/nodejs/node_modules/minimatch/package.json +63 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/once/node_modules/wrappy → once}/LICENSE +0 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/once → once}/README.md +28 -0
- data/stdlib/nodejs/node_modules/once/once.js +42 -0
- data/stdlib/nodejs/node_modules/once/package.json +67 -0
- data/stdlib/nodejs/node_modules/path-is-absolute/index.js +20 -0
- data/stdlib/nodejs/node_modules/path-is-absolute/license +21 -0
- data/stdlib/nodejs/node_modules/path-is-absolute/package.json +75 -0
- data/stdlib/nodejs/node_modules/path-is-absolute/readme.md +59 -0
- data/stdlib/nodejs/node_modules/unxhr/LICENSE +22 -0
- data/stdlib/nodejs/node_modules/unxhr/README.md +41 -0
- data/stdlib/nodejs/node_modules/unxhr/lib/XMLHttpRequest.js +598 -0
- data/stdlib/nodejs/node_modules/unxhr/lib/browser.js +2 -0
- data/stdlib/nodejs/node_modules/unxhr/lib/request.js +63 -0
- data/stdlib/nodejs/node_modules/unxhr/package.json +75 -0
- data/stdlib/nodejs/node_modules/wrappy/LICENSE +15 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/README.md +0 -0
- data/stdlib/nodejs/node_modules/wrappy/package.json +59 -0
- data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/wrappy.js +0 -0
- data/stdlib/nodejs/open-uri.rb +26 -0
- data/stdlib/nodejs/package-lock.json +88 -0
- data/stdlib/nodejs/package.json +2 -1
- data/stdlib/nodejs/pathname.rb +20 -0
- data/stdlib/nodejs/require.rb +3 -3
- data/stdlib/nodejs/stacktrace.rb +1 -1
- data/stdlib/nodejs/yaml.rb +1 -1
- data/stdlib/opal-builder.rb +1 -0
- data/stdlib/opal-parser.rb +4 -1
- data/stdlib/opal-platform.rb +8 -10
- data/stdlib/opal-source-maps.rb +0 -1
- data/stdlib/open-uri.rb +349 -0
- data/stdlib/ostruct.rb +19 -17
- data/stdlib/pathname.rb +22 -22
- data/stdlib/pp.rb +5 -5
- data/stdlib/promise.rb +30 -26
- data/stdlib/rbconfig/sizeof.rb +50 -0
- data/stdlib/securerandom.rb +1 -1
- data/stdlib/set.rb +21 -23
- data/stdlib/singleton.rb +3 -4
- data/stdlib/stringio.rb +33 -0
- data/stdlib/strscan.rb +55 -55
- data/stdlib/template.rb +1 -2
- data/stdlib/thread.rb +6 -7
- data/tasks/benchmarking.rake +1 -1
- data/tasks/building.rake +4 -12
- data/tasks/linting.rake +17 -2
- data/tasks/releasing.rake +84 -0
- data/tasks/testing.rake +57 -15
- data/tasks/testing/mspec_special_calls.rb +23 -4
- data/vendored-minitest/minitest.rb +1 -1
- metadata +169 -168
- data/bin/opal-build +0 -3
- data/exe/opal-mspec +0 -10
- data/lib/opal/nodes/args/initialize_kwargs.rb +0 -29
- data/lib/opal/nodes/args/kwarg.rb +0 -31
- data/lib/opal/nodes/args/kwoptarg.rb +0 -34
- data/lib/opal/nodes/args/kwrestarg.rb +0 -39
- data/lib/opal/nodes/args/mlhsarg.rb +0 -78
- data/lib/opal/nodes/args/normarg.rb +0 -29
- data/lib/opal/nodes/args/optarg.rb +0 -25
- data/lib/opal/nodes/args/post_args.rb +0 -201
- data/lib/opal/nodes/args/post_kwargs.rb +0 -32
- data/lib/opal/nodes/args/restarg.rb +0 -38
- data/lib/opal/nodes/inline_args.rb +0 -60
- data/opal/corelib/string/inheritance.rb +0 -123
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/.eslintrc +0 -17
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/inflight.js +0 -44
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +0 -52
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +0 -51
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/package.json +0 -61
- data/stdlib/nodejs/node_modules/glob/node_modules/inflight/test.js +0 -97
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits.js +0 -1
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/package.json +0 -51
- data/stdlib/nodejs/node_modules/glob/node_modules/inherits/test.js +0 -25
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.npmignore +0 -1
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.travis.yml +0 -4
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/LICENSE +0 -23
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/benchmark.js +0 -15
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/browser.js +0 -1181
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +0 -2
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +0 -3
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +0 -8
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +0 -2
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +0 -4
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +0 -6
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +0 -5
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +0 -38
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +0 -56
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +0 -32
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +0 -1075
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +0 -182
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +0 -9
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +0 -10
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +0 -24
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +0 -15
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +0 -16
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +0 -10
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +0 -13
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +0 -7
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +0 -50
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/package.json +0 -60
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/basic.js +0 -399
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/brace-expand.js +0 -45
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/defaults.js +0 -274
- data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +0 -8
- data/stdlib/nodejs/node_modules/glob/node_modules/once/LICENSE +0 -27
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +0 -36
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +0 -52
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +0 -51
- data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +0 -33
- data/stdlib/nodejs/node_modules/glob/node_modules/once/once.js +0 -21
- data/stdlib/nodejs/node_modules/glob/node_modules/once/package.json +0 -60
- data/stdlib/nodejs/node_modules/glob/node_modules/once/test/once.js +0 -23
- data/stdlib/nodejs/rubygems.rb +0 -68
- data/stdlib/source_map.rb +0 -5
- data/stdlib/source_map/map.rb +0 -220
- data/stdlib/source_map/mapping.rb +0 -26
- data/stdlib/source_map/offset.rb +0 -88
- data/stdlib/source_map/version.rb +0 -3
- data/stdlib/source_map/vlq.rb +0 -99
- data/stdlib/sourcemap.rb +0 -1
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# All items in this file require fixing
|
2
|
+
|
3
|
+
Metrics/LineLength:
|
4
|
+
Enabled: false
|
5
|
+
|
6
|
+
Lint/AssignmentInCondition:
|
7
|
+
Exclude:
|
8
|
+
- 'lib/opal/ast/node.rb'
|
9
|
+
- 'lib/opal/compiler.rb'
|
10
|
+
- 'lib/opal/nodes/helpers.rb'
|
11
|
+
- 'lib/opal/nodes/logic.rb'
|
12
|
+
- 'lib/opal/nodes/masgn.rb'
|
13
|
+
- 'lib/opal/nodes/runtime_helpers.rb'
|
14
|
+
- 'lib/opal/nodes/scope.rb'
|
15
|
+
- 'lib/opal/nodes/top.rb'
|
16
|
+
- 'lib/tilt/opal.rb'
|
17
|
+
- 'opal/corelib/comparable.rb'
|
18
|
+
- 'opal/corelib/complex.rb'
|
19
|
+
- 'opal/corelib/marshal/write_buffer.rb'
|
20
|
+
|
21
|
+
Style/GuardClause:
|
22
|
+
Enabled: false
|
23
|
+
|
24
|
+
Style/ModuleFunction:
|
25
|
+
Exclude:
|
26
|
+
- 'lib/opal/config.rb'
|
27
|
+
- 'lib/opal/util.rb'
|
28
|
+
- 'stdlib/nodejs/fileutils.rb'
|
29
|
+
- 'stdlib/js.rb'
|
30
|
+
|
31
|
+
Style/MutableConstant:
|
32
|
+
Exclude:
|
33
|
+
- 'lib/opal/nodes/call.rb'
|
34
|
+
- 'lib/opal/util.rb'
|
35
|
+
|
36
|
+
Style/MethodMissing:
|
37
|
+
Exclude:
|
38
|
+
- 'stdlib/native.rb'
|
39
|
+
- 'stdlib/delegate.rb'
|
40
|
+
- 'stdlib/ostruct.rb'
|
41
|
+
|
42
|
+
Lint/HandleExceptions:
|
43
|
+
Exclude:
|
44
|
+
- 'stdlib/ostruct.rb'
|
data/.travis.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
language: ruby
|
2
2
|
|
3
|
+
# https://github.com/discourse/mini_racer#travis-ci
|
3
4
|
sudo: required
|
4
|
-
|
5
5
|
dist: trusty
|
6
6
|
|
7
7
|
addons:
|
@@ -19,62 +19,57 @@ cache:
|
|
19
19
|
- /home/travis/.nvm/
|
20
20
|
- smoke_test_opal_rspec
|
21
21
|
|
22
|
-
|
23
22
|
matrix:
|
24
23
|
fast_finish: true
|
25
24
|
|
26
25
|
include:
|
27
|
-
- rvm: 2.5.
|
28
|
-
env: RUN=mspec_opal_chrome
|
26
|
+
- rvm: 2.5.3
|
27
|
+
env: RUN=mspec_opal_chrome
|
29
28
|
|
30
|
-
- rvm: 2.5.
|
31
|
-
env: RUN=mspec_ruby_chrome
|
29
|
+
- rvm: 2.5.3
|
30
|
+
env: RUN=mspec_ruby_chrome
|
32
31
|
|
33
|
-
# - rvm: 2.5.
|
32
|
+
# - rvm: 2.5.3
|
34
33
|
# env:
|
35
34
|
# - RUN=browser_test
|
36
35
|
# - SAUCE_USERNAME=elia
|
37
36
|
# # SAUCE_ACCESS_KEY:
|
38
37
|
# - secure: GT13SjzU8vmqKIyY2LAXje+ndqevTsX/w71JkZHRLTrDUl0qcIod7xsfahbzGt2gOZPYZUkKiVaPoUenhc/YeJ2jTJVHeHY9UEl2II+3tOtuvp2jLadA//aBbsB6/09d7lIZMzpa93TL2R/SncPxugYW9v2o8o8Lwd2iIzowT/g=
|
39
38
|
|
40
|
-
- rvm: 2.5.
|
41
|
-
env: RUN=
|
39
|
+
- rvm: 2.5.3
|
40
|
+
env: RUN=lint
|
42
41
|
|
43
|
-
- rvm: 2.5.
|
44
|
-
env: RUN=mspec_opal_nodejs
|
42
|
+
- rvm: 2.5.3
|
43
|
+
env: RUN=mspec_opal_nodejs
|
45
44
|
|
46
|
-
- rvm: 2.5.
|
47
|
-
env: RUN=mspec_ruby_nodejs
|
45
|
+
- rvm: 2.5.3
|
46
|
+
env: RUN=mspec_ruby_nodejs TZ="/usr/share/zoneinfo/Pacific/Fiji"
|
48
47
|
|
49
|
-
- rvm: 2.5.
|
50
|
-
env: RUN=minitest
|
48
|
+
- rvm: 2.5.3
|
49
|
+
env: RUN=minitest
|
51
50
|
|
52
|
-
- rvm: 2.5.
|
53
|
-
env: RUN=rspec RACK_VERSION='~> 2.0
|
51
|
+
- rvm: 2.5.3
|
52
|
+
env: RUN=rspec RACK_VERSION='~> 2.0' CHECK_COVERAGE=true
|
54
53
|
|
55
|
-
- rvm: 2.5.
|
56
|
-
env: RUN=smoke_test
|
54
|
+
- rvm: 2.5.3
|
55
|
+
env: RUN=smoke_test
|
57
56
|
|
58
57
|
- rvm: ruby-head
|
59
|
-
env: RUN=rspec
|
58
|
+
env: RUN=rspec
|
60
59
|
|
61
|
-
- rvm: 2.4.
|
62
|
-
env: RUN=rspec RACK_VERSION='~> 2.0
|
60
|
+
- rvm: 2.4.5
|
61
|
+
env: RUN=rspec RACK_VERSION='~> 2.0'
|
63
62
|
|
64
|
-
- rvm: 2.3.
|
63
|
+
- rvm: 2.3.8
|
65
64
|
env: RUN=rspec
|
66
65
|
|
67
|
-
- rvm: 2.
|
68
|
-
env: RUN=rspec
|
69
|
-
|
70
|
-
- rvm: 2.1.10
|
71
|
-
env: RUN=rspec RACK_VERSION='< 2.0'
|
66
|
+
- rvm: 2.6.0
|
67
|
+
env: RUN=rspec
|
72
68
|
|
73
|
-
- rvm:
|
74
|
-
|
75
|
-
env: RUN="rspec mspec_opal_nodejs" RACK_VERSION='< 2.0'
|
69
|
+
- rvm: truffleruby
|
70
|
+
env: RUN=rspec
|
76
71
|
|
77
|
-
- rvm: jruby-9.2.
|
72
|
+
- rvm: jruby-9.2.4.1
|
78
73
|
env: RUN=rspec
|
79
74
|
|
80
75
|
- rvm: jruby-head
|
@@ -83,6 +78,7 @@ matrix:
|
|
83
78
|
allow_failures:
|
84
79
|
- rvm: ruby-head
|
85
80
|
- rvm: jruby-head
|
81
|
+
- rvm: truffleruby
|
86
82
|
- env: RUN=smoke_test
|
87
83
|
|
88
84
|
|
@@ -92,8 +88,6 @@ before_install:
|
|
92
88
|
- git submodule update --init
|
93
89
|
- npm install -g jshint
|
94
90
|
- npm install -g uglify-js
|
95
|
-
- test $REINSTALL_BUNDLER && gem install bundler -v 0.16.1 || true
|
96
|
-
- type bundle || gem install bundler
|
97
91
|
- bundle config without doc
|
98
92
|
- which google-chrome-stable
|
99
93
|
- google-chrome-stable --version
|
data/CHANGELOG.md
CHANGED
@@ -11,17 +11,147 @@ Changes are grouped as follows:
|
|
11
11
|
- **Fixed** for any bug fixes.
|
12
12
|
- **Security** to invite users to upgrade in case of vulnerabilities.
|
13
13
|
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
## [Unreleased](https://github.com/opal/opal/compare/v0.11.4...HEAD) - unreleased
|
19
|
+
|
20
|
+
|
14
21
|
<!--
|
15
22
|
Whitespace conventions:
|
16
23
|
- 4 spaces before ## titles
|
17
24
|
- 2 spaces before ### titles
|
18
25
|
- 1 spaces before normal text
|
19
|
-
|
26
|
+
-->
|
27
|
+
|
28
|
+
### Added
|
29
|
+
|
30
|
+
- Added `Module#prepend` and completely overhauled the module and class inheritance system ([#1826](https://github.com/opal/opal/pull/1826))
|
31
|
+
- Methods and properties are now assigned with `Object.defineProperty()` as non-enumerable ([#1821](https://github.com/opal/opal/pull/1821))
|
32
|
+
- Backtrace now includes the location inside the source file for syntax errors ([#1814](https://github.com/opal/opal/pull/1814))
|
33
|
+
- Added support for a faster C-implemented lexer, it's enough to add `gem 'c_lexer` to the `Gemfile` ([#1806](https://github.com/opal/opal/pull/1806))
|
34
|
+
- Added `Date#to_n` that returns the JavaScript Date object (in native.rb). (#1779, #1792)
|
35
|
+
- Added `Array#pack` (supports only `C, S, L, Q, c, s, l, q, A, a` formats). ([#1723](https://github.com/opal/opal/pull/1723))
|
36
|
+
- Added `String#unpack` (supports only `C, S, L, Q, S>, L>, Q>, c, s, l, q, n, N, v, V, U, w, A, a, Z, B, b, H, h, u, M, m` formats). ([#1723](https://github.com/opal/opal/pull/1723))
|
37
|
+
- Added `File#symlink?` for Node.js. ([#1725](https://github.com/opal/opal/pull/1725))
|
38
|
+
- Added `Dir#glob` for Node.js (does not support flags). ([#1727](https://github.com/opal/opal/pull/1727))
|
39
|
+
- Added support for a static folder in the "server" CLI runner via the `OPAL_CLI_RUNNERS_SERVER_STATIC_FOLDER` env var
|
40
|
+
- Added the CLI option `--runner-options` that allows passing arbitrary options to the selected runner, currently the only runner making use of them is `server` accepting `port` and `static_folder`
|
41
|
+
- Added a short helper to navigate constants manually: E.g. `Opal.$$.Regexp.$$.IGNORECASE` (see docs for "Compiled Ruby")
|
42
|
+
- Added initial support for OpenURI module (using XMLHttpRequest on browser and [xmlhttprequest](https://www.npmjs.com/package/xmlhttprequest) on Node). ([#1735](https://github.com/opal/opal/pull/1735))
|
43
|
+
- Added `String#prepend` to the list of unsupported methods (because String are immutable in JavaScript)
|
44
|
+
- Added methods (most introduced in 2.4/2.5):
|
45
|
+
* `Array#prepend` ([#1757](https://github.com/opal/opal/pull/1757))
|
46
|
+
* `Array#append` ([#1757](https://github.com/opal/opal/pull/1757))
|
47
|
+
* `Array#max` ([#1757](https://github.com/opal/opal/pull/1757))
|
48
|
+
* `Array#min` ([#1757](https://github.com/opal/opal/pull/1757))
|
49
|
+
* `Complex#finite?` ([#1757](https://github.com/opal/opal/pull/1757))
|
50
|
+
* `Complex#infinite?` ([#1757](https://github.com/opal/opal/pull/1757))
|
51
|
+
* `Complex#infinite?` ([#1757](https://github.com/opal/opal/pull/1757))
|
52
|
+
* `Date#to_time` ([#1757](https://github.com/opal/opal/pull/1757))
|
53
|
+
* `Date#next_year` ([#1885](https://github.com/opal/opal/pull/1885))
|
54
|
+
* `Date#prev_year` ([#1885](https://github.com/opal/opal/pull/1885))
|
55
|
+
* `Hash#slice` ([#1757](https://github.com/opal/opal/pull/1757))
|
56
|
+
* `Hash#transform_keys` ([#1757](https://github.com/opal/opal/pull/1757))
|
57
|
+
* `Hash#transform_keys!` ([#1757](https://github.com/opal/opal/pull/1757))
|
58
|
+
* `Numeric#finite?` ([#1757](https://github.com/opal/opal/pull/1757))
|
59
|
+
* `Numeric#infinite?` ([#1757](https://github.com/opal/opal/pull/1757))
|
60
|
+
* `Numeric#infinite?` ([#1757](https://github.com/opal/opal/pull/1757))
|
61
|
+
* `Integer#allbits?` ([#1757](https://github.com/opal/opal/pull/1757))
|
62
|
+
* `Integer#anybits?` ([#1757](https://github.com/opal/opal/pull/1757))
|
63
|
+
* `Integer#digits` ([#1757](https://github.com/opal/opal/pull/1757))
|
64
|
+
* `Integer#nobits?` ([#1757](https://github.com/opal/opal/pull/1757))
|
65
|
+
* `Integer#pow` ([#1757](https://github.com/opal/opal/pull/1757))
|
66
|
+
* `Integer#remainder` ([#1757](https://github.com/opal/opal/pull/1757))
|
67
|
+
* `Integer.sqrt` ([#1757](https://github.com/opal/opal/pull/1757))
|
68
|
+
* `Random.urandom` ([#1757](https://github.com/opal/opal/pull/1757))
|
69
|
+
* `String#delete_prefix` ([#1757](https://github.com/opal/opal/pull/1757))
|
70
|
+
* `String#delete_suffix` ([#1757](https://github.com/opal/opal/pull/1757))
|
71
|
+
* `String#casecmp?` ([#1757](https://github.com/opal/opal/pull/1757))
|
72
|
+
* `Kernel#yield_self` ([#1757](https://github.com/opal/opal/pull/1757))
|
73
|
+
* `String#unpack1` ([#1757](https://github.com/opal/opal/pull/1757))
|
74
|
+
* `String#to_r` ([#1842](https://github.com/opal/opal/pull/1842))
|
75
|
+
* `String#to_c` ([#1842](https://github.com/opal/opal/pull/1842))
|
76
|
+
* `String#match?` ([#1842](https://github.com/opal/opal/pull/1842))
|
77
|
+
* `String#unicode_normalize` returns self ([#1842](https://github.com/opal/opal/pull/1842))
|
78
|
+
* `String#unicode_normalized?` returns true ([#1842](https://github.com/opal/opal/pull/1842))
|
79
|
+
* `String#[]=` throws `NotImplementedError`([#1836](https://github.com/opal/opal/pull/1836))
|
80
|
+
|
81
|
+
- Added support of the `pattern` argument for `Enumerable#all?`, `Enumerable#any?`, `Enumerable#none?`. ([#1757](https://github.com/opal/opal/pull/1757))
|
82
|
+
- Added `ndigits` option support to `Number#floor`, `Number#ceil`, `Number#truncate`. ([#1757](https://github.com/opal/opal/pull/1757))
|
83
|
+
- Added `key` and `receiver` attributes to the `KeyError`. ([#1757](https://github.com/opal/opal/pull/1757))
|
84
|
+
- Extended `Struct.new` to support `keyword_init` option. ([#1757](https://github.com/opal/opal/pull/1757))
|
85
|
+
- Added a new `Opal::Config.missing_require_severity` option and relative `--missing-require` CLI flag. This option will command how the builder will behave when a required file is missing. Previously the behavior was undefined and partly controlled by `dynamic_require_severity`. Not to be confused with the runtime config option `Opal.config.missing_require_severity;` which controls the runtime behavior.
|
86
|
+
- Added `Matrix` (along with the internal MRI utility `E2MM`)
|
87
|
+
- Use shorter helpers for constant lookups, `$$` for relative (nesting) lookups and `$$$` for absolute (qualified) lookups
|
88
|
+
- Add support for the Mersenne Twister random generator, the same used by CRuby/MRI (#657 & #1891)
|
89
|
+
- [Nodejs] Added support for binary data in `OpenURI` (#1911, #1920)
|
90
|
+
- [Nodejs] Added support for binary data in `File#read` (#1919, #1921)
|
91
|
+
- [Nodejs] Added support for `File#readlines` ([#1882](https://github.com/opal/opal/pull/1882))
|
92
|
+
- [Nodejs] Added support for `ENV#[]`, `ENV#[]=`, `ENV#key?`, `ENV#has_key?`, `ENV#include?`, `ENV#member?`, `ENV#empty?`, `ENV#keys`, `ENV#delete` and `ENV#to_s` ([#1928](https://github.com/opal/opal/pull/1928))
|
93
|
+
|
94
|
+
|
95
|
+
### Changed
|
96
|
+
|
97
|
+
- **BREAKING** The dot (`.`) character is no longer replaced with [\s\S] in a multiline regexp passed to Regexp#match and Regexp#match? (#1796, #1795)
|
98
|
+
* You're advised to always use [\s\S] instead of . in a multiline regexp, which is portable between Ruby and JavaScript
|
99
|
+
- **BREAKING** `Kernel#format` (and `sprintf` alias) are now in a dedicated module `corelib/kernel/format` and available exclusively in `opal` ([#1930](https://github.com/opal/opal/pull/1930))
|
100
|
+
* Previously the methods were part of the `corelib/kernel` module and available in both `opal` and `opal/mini`
|
101
|
+
- Filename extensions are no longer stripped from filenames internally, resulting in better error reporting ([#1804](https://github.com/opal/opal/pull/1804))
|
102
|
+
- The internal API for CLI runners has changed, now it's just a callable object
|
103
|
+
- The `--map` CLI option now works only in conjunction with `--compile` (or `--runner compiler`)
|
104
|
+
- The `node` CLI runner now adds its `NODE_PATH` entry instead of replacing the ENV var altogether
|
105
|
+
- Added `--disable-web-security` option flag to the Chrome headless runner to be able to do `XMLHttpRequest`
|
106
|
+
- Migrated parser to 2.5. Bump RUBY_VERSION to 2.5.0.
|
107
|
+
- Exceptions raised during the compilation now add to the backtrace the current location of the opal file if available ([#1814](https://github.com/opal/opal/pull/1814)).
|
108
|
+
- Better use of `displayName` on functions and methods and more readable temp variable names ([#1910](https://github.com/opal/opal/pull/1910))
|
109
|
+
- Source-maps are now inlined and already contain sources, incredibly more stable and precise ([#1856](https://github.com/opal/opal/pull/1856))
|
20
110
|
|
21
111
|
|
112
|
+
### Deprecated
|
113
|
+
|
114
|
+
- The CLI `--server-port 1234` option is now deprecated in favor of using `--runner-options='{"port": 1234}'`
|
115
|
+
- Including `::Native` is now deprecated because it generates conflicts with core classes in constant lookups (both `Native::Object` and `Native::Array` exist). Instead `Native::Werapper` should be used.
|
116
|
+
- Using `node_require 'my_module'` to access the native `require()` function in Node.js is deprecated in favor of <code>\`require('my_module')\`</code> because static builders need to parse the call in order to function ([#1886](https://github.com/opal/opal/pull/1886)).
|
117
|
+
|
118
|
+
|
119
|
+
### Removed
|
120
|
+
|
121
|
+
- The `node` CLI runner no longer supports passing extra node options via the `NODE_OPT` env var, instead Node.js natively supports the `NODE_OPTIONS` env var.
|
122
|
+
- The gem "hike" is no longer an external dependency and is now an internal dependency available as `Opal::Hike` ([#1881](https://github.com/opal/opal/pull/1881))
|
123
|
+
- Removed the internal Opal class `Marshal::BinaryString` ([#1914](https://github.com/opal/opal/pull/1914))
|
124
|
+
- Removed Racc, as it's now replaced by the parser gem ([#1880](https://github.com/opal/opal/pull/1880))
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
### Fixed
|
129
|
+
|
130
|
+
- Fix handling of trailing semicolons and JavaScript returns inside x-strings, the behavior is now well defined and covered by proper specs ([#1776](https://github.com/opal/opal/pull/1776))
|
131
|
+
- Fixed singleton method definition to return method name. ([#1757](https://github.com/opal/opal/pull/1757))
|
132
|
+
- Allow passing number of months to `Date#next_month` and `Date#prev_month`. ([#1757](https://github.com/opal/opal/pull/1757))
|
133
|
+
- Fixed `pattern` argument handling for `Enumerable#grep` and `Enumerable#grep_v`. ([#1757](https://github.com/opal/opal/pull/1757))
|
134
|
+
- Raise `ArgumentError` instead of `TypeError` from `Numeric#step` when step is not a number. ([#1757](https://github.com/opal/opal/pull/1757))
|
135
|
+
- At run-time `LoadError` wasn't being raised even with `Opal.config.missing_require_severity;` set to `'error'`.
|
136
|
+
- Fixed `Kernel#public_methods` to return instance methods if the argument is set to false. ([#1848](https://github.com/opal/opal/pull/1848))
|
137
|
+
- Fixed an issue in `String#gsub` that made it start an infinite loop when used recursively. ([#1879](https://github.com/opal/opal/pull/1879))
|
138
|
+
- `Kernel#exit` was using status 0 when a number or a generic object was provided, now accepts numbers and tries to convert objects with `#to_int` (#1898, #1808).
|
139
|
+
- Fixed metaclass inheritance in subclasses of Module ([#1901](https://github.com/opal/opal/pull/1901))
|
140
|
+
- `Method#to_proc` now correctly sets parameters and arity on the resulting Proc ([#1903](https://github.com/opal/opal/pull/1903))
|
141
|
+
- Fixed bridged classes having their prototype removed from the original chain by separating them from the Ruby class ([#1909](https://github.com/opal/opal/pull/1909))
|
142
|
+
- Improve `String#to_proc` performance ([#1888](https://github.com/opal/opal/pull/1888))
|
143
|
+
- Fixed/updated the examples ([#1887](https://github.com/opal/opal/pull/1887))
|
144
|
+
- `Opal.ancestors()` now returns false for when provided with JS-falsy objects ([#1839](https://github.com/opal/opal/pull/1839))
|
145
|
+
- When subclassing now the constant is set before calling `::inherited` ([#1838](https://github.com/opal/opal/pull/1838))
|
146
|
+
- `String#to_sym` now returns the string literal ([#1835](https://github.com/opal/opal/pull/1835))
|
147
|
+
- `String#center` now correctly checks length ([#1833](https://github.com/opal/opal/pull/1833))
|
148
|
+
- `redo` inside `while` now works properly ([#1820](https://github.com/opal/opal/pull/1820))
|
149
|
+
- Fixed compilation of empty/whitespace-only x-strings ([#1811](https://github.com/opal/opal/pull/1811))
|
150
|
+
- Fix `||=` assignments on constants when the constant is not yet defined ([#1935](https://github.com/opal/opal/pull/1935))
|
151
|
+
- Fix `String#chomp` to return an empty String when `arg == self` ([#1936](https://github.com/opal/opal/pull/1936))
|
152
|
+
|
22
153
|
|
23
154
|
|
24
|
-
<!-- generated-content-beyond-this-comment -->
|
25
155
|
|
26
156
|
## [0.11.4](https://github.com/opal/opal/compare/v0.11.3...v0.11.4) - 2018-11-07
|
27
157
|
|
@@ -59,19 +189,19 @@ Whitespace conventions:
|
|
59
189
|
### Added
|
60
190
|
|
61
191
|
- Added support for a static folder in the "server" CLI runner via the `OPAL_CLI_RUNNERS_SERVER_STATIC_FOLDER` env var
|
62
|
-
- Added ability to pass the port to the "server" CLI runner using the `OPAL_CLI_RUNNERS_SERVER_PORT` (explicit option passed via CLI is still working but
|
192
|
+
- Added ability to pass the port to the "server" CLI runner using the `OPAL_CLI_RUNNERS_SERVER_PORT` (explicit option passed via CLI is still working but deprecated)
|
63
193
|
- Added a new `Opal::Config.missing_require_severity` option and relative `--missing-require` CLI flag. This option will command how the builder will behave when a required file is missing. Previously the behavior was undefined and partly controlled by `dynamic_require_severity`. Not to be confused with the runtime config option `Opal.config.missing_require_severity;` which controls the runtime behavior.
|
64
194
|
- At run-time `LoadError` wasn't being raised even with `Opal.config.missing_require_severity;` set to `'error'`.
|
65
195
|
|
66
196
|
|
67
197
|
|
68
198
|
|
69
|
-
## [0.11.0] - 2017-12-08
|
199
|
+
## [0.11.0](https://github.com/opal/opal/compare/v0.10.6...v0.11.0) - 2017-12-08
|
70
200
|
|
71
201
|
|
72
202
|
### Added
|
73
203
|
|
74
|
-
- Added support for complex (`0b1110i`) and rational (`0b1111r`) number literals. (#1487)
|
204
|
+
- Added support for complex (`0b1110i`) and rational (`0b1111r`) number literals. ([#1487](https://github.com/opal/opal/pull/1487))
|
75
205
|
- Added 2.3.0 methods:
|
76
206
|
* `Array#bsearch_index`
|
77
207
|
* `Array#dig`
|
@@ -88,7 +218,7 @@ Whitespace conventions:
|
|
88
218
|
* `Hash#to_proc`
|
89
219
|
* `Struct#dig`
|
90
220
|
* `Kernel#itself`
|
91
|
-
- Added safe navigator (`&.`) support. (#1532)
|
221
|
+
- Added safe navigator (`&.`) support. ([#1532](https://github.com/opal/opal/pull/1532))
|
92
222
|
- Added Random class with seed support. The following methods were reworked to use it:
|
93
223
|
* `Kernel.rand`
|
94
224
|
* `Kernel.srand`
|
@@ -100,9 +230,9 @@ Whitespace conventions:
|
|
100
230
|
- Added `Method#source_location` and `Method#comments`.
|
101
231
|
- Added a deprecation API that can be set to raise on deprecation with: `Opal.raise_on_deprecation = true`
|
102
232
|
- Added `Opal::SimpleServer` as the quickest way to get up and running with Opal: `rackup -ropal -ropal/simple_server -b 'Opal.append_path("app"); run Opal::SimpleServer.new'`
|
103
|
-
- Added `String#ascii_only?` (#1592)
|
104
|
-
- Added `StringScanner#matched_size` (#1595)
|
105
|
-
- Added `Hash#compare_by_identity` (#1657)
|
233
|
+
- Added `String#ascii_only?` ([#1592](https://github.com/opal/opal/pull/1592))
|
234
|
+
- Added `StringScanner#matched_size` ([#1595](https://github.com/opal/opal/pull/1595))
|
235
|
+
- Added `Hash#compare_by_identity` ([#1657](https://github.com/opal/opal/pull/1657))
|
106
236
|
|
107
237
|
|
108
238
|
### Removed
|
@@ -113,7 +243,7 @@ Whitespace conventions:
|
|
113
243
|
|
114
244
|
### Changed
|
115
245
|
|
116
|
-
- Removed self-written lexer/parser. Now uses parser/ast gems to convert source code to AST. (#1465)
|
246
|
+
- Removed self-written lexer/parser. Now uses parser/ast gems to convert source code to AST. ([#1465](https://github.com/opal/opal/pull/1465))
|
117
247
|
- Migrated parser to 2.3. Bump RUBY_VERSION to 2.3.0.
|
118
248
|
- Changed to be 2.3 compliant:
|
119
249
|
* `Enumerable#chunk` (to take only a a block)
|
@@ -147,9 +277,9 @@ Whitespace conventions:
|
|
147
277
|
* `Module#class_variable_set`
|
148
278
|
* `Module#remove_class_variable`
|
149
279
|
* `Module#include?`
|
150
|
-
* `Numeric#step` (#1512)
|
280
|
+
* `Numeric#step` ([#1512](https://github.com/opal/opal/pull/1512))
|
151
281
|
|
152
|
-
- Improvements for Range class (#1486)
|
282
|
+
- Improvements for Range class ([#1486](https://github.com/opal/opal/pull/1486))
|
153
283
|
* Moved private/tainted/untrusted specs to not supported
|
154
284
|
* Conforming `Range#to_s` and `Range#inspect`
|
155
285
|
* Starting `Range#bsearch` implementation
|
@@ -175,6 +305,21 @@ Whitespace conventions:
|
|
175
305
|
|
176
306
|
|
177
307
|
|
308
|
+
## [0.10.6](https://github.com/opal/opal/compare/v0.10.5...v0.10.6) - 2018-06-21
|
309
|
+
|
310
|
+
|
311
|
+
### Changed
|
312
|
+
|
313
|
+
- Strip Regexp flags that are unsupported by browsers (backport), previously they were ignored, lately most of them now raise an error for unknown flags.
|
314
|
+
|
315
|
+
|
316
|
+
### Fixed
|
317
|
+
|
318
|
+
- Fixed a constant reference to `Sprockets::FileNotFound` that previously pointed to `Opal::Sprockets` instead of `::Sprockets`.
|
319
|
+
|
320
|
+
|
321
|
+
|
322
|
+
|
178
323
|
## [0.10.5](https://github.com/opal/opal/compare/v0.10.4...v0.10.5) - 2017-06-21
|
179
324
|
|
180
325
|
|
@@ -185,7 +330,7 @@ Whitespace conventions:
|
|
185
330
|
|
186
331
|
|
187
332
|
|
188
|
-
## [0.10.4](https://github.com/opal/opal/compare/v0.10.3...v0.10.4) - 2017-05-
|
333
|
+
## [0.10.4](https://github.com/opal/opal/compare/v0.10.3...v0.10.4) - 2017-05-06
|
189
334
|
|
190
335
|
|
191
336
|
### Changed
|
@@ -201,7 +346,7 @@ Whitespace conventions:
|
|
201
346
|
|
202
347
|
### Fixed
|
203
348
|
|
204
|
-
- Fixed inheritance from the `Module` class (#1476)
|
349
|
+
- Fixed inheritance from the `Module` class ([#1476](https://github.com/opal/opal/pull/1476))
|
205
350
|
- Fixed source map server with url-encoded paths
|
206
351
|
- Silence Sprockets 3.7 deprecations, full support for Sprockets 4 will be available in Opal 0.11
|
207
352
|
- Don't print the full stack trace with deprecation messages
|
@@ -224,7 +369,7 @@ Whitespace conventions:
|
|
224
369
|
|
225
370
|
### Fixed
|
226
371
|
|
227
|
-
- Fixed `-L` option for compiling requires as modules (#1510)
|
372
|
+
- Fixed `-L` option for compiling requires as modules ([#1510](https://github.com/opal/opal/pull/1510))
|
228
373
|
|
229
374
|
|
230
375
|
|
@@ -237,9 +382,9 @@ Whitespace conventions:
|
|
237
382
|
- Pathname#relative_path_from
|
238
383
|
- Source maps now include method names
|
239
384
|
- `Module#included_modules` works
|
240
|
-
- Internal runtime cleanup (#1241)
|
241
|
-
- Make it easier to add custom runners for the CLI (#1261)
|
242
|
-
- Add Rack v2 compatibility (#1260)
|
385
|
+
- Internal runtime cleanup ([#1241](https://github.com/opal/opal/pull/1241))
|
386
|
+
- Make it easier to add custom runners for the CLI ([#1261](https://github.com/opal/opal/pull/1261))
|
387
|
+
- Add Rack v2 compatibility ([#1260](https://github.com/opal/opal/pull/1260))
|
243
388
|
- Newly compliant with the Ruby Spec Suite:
|
244
389
|
* `Array#slice!`
|
245
390
|
* `Array#repeated_combination`
|
@@ -247,25 +392,25 @@ Whitespace conventions:
|
|
247
392
|
* `Array#sort_by!`
|
248
393
|
* `Enumerable#sort`
|
249
394
|
* `Enumerable#max`
|
250
|
-
* `Enumerable#each_entry` (#1303)
|
395
|
+
* `Enumerable#each_entry` ([#1303](https://github.com/opal/opal/pull/1303))
|
251
396
|
* `Module#const_set`
|
252
397
|
* `Module#module_eval` with a string
|
253
|
-
- Add `-L` / `--library` option to compile only the code of the library (#1281)
|
254
|
-
- Implement `Kernel.open` method (#1218)
|
398
|
+
- Add `-L` / `--library` option to compile only the code of the library ([#1281](https://github.com/opal/opal/pull/1281))
|
399
|
+
- Implement `Kernel.open` method ([#1218](https://github.com/opal/opal/pull/1218))
|
255
400
|
- Generate meaningful names for functions representing Ruby methods
|
256
|
-
- Implement `Pathname#join` and `Pathname#+` methods (#1301)
|
401
|
+
- Implement `Pathname#join` and `Pathname#+` methods ([#1301](https://github.com/opal/opal/pull/1301))
|
257
402
|
- Added support for `begin;rescue;else;end`.
|
258
|
-
- Implement `File.extname` method (#1219)
|
403
|
+
- Implement `File.extname` method ([#1219](https://github.com/opal/opal/pull/1219))
|
259
404
|
- Added support for keyword arguments as lambda parameters.
|
260
405
|
- Super works with define_method blocks
|
261
406
|
- Added support for kwsplats.
|
262
407
|
- Added support for squiggly heredoc.
|
263
408
|
- Implement `Method#parameters` and `Proc#parameters`.
|
264
409
|
- Implement `File.new("path").mtime`, `File.mtime("path")`, `File.stat("path").mtime`.
|
265
|
-
- if-conditions now support `null` and `undefined` as falsy values (#867)
|
266
|
-
- Implement IO.read method for Node.js (#1332)
|
267
|
-
- Implement IO.each_line method for Node.js (#1221)
|
268
|
-
- Generate `opal-builder.js` to ease the compilation of Ruby library from JavaScript (#1290)
|
410
|
+
- if-conditions now support `null` and `undefined` as falsy values ([#867](https://github.com/opal/opal/pull/867))
|
411
|
+
- Implement IO.read method for Node.js ([#1332](https://github.com/opal/opal/pull/1332))
|
412
|
+
- Implement IO.each_line method for Node.js ([#1221](https://github.com/opal/opal/pull/1221))
|
413
|
+
- Generate `opal-builder.js` to ease the compilation of Ruby library from JavaScript ([#1290](https://github.com/opal/opal/pull/1290))
|
269
414
|
|
270
415
|
|
271
416
|
### Changed
|
@@ -292,28 +437,28 @@ Whitespace conventions:
|
|
292
437
|
|
293
438
|
### Fixed
|
294
439
|
|
295
|
-
- `Module#ancestors` and shared code like `====` and `is_a?` deal with singleton class modules better (#1449)
|
440
|
+
- `Module#ancestors` and shared code like `====` and `is_a?` deal with singleton class modules better ([#1449](https://github.com/opal/opal/pull/1449))
|
296
441
|
- `Class#to_s` now shows correct names for singleton classes
|
297
442
|
- `Pathname#absolute?` and `Pathname#relative?` now work properly
|
298
443
|
- `File::dirname` and `File::basename` are now Rubyspec compliant
|
299
|
-
- `SourceMap::VLQ` patch (#1075)
|
444
|
+
- `SourceMap::VLQ` patch ([#1075](https://github.com/opal/opal/pull/1075))
|
300
445
|
- `Regexp::new` no longer throws error when the expression ends in \\\\
|
301
|
-
- `super` works properly with overwritten alias methods (#1384)
|
446
|
+
- `super` works properly with overwritten alias methods ([#1384](https://github.com/opal/opal/pull/1384))
|
302
447
|
- `NoMethodError` does not need a name to be instantiated
|
303
448
|
- `method_added` fix for singleton class cases
|
304
|
-
- Super now works properly with blocks (#1237)
|
305
|
-
- Fix using more than two `rescue` in sequence (#1269)
|
449
|
+
- Super now works properly with blocks ([#1237](https://github.com/opal/opal/pull/1237))
|
450
|
+
- Fix using more than two `rescue` in sequence ([#1269](https://github.com/opal/opal/pull/1269))
|
306
451
|
- Fixed inheritance for `Array` subclasses.
|
307
|
-
- Always populate all stub_subscribers with all method stubs, as a side effect of this now `method_missing` on bridged classes now works reliably (#1273)
|
308
|
-
- Fix `Hash#instance_variables` to not return `#default` and `#default_proc` (#1258)
|
309
|
-
- Fix `Module#name` when constant was created using `Opal.cdecl` (constant declare) like `ChildClass = Class.new(BaseClass)` (#1259)
|
310
|
-
- Fix issue with JavaScript `nil` return paths being treated as true (#1274)
|
452
|
+
- Always populate all stub_subscribers with all method stubs, as a side effect of this now `method_missing` on bridged classes now works reliably ([#1273](https://github.com/opal/opal/pull/1273))
|
453
|
+
- Fix `Hash#instance_variables` to not return `#default` and `#default_proc` ([#1258](https://github.com/opal/opal/pull/1258))
|
454
|
+
- Fix `Module#name` when constant was created using `Opal.cdecl` (constant declare) like `ChildClass = Class.new(BaseClass)` ([#1259](https://github.com/opal/opal/pull/1259))
|
455
|
+
- Fix issue with JavaScript `nil` return paths being treated as true ([#1274](https://github.com/opal/opal/pull/1274))
|
311
456
|
- Fix `Array#to_n`, `Hash#to_n`, `Struct#to_n` when the object contains native objects (#1249, #1256)
|
312
|
-
- `break` semantics are now correct, except for the case in which a lambda containing a `break` is passed to a `yield` (#1250)
|
457
|
+
- `break` semantics are now correct, except for the case in which a lambda containing a `break` is passed to a `yield` ([#1250](https://github.com/opal/opal/pull/1250))
|
313
458
|
- Avoid double "/" when `Opal::Sprockets.javascript_include_tag` receives a prefix with a trailing slash.
|
314
459
|
- Fixed context of evaluation for `Kernel#eval` and `BasicObject#instance_eval`
|
315
|
-
- Fix `Module#===` to use all ancestors of the passed object (#1284)
|
316
|
-
- Fix `Struct.new` to be almost compatible with Rubyspec (#1251)
|
460
|
+
- Fix `Module#===` to use all ancestors of the passed object ([#1284](https://github.com/opal/opal/pull/1284))
|
461
|
+
- Fix `Struct.new` to be almost compatible with Rubyspec ([#1251](https://github.com/opal/opal/pull/1251))
|
317
462
|
- Fix `Enumerator#with_index` to return the result of the previously called method.
|
318
463
|
- Improved `Date.parse` to cover most date formatting cases.
|
319
464
|
- Fixed `Module#const_get` for dynamically created constants.
|
@@ -342,7 +487,7 @@ Whitespace conventions:
|
|
342
487
|
|
343
488
|
|
344
489
|
|
345
|
-
## [0.9.4](https://github.com/opal/opal/compare/v0.9.3...v0.9.4) - 2016-06-
|
490
|
+
## [0.9.4](https://github.com/opal/opal/compare/v0.9.3...v0.9.4) - 2016-06-20
|
346
491
|
|
347
492
|
|
348
493
|
### Fixed
|
@@ -354,7 +499,7 @@ Whitespace conventions:
|
|
354
499
|
|
355
500
|
|
356
501
|
|
357
|
-
## [0.9.3](https://github.com/opal/opal/compare/v0.9.2...v0.9.3) - 2016-06-
|
502
|
+
## [0.9.3](https://github.com/opal/opal/compare/v0.9.2...v0.9.3) - 2016-06-16
|
358
503
|
|
359
504
|
|
360
505
|
### Fixed
|
@@ -364,7 +509,7 @@ Whitespace conventions:
|
|
364
509
|
|
365
510
|
|
366
511
|
|
367
|
-
## [0.9.2](https://github.com/opal/opal/compare/v0.9.1...v0.9.2) - 2016-01-
|
512
|
+
## [0.9.2](https://github.com/opal/opal/compare/v0.9.1...v0.9.2) - 2016-01-09
|
368
513
|
|
369
514
|
|
370
515
|
### Fixed
|
@@ -379,9 +524,9 @@ Whitespace conventions:
|
|
379
524
|
|
380
525
|
### Fixed
|
381
526
|
|
382
|
-
- Backport rack2 compatibility (#1260)
|
383
|
-
- Fixed issue with JS nil return paths being treated as true (#1274)
|
384
|
-
- Fix using more than two `rescue` in sequence (#1269)
|
527
|
+
- Backport rack2 compatibility ([#1260](https://github.com/opal/opal/pull/1260))
|
528
|
+
- Fixed issue with JS nil return paths being treated as true ([#1274](https://github.com/opal/opal/pull/1274))
|
529
|
+
- Fix using more than two `rescue` in sequence ([#1269](https://github.com/opal/opal/pull/1269))
|
385
530
|
|
386
531
|
|
387
532
|
|
@@ -411,7 +556,7 @@ Whitespace conventions:
|
|
411
556
|
* `Enumerable#chunk`
|
412
557
|
* `Enumerable#each_cons`
|
413
558
|
* `Enumerable#minmax`
|
414
|
-
* `Range#to_a` (#1246)
|
559
|
+
* `Range#to_a` ([#1246](https://github.com/opal/opal/pull/1246))
|
415
560
|
* `Module` comparison methods: `#<` `#<=` `#<=>` `#>` `#>=`
|
416
561
|
- `OpenStruct#method_missing`
|
417
562
|
- `OpenStruct#inspect`
|
@@ -452,7 +597,7 @@ Whitespace conventions:
|
|
452
597
|
- Fix `Kernel#exit` to allow exit inside `#at_exit`
|
453
598
|
- Fixed a number of syntax errors (e.g. #1224 #1225 #1227 #1231 #1233 #1226)
|
454
599
|
- Fixed `Native()` when used with `Array` instances containing native objects (which weren't wrapped properly) – #1212
|
455
|
-
- Fix `Array#to_n`, `Hash#to_n`, `Struct#to_n` when the object contains native objects (#1249)
|
600
|
+
- Fix `Array#to_n`, `Hash#to_n`, `Struct#to_n` when the object contains native objects ([#1249](https://github.com/opal/opal/pull/1249))
|
456
601
|
- Internal cleanup and lots of bugs!
|
457
602
|
|
458
603
|
|
@@ -555,14 +700,17 @@ Whitespace conventions:
|
|
555
700
|
|
556
701
|
|
557
702
|
|
558
|
-
|
559
703
|
## [0.7.2](https://github.com/opal/opal/compare/v0.7.1...v0.7.2) - 2015-04-23
|
560
704
|
|
705
|
+
|
561
706
|
- Remove Sprockets 3.0 support (focus moved to upcoming 0.8)
|
562
707
|
- Fix version number consistency.
|
563
708
|
|
564
709
|
|
565
|
-
|
710
|
+
|
711
|
+
|
712
|
+
## [0.7.1](https://github.com/opal/opal/compare/v0.7.0...v0.7.1) - 2015-02-13
|
713
|
+
|
566
714
|
|
567
715
|
- CLI options `-d` and `-v` now set respectively `$DEBUG` and `$VERBOSE`
|
568
716
|
- Fixed a bug that would make the `-v` CLI option wait for STDIN input
|
@@ -570,7 +718,10 @@ Whitespace conventions:
|
|
570
718
|
- Now the CLI implicitly calls `Kernel#exit` at the end of the script, thus making `at_exit` blocks be respected.
|
571
719
|
|
572
720
|
|
573
|
-
|
721
|
+
|
722
|
+
|
723
|
+
## [0.7.0](https://github.com/opal/opal/compare/v0.6.3...v0.7.0) - 2015-02-01
|
724
|
+
|
574
725
|
|
575
726
|
- Stop keyword-arg variable names leaking to global javascript scope
|
576
727
|
|
@@ -654,7 +805,18 @@ Whitespace conventions:
|
|
654
805
|
- Fix `Enumerator#with_index`, `Numeric#round`.
|
655
806
|
|
656
807
|
|
657
|
-
|
808
|
+
|
809
|
+
|
810
|
+
## [0.6.3](https://github.com/opal/opal/compare/v0.6.2...v0.6.3) - 2014-11-23
|
811
|
+
|
812
|
+
|
813
|
+
- Fix `Regexp.escape` internal regexp
|
814
|
+
|
815
|
+
|
816
|
+
|
817
|
+
|
818
|
+
## [0.6.2](https://github.com/opal/opal/compare/v0.6.1...v0.6.2) - 2014-04-24
|
819
|
+
|
658
820
|
|
659
821
|
- Added Range#size
|
660
822
|
|
@@ -665,7 +827,10 @@ Whitespace conventions:
|
|
665
827
|
- (Internal) improved the mspec runner
|
666
828
|
|
667
829
|
|
668
|
-
|
830
|
+
|
831
|
+
|
832
|
+
## [0.6.1](https://github.com/opal/opal/compare/v0.6.0...v0.6.1) - 2014-04-14
|
833
|
+
|
669
834
|
|
670
835
|
- Updated RubySpec to master and added `rubysl-*` specs. Thanks to Mike Owens (@mieko)
|
671
836
|
|
@@ -690,8 +855,11 @@ Whitespace conventions:
|
|
690
855
|
parse as a key name.
|
691
856
|
|
692
857
|
|
858
|
+
|
859
|
+
|
693
860
|
## [0.6.0](https://github.com/opal/opal/compare/v0.5.5...v0.6.0) - 2014-03-05
|
694
861
|
|
862
|
+
|
695
863
|
- Fix parsing of escapes in single-strings ('foo\n'). Only ' and \
|
696
864
|
characters now get escaped in single quoted strings. Also, more escape
|
697
865
|
sequences in double-quoted strings are now supported: `\a`, `\v`, `\f`,
|
@@ -812,26 +980,32 @@ Whitespace conventions:
|
|
812
980
|
- Add `Regexp.quote` as an alias of `escape`.
|
813
981
|
|
814
982
|
|
983
|
+
|
984
|
+
|
815
985
|
## [0.5.5](https://github.com/opal/opal/compare/v0.5.4...v0.5.5) - 2013-11-25
|
816
986
|
|
987
|
+
|
817
988
|
- Fix regression: add `%i[foo bar]` style words back to lexer
|
818
989
|
|
819
|
-
- Move corelib from `opal/core` to `opal/corelib`. This stops files in
|
820
|
-
|
990
|
+
- Move corelib from `opal/core` to `opal/corelib`. This stops files in `core/` clashing with user files.
|
991
|
+
|
992
|
+
|
821
993
|
|
822
994
|
|
823
995
|
## [0.5.4](https://github.com/opal/opal/compare/v0.5.3...v0.5.4) - 2013-11-20
|
824
996
|
|
825
|
-
- Reverted `RUBY_VERSION` to `1.9.3`. Opal `0.6.0` will be the first release
|
826
|
-
for `2.0.0`.
|
827
997
|
|
998
|
+
- Reverted `RUBY_VERSION` to `1.9.3`. Opal `0.6.0` will be the first release for `2.0.0`.
|
999
|
+
|
1000
|
+
|
1001
|
+
|
1002
|
+
|
1003
|
+
## [0.5.3](https://github.com/opal/opal/compare/v0.5.2...v0.5.3) - 2013-11-20
|
828
1004
|
|
829
|
-
## [0.5.3](https://github.com/opal/opal/compare/v0.5.2...v0.5.3) - 2013-11-12
|
830
1005
|
|
831
1006
|
- Opal now targets ruby 2.0.0
|
832
1007
|
|
833
|
-
- Named function inside class body now generates with `$` prefix, e.g.
|
834
|
-
`$MyClass`. This makes it easier to wrap/bridge native functions.
|
1008
|
+
- Named function inside class body now generates with `$` prefix, e.g. `$MyClass`. This makes it easier to wrap/bridge native functions.
|
835
1009
|
|
836
1010
|
- Support Array subclasses
|
837
1011
|
|
@@ -850,15 +1024,20 @@ Whitespace conventions:
|
|
850
1024
|
- Cleanup parser/lexer to use `t` and `k` prefixes for all tokens
|
851
1025
|
|
852
1026
|
|
1027
|
+
|
1028
|
+
|
853
1029
|
## [0.5.2](https://github.com/opal/opal/compare/v0.5.1...v0.5.2) - 2013-11-11
|
854
1030
|
|
1031
|
+
|
855
1032
|
- Include native into corelib for 0.5.x
|
856
1033
|
|
857
1034
|
|
1035
|
+
|
1036
|
+
|
858
1037
|
## [0.5.1](https://github.com/opal/opal/compare/v0.5.0...v0.5.1) - 2013-11-10
|
859
1038
|
|
860
|
-
|
861
|
-
|
1039
|
+
|
1040
|
+
- Move all corelib under `core/` directory to prevent filename clashes with `require`
|
862
1041
|
|
863
1042
|
- Move `native.rb` into stdlib - must now be explicitly required
|
864
1043
|
|
@@ -867,13 +1046,54 @@ Whitespace conventions:
|
|
867
1046
|
- Cleanup and fix various `Enumerable` methods
|
868
1047
|
|
869
1048
|
|
870
|
-
## [0.5.0](https://github.com/opal/opal/compare/v0.4.2...v0.5.0) - 2013-11-03
|
871
1049
|
|
872
|
-
|
1050
|
+
|
1051
|
+
## [0.5.0](https://github.com/opal/opal/compare/v0.4.4...v0.5.0) - 2013-11-03
|
1052
|
+
|
1053
|
+
|
1054
|
+
- Optimized_operators is no longer a compiler option
|
1055
|
+
- Replace `Opal.bridge_class()` with <code>class Foo < \`bar\`</code> syntax
|
1056
|
+
- Expose `Opal.bridge_class()` for bridging native prototypes
|
1057
|
+
- Source maps improvements
|
1058
|
+
- Massive Rubyspec cleanup + passing specs
|
1059
|
+
- Massive Corelib/Stdlib cleanup + fixes
|
1060
|
+
- Massive internal cleanup + fixes
|
1061
|
+
|
1062
|
+
*See the [full diff](https://github.com/opal/opal/compare/v0.4.4...v0.5.0) for more details (almost 800 commits)*
|
1063
|
+
|
1064
|
+
|
1065
|
+
|
1066
|
+
|
1067
|
+
## [0.4.4](https://github.com/opal/opal/compare/v0.4.3...v0.4.4) - 2013-08-13
|
1068
|
+
|
1069
|
+
|
1070
|
+
- Remove native object method calls
|
1071
|
+
- Add Struct class
|
1072
|
+
- Add method stubs as method_missing option, stubs enabled by default
|
1073
|
+
- Native is now used to wrap native objects directly
|
1074
|
+
- Fix Hash.new and Hash.allocate for subclasses
|
1075
|
+
- Generate sourcemaps from fragments
|
1076
|
+
- Allow blocks to be passed to zsuper (no args) calls
|
1077
|
+
- Fix yield when given 1 or multiple arguments for block destructuring
|
1078
|
+
|
1079
|
+
|
1080
|
+
|
1081
|
+
|
1082
|
+
## [0.4.3](https://github.com/opal/opal/compare/v0.4.2...v0.4.3) - 2013-07-24
|
1083
|
+
|
1084
|
+
|
1085
|
+
- Re-implement class system. Classes are now real objects instead of converted Procs. This allows classes to properly inherit methods from each other.
|
1086
|
+
- Fix exception hierarchy. Not all standard exception classes were subclassing the correct parent classes, this is now fixed.
|
1087
|
+
- Move ERB into stdlib. The erb compiler/parser has also been moved into lib/
|
1088
|
+
- Opal::Builder class. A simple port/clone of sprockets general building. This allows us to build projects similar to the way opal-sprockets does.
|
1089
|
+
- Move json.rb to stdlib.
|
1090
|
+
|
1091
|
+
|
873
1092
|
|
874
1093
|
|
875
1094
|
## [0.4.2](https://github.com/opal/opal/compare/v0.4.1...v0.4.2) - 2013-07-03
|
876
1095
|
|
1096
|
+
|
877
1097
|
- Added `Kernel#rand`. (fntzr)
|
878
1098
|
|
879
1099
|
- Restored the `bin/opal` executable in gemspec.
|
@@ -886,14 +1106,20 @@ Whitespace conventions:
|
|
886
1106
|
format: `(((tmp = lhs) !== false || !==nil) ? tmp : rhs)`.
|
887
1107
|
|
888
1108
|
|
1109
|
+
|
1110
|
+
|
889
1111
|
## [0.4.1](https://github.com/opal/opal/compare/v0.4.0...v0.4.1) - 2013-06-16
|
890
1112
|
|
1113
|
+
|
891
1114
|
- Move sprockets logic out to external opal-sprockets gem. That now
|
892
1115
|
handles the compiling and loading of opal files in sprockets.
|
893
1116
|
|
894
1117
|
|
1118
|
+
|
1119
|
+
|
895
1120
|
## [0.4.0](https://github.com/opal/opal/compare/v0.3.44...v0.4.0) - 2013-06-15
|
896
1121
|
|
1122
|
+
|
897
1123
|
- Added fragments to parser. All parser methods now generate one or
|
898
1124
|
more Fragments which store the original sexp. This allows us to
|
899
1125
|
enumerate over them after parsing to map generated lines back to
|
@@ -945,7 +1171,10 @@ Whitespace conventions:
|
|
945
1171
|
- Merge Hash.from_native into Hash.new
|
946
1172
|
|
947
1173
|
|
948
|
-
|
1174
|
+
|
1175
|
+
|
1176
|
+
## [0.3.44](https://github.com/opal/opal/compare/v0.3.43...v0.3.44) - 2013-05-31
|
1177
|
+
|
949
1178
|
|
950
1179
|
- Cleanup runtime, and remove various flags and functions from opal
|
951
1180
|
objects and classes (moving them to runtime methods).
|
@@ -965,7 +1194,10 @@ Whitespace conventions:
|
|
965
1194
|
opal load paths automatically.
|
966
1195
|
|
967
1196
|
|
968
|
-
|
1197
|
+
|
1198
|
+
|
1199
|
+
## [0.3.43](https://github.com/opal/opal/compare/v0.3.42...v0.3.43) - 2013-05-02
|
1200
|
+
|
969
1201
|
|
970
1202
|
- Stop inlining respond_to? inside the parser. This now fully respects
|
971
1203
|
an object overriding respond_to?.
|
@@ -995,7 +1227,10 @@ Whitespace conventions:
|
|
995
1227
|
Kernel#format.
|
996
1228
|
|
997
1229
|
|
998
|
-
|
1230
|
+
|
1231
|
+
|
1232
|
+
## [0.3.42](https://github.com/opal/opal/compare/v0.3.41...v0.3.42) - 2013-03-21
|
1233
|
+
|
999
1234
|
|
1000
1235
|
- Fix/add lots of language specs.
|
1001
1236
|
|
@@ -1007,7 +1242,10 @@ Whitespace conventions:
|
|
1007
1242
|
used, where possible to be as compliant as possible.
|
1008
1243
|
|
1009
1244
|
|
1010
|
-
|
1245
|
+
|
1246
|
+
|
1247
|
+
## [0.3.41](https://github.com/opal/opal/compare/v0.3.40...v0.3.41) - 2013-02-26
|
1248
|
+
|
1011
1249
|
|
1012
1250
|
- Remove bin/opal - no longer required for building sources.
|
1013
1251
|
|
@@ -1016,7 +1254,10 @@ Whitespace conventions:
|
|
1016
1254
|
load paths for generic sprockets based apps to use.
|
1017
1255
|
|
1018
1256
|
|
1019
|
-
|
1257
|
+
|
1258
|
+
|
1259
|
+
## [0.3.40](https://github.com/opal/opal/compare/v0.3.39...v0.3.40) - 2013-02-23
|
1260
|
+
|
1020
1261
|
|
1021
1262
|
- Add Opal::Server as an easy to configure rack server for testing and
|
1022
1263
|
running Opal based apps.
|
@@ -1031,7 +1272,10 @@ Whitespace conventions:
|
|
1031
1272
|
constant will now also raise a NameError.
|
1032
1273
|
|
1033
1274
|
|
1034
|
-
|
1275
|
+
|
1276
|
+
|
1277
|
+
## [0.3.39](https://github.com/opal/opal/compare/v0.3.38...v0.3.39) - 2013-02-20
|
1278
|
+
|
1035
1279
|
|
1036
1280
|
- Fix bug where methods defined on a parent class after subclass was defined
|
1037
1281
|
would not given subclass access to method. Subclasses are now also tracked
|
@@ -1044,7 +1288,10 @@ Whitespace conventions:
|
|
1044
1288
|
- Fix for defining methods inside metaclass, or singleton_class scopes.
|
1045
1289
|
|
1046
1290
|
|
1047
|
-
|
1291
|
+
|
1292
|
+
|
1293
|
+
## [0.3.38](https://github.com/opal/opal/compare/v0.3.37...v0.3.38) - 2013-02-19
|
1294
|
+
|
1048
1295
|
|
1049
1296
|
- Add Native module used for wrapping objects to forward calls as native calls.
|
1050
1297
|
|
@@ -1057,75 +1304,49 @@ Whitespace conventions:
|
|
1057
1304
|
|
1058
1305
|
|
1059
1306
|
|
1060
|
-
[0.
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1069
|
-
[0.
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1078
|
-
[0.
|
1079
|
-
|
1080
|
-
|
1081
|
-
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
[0.
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
[0.3.
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
[0.3.36]: https://github.com/opal/opal/compare/v0.3.35...v0.3.36
|
1107
|
-
[0.3.35]: https://github.com/opal/opal/compare/v0.3.34...v0.3.35
|
1108
|
-
[0.3.34]: https://github.com/opal/opal/compare/v0.3.33...v0.3.34
|
1109
|
-
[0.3.33]: https://github.com/opal/opal/compare/v0.3.32...v0.3.33
|
1110
|
-
[0.3.32]: https://github.com/opal/opal/compare/v0.3.31...v0.3.32
|
1111
|
-
[0.3.31]: https://github.com/opal/opal/compare/v0.3.30...v0.3.31
|
1112
|
-
[0.3.30]: https://github.com/opal/opal/compare/v0.3.3...v0.3.30
|
1113
|
-
[0.3.3]: https://github.com/opal/opal/compare/v0.3.29...v0.3.3
|
1114
|
-
[0.3.29]: https://github.com/opal/opal/compare/v0.3.21...v0.3.29
|
1115
|
-
[0.3.21]: https://github.com/opal/opal/compare/v0.3.20...v0.3.21
|
1116
|
-
[0.3.20]: https://github.com/opal/opal/compare/v0.3.2...v0.3.20
|
1117
|
-
[0.3.2]: https://github.com/opal/opal/compare/v0.3.19...v0.3.2
|
1118
|
-
[0.3.19]: https://github.com/opal/opal/compare/v0.3.18...v0.3.19
|
1119
|
-
[0.3.18]: https://github.com/opal/opal/compare/v0.3.17...v0.3.18
|
1120
|
-
[0.3.17]: https://github.com/opal/opal/compare/v0.3.11...v0.3.17
|
1121
|
-
[0.3.11]: https://github.com/opal/opal/compare/v0.3.10...v0.3.11
|
1122
|
-
[0.3.10]: https://github.com/opal/opal/compare/v0.3.1...v0.3.10
|
1123
|
-
[0.3.1]: https://github.com/opal/opal/compare/v0.3.0...v0.3.1
|
1124
|
-
[0.3.0]: https://github.com/opal/opal/compare/v0.2.1...v0.3.0
|
1125
|
-
[0.2.1]: https://github.com/opal/opal/compare/v0.2.0...v0.2.1
|
1126
|
-
[0.2.0]: https://github.com/opal/opal/compare/v0.1.0...v0.2.0
|
1127
|
-
[0.1.0]: https://github.com/opal/opal/compare/v0.0.6...v0.1.0
|
1128
|
-
[0.0.6]: https://github.com/opal/opal/compare/v0.0.5...v0.0.6
|
1129
|
-
[0.0.5]: https://github.com/opal/opal/compare/v0.0.4...v0.0.5
|
1130
|
-
[0.0.4]: https://github.com/opal/opal/compare/v0.0.3...v0.0.4
|
1131
|
-
[0.0.3]: https://github.com/opal/opal/compare/v0.0.2...v0.0.3
|
1307
|
+
## [0.3.37](https://github.com/opal/opal/compare/v0.3.36...v0.3.37) - 2013-02-15
|
1308
|
+
|
1309
|
+
|
1310
|
+
- Extract the JavaScript runtime to `opal/runtime.js`
|
1311
|
+
- Add core `template.rb` for the basis of template libraries for Opal
|
1312
|
+
|
1313
|
+
|
1314
|
+
|
1315
|
+
|
1316
|
+
## [0.3.36](https://github.com/opal/opal/compare/v0.3.35...v0.3.36) - 2013-02-08
|
1317
|
+
|
1318
|
+
|
1319
|
+
- Use Ruby `require` directive inside Sprockets
|
1320
|
+
- Depreceate `Opal.process` in favour of `Opal::Environment`
|
1321
|
+
|
1322
|
+
|
1323
|
+
|
1324
|
+
|
1325
|
+
## [0.3.35](https://github.com/opal/opal/compare/v0.3.34...v0.3.35) - 2013-02-05
|
1326
|
+
|
1327
|
+
|
1328
|
+
- Internal cleanup
|
1329
|
+
|
1330
|
+
|
1331
|
+
|
1332
|
+
|
1333
|
+
## [0.3.34](https://github.com/opal/opal/compare/v0.3.33...v0.3.34) - 2013-02-05
|
1334
|
+
|
1335
|
+
|
1336
|
+
- Fix bug where camelcased lvars could parse as constants
|
1337
|
+
- Add `Array#shuffle`
|
1338
|
+
- Migrate to Sprockets-based building
|
1339
|
+
- Move ERB to separate gem
|
1340
|
+
|
1341
|
+
|
1342
|
+
|
1343
|
+
|
1344
|
+
## [0.3.33](https://github.com/opal/opal/compare/000000...v0.3.33) - 2013-01-18
|
1345
|
+
|
1346
|
+
|
1347
|
+
- Implement attr_reader/writer/accessor for dynamic uses
|
1348
|
+
- Hash internals update
|
1349
|
+
|
1350
|
+
|
1351
|
+
|
1352
|
+
|