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/stdlib/pp.rb
CHANGED
@@ -4,9 +4,9 @@ module Kernel
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def pp(*objs)
|
7
|
-
objs.each
|
7
|
+
objs.each do |obj|
|
8
8
|
PP.pp(obj)
|
9
|
-
|
9
|
+
end
|
10
10
|
objs.size <= 1 ? objs.first : objs
|
11
11
|
end
|
12
12
|
module_function :pp
|
@@ -15,11 +15,11 @@ end
|
|
15
15
|
class PP
|
16
16
|
class << self
|
17
17
|
if `(typeof(console) === "undefined" || typeof(console.log) === "undefined")`
|
18
|
-
def pp(obj, out
|
18
|
+
def pp(obj, out = $stdout, width = 79)
|
19
19
|
p(*args)
|
20
20
|
end
|
21
21
|
else
|
22
|
-
def pp(obj, out
|
22
|
+
def pp(obj, out = $stdout, width = 79)
|
23
23
|
if String === out
|
24
24
|
out + obj.inspect + "\n"
|
25
25
|
else
|
@@ -28,6 +28,6 @@ class PP
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
alias
|
31
|
+
alias singleline_pp pp
|
32
32
|
end
|
33
33
|
end
|
data/stdlib/promise.rb
CHANGED
@@ -134,7 +134,7 @@ class Promise
|
|
134
134
|
end
|
135
135
|
|
136
136
|
def act?
|
137
|
-
@action.
|
137
|
+
@action.key?(:success) || @action.key?(:always)
|
138
138
|
end
|
139
139
|
|
140
140
|
def action
|
@@ -146,7 +146,7 @@ class Promise
|
|
146
146
|
end
|
147
147
|
|
148
148
|
def realized?
|
149
|
-
|
149
|
+
@realized != false
|
150
150
|
end
|
151
151
|
|
152
152
|
def resolved?
|
@@ -159,7 +159,7 @@ class Promise
|
|
159
159
|
|
160
160
|
def ^(promise)
|
161
161
|
promise << self
|
162
|
-
self
|
162
|
+
self >> promise
|
163
163
|
|
164
164
|
promise
|
165
165
|
end
|
@@ -178,7 +178,7 @@ class Promise
|
|
178
178
|
elsif resolved?
|
179
179
|
promise.resolve(@delayed ? @delayed[0] : value)
|
180
180
|
elsif rejected?
|
181
|
-
if !@action.
|
181
|
+
if !@action.key?(:failure) || Promise === (@delayed ? @delayed[0] : @error)
|
182
182
|
promise.reject(@delayed ? @delayed[0] : error)
|
183
183
|
elsif promise.action.include?(:always)
|
184
184
|
promise.reject(@delayed ? @delayed[0] : error)
|
@@ -198,7 +198,8 @@ class Promise
|
|
198
198
|
end
|
199
199
|
|
200
200
|
begin
|
201
|
-
|
201
|
+
block = @action[:success] || @action[:always]
|
202
|
+
if block
|
202
203
|
value = block.call(value)
|
203
204
|
end
|
204
205
|
|
@@ -231,11 +232,12 @@ class Promise
|
|
231
232
|
end
|
232
233
|
|
233
234
|
begin
|
234
|
-
|
235
|
+
block = @action[:failure] || @action[:always]
|
236
|
+
if block
|
235
237
|
value = block.call(value)
|
236
238
|
end
|
237
239
|
|
238
|
-
if @action.
|
240
|
+
if @action.key?(:always)
|
239
241
|
resolve!(value)
|
240
242
|
else
|
241
243
|
reject!(value)
|
@@ -326,11 +328,11 @@ class Promise
|
|
326
328
|
result += " >> #{@next.inspect}"
|
327
329
|
end
|
328
330
|
|
329
|
-
if realized?
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
331
|
+
result += if realized?
|
332
|
+
": #{(@value || @error).inspect}>"
|
333
|
+
else
|
334
|
+
'>'
|
335
|
+
end
|
334
336
|
|
335
337
|
result
|
336
338
|
end
|
@@ -343,7 +345,8 @@ class Promise
|
|
343
345
|
current.push(promise.value)
|
344
346
|
end
|
345
347
|
|
346
|
-
|
348
|
+
prev = promise.prev
|
349
|
+
if prev
|
347
350
|
current.concat(it(prev))
|
348
351
|
else
|
349
352
|
current
|
@@ -372,31 +375,31 @@ class Promise
|
|
372
375
|
|
373
376
|
@wait = []
|
374
377
|
|
375
|
-
promises.each
|
378
|
+
promises.each do |promise|
|
376
379
|
wait promise
|
377
|
-
|
380
|
+
end
|
378
381
|
end
|
379
382
|
|
380
383
|
def each(&block)
|
381
384
|
raise ArgumentError, 'no block given' unless block
|
382
385
|
|
383
|
-
self.then
|
386
|
+
self.then do |values|
|
384
387
|
values.each(&block)
|
385
|
-
|
388
|
+
end
|
386
389
|
end
|
387
390
|
|
388
391
|
def collect(&block)
|
389
392
|
raise ArgumentError, 'no block given' unless block
|
390
393
|
|
391
|
-
self.then
|
394
|
+
self.then do |values|
|
392
395
|
When.new(values.map(&block))
|
393
|
-
|
396
|
+
end
|
394
397
|
end
|
395
398
|
|
396
399
|
def inject(*args, &block)
|
397
|
-
self.then
|
400
|
+
self.then do |values|
|
398
401
|
values.reduce(*args, &block)
|
399
|
-
|
402
|
+
end
|
400
403
|
end
|
401
404
|
|
402
405
|
alias map collect
|
@@ -414,9 +417,9 @@ class Promise
|
|
414
417
|
|
415
418
|
@wait << promise
|
416
419
|
|
417
|
-
promise.always
|
420
|
+
promise.always do
|
418
421
|
try if @next.any?
|
419
|
-
|
422
|
+
end
|
420
423
|
|
421
424
|
self
|
422
425
|
end
|
@@ -424,14 +427,15 @@ class Promise
|
|
424
427
|
alias and wait
|
425
428
|
|
426
429
|
def >>(*)
|
427
|
-
super.tap
|
430
|
+
super.tap do
|
428
431
|
try
|
429
|
-
|
432
|
+
end
|
430
433
|
end
|
431
434
|
|
432
435
|
def try
|
433
436
|
if @wait.all?(&:realized?)
|
434
|
-
|
437
|
+
promise = @wait.find(&:rejected?)
|
438
|
+
if promise
|
435
439
|
reject(promise.error)
|
436
440
|
else
|
437
441
|
resolve(@wait.map(&:value))
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# This file is not intended for real checks,
|
2
|
+
# but just to make happy libraries needing it.
|
3
|
+
|
4
|
+
RbConfig::SIZEOF = {
|
5
|
+
'clock_t' => 8,
|
6
|
+
'double _Complex' => 16,
|
7
|
+
'double' => 8,
|
8
|
+
'float _Complex' => 8,
|
9
|
+
'float' => 4,
|
10
|
+
'int' => 4,
|
11
|
+
'int128_t' => 16,
|
12
|
+
'int16_t' => 2,
|
13
|
+
'int32_t' => 4,
|
14
|
+
'int64_t' => 8,
|
15
|
+
'int8_t' => 1,
|
16
|
+
'intmax_t' => 8,
|
17
|
+
'intptr_t' => 8,
|
18
|
+
'int_fast16_t' => 2,
|
19
|
+
'int_fast32_t' => 4,
|
20
|
+
'int_fast64_t' => 8,
|
21
|
+
'int_fast8_t' => 1,
|
22
|
+
'int_least16_t' => 2,
|
23
|
+
'int_least32_t' => 4,
|
24
|
+
'int_least64_t' => 8,
|
25
|
+
'int_least8_t' => 1,
|
26
|
+
'long double _Complex' => 32,
|
27
|
+
'long double' => 16,
|
28
|
+
'long long' => 8,
|
29
|
+
'long' => 8,
|
30
|
+
'off_t' => 8,
|
31
|
+
'ptrdiff_t' => 8,
|
32
|
+
'short' => 2,
|
33
|
+
'sig_atomic_t' => 4,
|
34
|
+
'size_t' => 8,
|
35
|
+
'ssize_t' => 8,
|
36
|
+
'time_t' => 8,
|
37
|
+
'uint128_t' => 16,
|
38
|
+
'uint16_t' => 2,
|
39
|
+
'uint32_t' => 4,
|
40
|
+
'uint64_t' => 8,
|
41
|
+
'uint8_t' => 1,
|
42
|
+
'uintptr_t' => 8,
|
43
|
+
'void*' => 8,
|
44
|
+
'wchar_t' => 4,
|
45
|
+
'wctrans_t' => 4,
|
46
|
+
'wctype_t' => 4,
|
47
|
+
'wint_t' => 4,
|
48
|
+
'_Bool' => 1,
|
49
|
+
'__int128' => 16,
|
50
|
+
}
|
data/stdlib/securerandom.rb
CHANGED
data/stdlib/set.rb
CHANGED
@@ -7,13 +7,13 @@ class Set
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def initialize(enum = nil, &block)
|
10
|
-
@hash =
|
10
|
+
@hash = {}
|
11
11
|
|
12
12
|
return if enum.nil?
|
13
13
|
raise ArgumentError, 'value must be enumerable' unless Enumerable === enum
|
14
14
|
|
15
15
|
if block
|
16
|
-
enum.each { |item| add
|
16
|
+
enum.each { |item| add yield(item) }
|
17
17
|
else
|
18
18
|
merge(enum)
|
19
19
|
end
|
@@ -26,7 +26,7 @@ class Set
|
|
26
26
|
|
27
27
|
def -(enum)
|
28
28
|
unless enum.respond_to? :each
|
29
|
-
raise ArgumentError,
|
29
|
+
raise ArgumentError, 'value must be enumerable'
|
30
30
|
end
|
31
31
|
|
32
32
|
dup.subtract(enum)
|
@@ -38,11 +38,11 @@ class Set
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def ==(other)
|
41
|
-
if
|
41
|
+
if equal?(other)
|
42
42
|
true
|
43
43
|
elsif other.instance_of?(self.class)
|
44
44
|
@hash == other.instance_variable_get(:@hash)
|
45
|
-
elsif other.is_a?(Set) &&
|
45
|
+
elsif other.is_a?(Set) && size == other.size
|
46
46
|
other.all? { |o| @hash.include?(o) }
|
47
47
|
else
|
48
48
|
false
|
@@ -82,13 +82,11 @@ class Set
|
|
82
82
|
if include?(o)
|
83
83
|
delete(o)
|
84
84
|
self
|
85
|
-
else
|
86
|
-
nil
|
87
85
|
end
|
88
86
|
end
|
89
87
|
|
90
88
|
def delete_if
|
91
|
-
|
89
|
+
return enum_for(:delete_if) unless block_given?
|
92
90
|
# @hash.delete_if should be faster, but using it breaks the order
|
93
91
|
# of enumeration in subclasses.
|
94
92
|
select { |o| yield o }.each { |o| @hash.delete(o) }
|
@@ -104,7 +102,7 @@ class Set
|
|
104
102
|
end
|
105
103
|
|
106
104
|
def each(&block)
|
107
|
-
return enum_for
|
105
|
+
return enum_for(:each) unless block_given?
|
108
106
|
@hash.each_key(&block)
|
109
107
|
self
|
110
108
|
end
|
@@ -148,46 +146,46 @@ class Set
|
|
148
146
|
enum.each { |item| delete item }
|
149
147
|
self
|
150
148
|
end
|
151
|
-
|
149
|
+
|
152
150
|
def |(enum)
|
153
151
|
unless enum.respond_to? :each
|
154
|
-
raise ArgumentError,
|
152
|
+
raise ArgumentError, 'value must be enumerable'
|
155
153
|
end
|
156
154
|
dup.merge(enum)
|
157
155
|
end
|
158
|
-
|
156
|
+
|
159
157
|
def superset?(set)
|
160
|
-
set.is_a?(Set)
|
158
|
+
set.is_a?(Set) || raise(ArgumentError, 'value must be a set')
|
161
159
|
return false if size < set.size
|
162
160
|
set.all? { |o| include?(o) }
|
163
161
|
end
|
164
|
-
|
162
|
+
|
165
163
|
alias >= superset?
|
166
|
-
|
164
|
+
|
167
165
|
def proper_superset?(set)
|
168
|
-
set.is_a?(Set)
|
166
|
+
set.is_a?(Set) || raise(ArgumentError, 'value must be a set')
|
169
167
|
return false if size <= set.size
|
170
168
|
set.all? { |o| include?(o) }
|
171
169
|
end
|
172
|
-
|
170
|
+
|
173
171
|
alias > proper_superset?
|
174
|
-
|
172
|
+
|
175
173
|
def subset?(set)
|
176
|
-
set.is_a?(Set)
|
174
|
+
set.is_a?(Set) || raise(ArgumentError, 'value must be a set')
|
177
175
|
return false if set.size < size
|
178
176
|
all? { |o| set.include?(o) }
|
179
177
|
end
|
180
|
-
|
178
|
+
|
181
179
|
alias <= subset?
|
182
180
|
|
183
181
|
def proper_subset?(set)
|
184
|
-
set.is_a?(Set)
|
182
|
+
set.is_a?(Set) || raise(ArgumentError, 'value must be a set')
|
185
183
|
return false if set.size <= size
|
186
184
|
all? { |o| set.include?(o) }
|
187
185
|
end
|
188
|
-
|
186
|
+
|
189
187
|
alias < proper_subset?
|
190
|
-
|
188
|
+
|
191
189
|
alias + |
|
192
190
|
alias union |
|
193
191
|
|
data/stdlib/singleton.rb
CHANGED
@@ -8,7 +8,6 @@ module Singleton
|
|
8
8
|
end
|
9
9
|
|
10
10
|
module SingletonClassMethods
|
11
|
-
|
12
11
|
def clone
|
13
12
|
Singleton.__init__(super)
|
14
13
|
end
|
@@ -21,12 +20,12 @@ module Singleton
|
|
21
20
|
|
22
21
|
class << Singleton
|
23
22
|
def __init__(klass)
|
24
|
-
klass.instance_eval
|
23
|
+
klass.instance_eval do
|
25
24
|
@singleton__instance__ = nil
|
26
|
-
|
25
|
+
end
|
27
26
|
def klass.instance
|
28
27
|
return @singleton__instance__ if @singleton__instance__
|
29
|
-
@singleton__instance__ = new
|
28
|
+
@singleton__instance__ = new
|
30
29
|
end
|
31
30
|
klass
|
32
31
|
end
|
data/stdlib/stringio.rb
CHANGED
@@ -96,6 +96,39 @@ class StringIO < IO
|
|
96
96
|
self
|
97
97
|
end
|
98
98
|
|
99
|
+
def each(separator = $/)
|
100
|
+
return enum_for :each_line unless block_given?
|
101
|
+
check_readable
|
102
|
+
chomp_lines = false
|
103
|
+
if ::Hash === separator
|
104
|
+
separator = (chomp_lines = separator[:chomp]) ? /\r?\n/ : $/
|
105
|
+
elsif separator
|
106
|
+
separator = separator.to_str
|
107
|
+
else
|
108
|
+
separator = `undefined`
|
109
|
+
end
|
110
|
+
%x{
|
111
|
+
var str = self.string, stringLength = str.length;
|
112
|
+
if (self.position < stringLength) str = str.substr(self.position);
|
113
|
+
if (separator) {
|
114
|
+
var chomped = #{`str`.chomp}, trailing = str.length !== chomped.length, splitted = chomped.split(separator);
|
115
|
+
for (var i = 0, len = splitted.length; i < len; i++) {
|
116
|
+
var line = chomp_lines ? splitted[i] : (i < len - 1 || trailing ? splitted[i] + separator : splitted[i]);
|
117
|
+
#{yield `line`};
|
118
|
+
}
|
119
|
+
} else if (separator === undefined) {
|
120
|
+
#{yield `str`};
|
121
|
+
} else {
|
122
|
+
var m, re = /(.+(?:\n\n|$))\n*/g;
|
123
|
+
while ((m = re.exec(str))) #{yield `m[1]`};
|
124
|
+
}
|
125
|
+
self.position = stringLength;
|
126
|
+
}
|
127
|
+
self
|
128
|
+
end
|
129
|
+
|
130
|
+
alias each_line each
|
131
|
+
|
99
132
|
def write(string)
|
100
133
|
check_writable
|
101
134
|
|
data/stdlib/strscan.rb
CHANGED
@@ -13,7 +13,7 @@ class StringScanner
|
|
13
13
|
attr_reader :string
|
14
14
|
|
15
15
|
def beginning_of_line?
|
16
|
-
|
16
|
+
`#{@pos} === 0 || #{@string}.charAt(#{@pos} - 1) === "\n"`
|
17
17
|
end
|
18
18
|
|
19
19
|
alias bol? beginning_of_line?
|
@@ -22,23 +22,23 @@ class StringScanner
|
|
22
22
|
pattern = anchor(pattern)
|
23
23
|
|
24
24
|
%x{
|
25
|
-
var result = pattern.exec(
|
25
|
+
var result = pattern.exec(#{@working});
|
26
26
|
|
27
27
|
if (result == null) {
|
28
|
-
return
|
28
|
+
return #{@matched} = nil;
|
29
29
|
}
|
30
30
|
else if (typeof(result) === 'object') {
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
#{@prev_pos} = #{@pos};
|
32
|
+
#{@pos} += result[0].length;
|
33
|
+
#{@working} = #{@working}.substring(result[0].length);
|
34
|
+
#{@matched} = result[0];
|
35
|
+
#{@match} = result;
|
36
36
|
|
37
37
|
return result[0];
|
38
38
|
}
|
39
39
|
else if (typeof(result) === 'string') {
|
40
|
-
|
41
|
-
|
40
|
+
#{@pos} += result.length;
|
41
|
+
#{@working} = #{@working}.substring(result.length);
|
42
42
|
|
43
43
|
return result;
|
44
44
|
}
|
@@ -52,8 +52,8 @@ class StringScanner
|
|
52
52
|
pattern = anchor(pattern)
|
53
53
|
|
54
54
|
%x{
|
55
|
-
var pos =
|
56
|
-
working =
|
55
|
+
var pos = #{@pos},
|
56
|
+
working = #{@working},
|
57
57
|
result;
|
58
58
|
|
59
59
|
while (true) {
|
@@ -63,26 +63,25 @@ class StringScanner
|
|
63
63
|
|
64
64
|
if (result == null) {
|
65
65
|
if (working.length === 0) {
|
66
|
-
return
|
66
|
+
return #{@matched} = nil;
|
67
67
|
}
|
68
68
|
|
69
69
|
continue;
|
70
70
|
}
|
71
71
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
72
|
+
#{@matched} = #{@string}.substr(#{@pos}, pos - #{@pos} - 1 + result[0].length);
|
73
|
+
#{@prev_pos} = pos - 1;
|
74
|
+
#{@pos} = pos;
|
75
|
+
#{@working} = working.substr(result[0].length);
|
76
76
|
|
77
|
-
return
|
77
|
+
return #{@matched};
|
78
78
|
}
|
79
79
|
}
|
80
80
|
end
|
81
81
|
|
82
|
-
|
83
82
|
def [](idx)
|
84
83
|
%x{
|
85
|
-
var match =
|
84
|
+
var match = #{@match};
|
86
85
|
|
87
86
|
if (idx < 0) {
|
88
87
|
idx += match.length;
|
@@ -104,46 +103,46 @@ class StringScanner
|
|
104
103
|
pattern = anchor(pattern)
|
105
104
|
|
106
105
|
%x{
|
107
|
-
var result = pattern.exec(
|
106
|
+
var result = pattern.exec(#{@working});
|
108
107
|
|
109
108
|
if (result == null) {
|
110
|
-
return
|
109
|
+
return #{@matched} = nil;
|
111
110
|
}
|
112
111
|
|
113
|
-
return
|
112
|
+
return #{@matched} = result[0];
|
114
113
|
}
|
115
114
|
end
|
116
115
|
|
117
116
|
def check_until(pattern)
|
118
117
|
%x{
|
119
|
-
var prev_pos =
|
120
|
-
pos =
|
118
|
+
var prev_pos = #{@prev_pos},
|
119
|
+
pos = #{@pos};
|
121
120
|
|
122
121
|
var result = #{scan_until(pattern)};
|
123
122
|
|
124
123
|
if (result !== nil) {
|
125
|
-
|
126
|
-
|
124
|
+
#{@matched} = result.substr(-1);
|
125
|
+
#{@working} = #{@string}.substr(pos);
|
127
126
|
}
|
128
127
|
|
129
|
-
|
130
|
-
|
128
|
+
#{@prev_pos} = prev_pos;
|
129
|
+
#{@pos} = pos;
|
131
130
|
|
132
131
|
return result;
|
133
132
|
}
|
134
133
|
end
|
135
134
|
|
136
135
|
def peek(length)
|
137
|
-
|
136
|
+
`#{@working}.substring(0, length)`
|
138
137
|
end
|
139
138
|
|
140
139
|
def eos?
|
141
|
-
|
140
|
+
`#{@working}.length === 0`
|
142
141
|
end
|
143
142
|
|
144
143
|
def exist?(pattern)
|
145
144
|
%x{
|
146
|
-
var result = pattern.exec(
|
145
|
+
var result = pattern.exec(#{@working});
|
147
146
|
|
148
147
|
if (result == null) {
|
149
148
|
return nil;
|
@@ -161,19 +160,19 @@ class StringScanner
|
|
161
160
|
pattern = anchor(pattern)
|
162
161
|
|
163
162
|
%x{
|
164
|
-
var result = pattern.exec(
|
163
|
+
var result = pattern.exec(#{@working});
|
165
164
|
|
166
165
|
if (result == null) {
|
167
|
-
return
|
166
|
+
return #{@matched} = nil;
|
168
167
|
}
|
169
168
|
else {
|
170
169
|
var match_str = result[0];
|
171
170
|
var match_len = match_str.length;
|
172
171
|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
172
|
+
#{@matched} = match_str;
|
173
|
+
#{@prev_pos} = #{@pos};
|
174
|
+
#{@pos} += match_len;
|
175
|
+
#{@working} = #{@working}.substring(match_len);
|
177
176
|
|
178
177
|
return match_len;
|
179
178
|
}
|
@@ -188,7 +187,7 @@ class StringScanner
|
|
188
187
|
return nil;
|
189
188
|
}
|
190
189
|
else {
|
191
|
-
|
190
|
+
#{@matched} = result.substr(-1);
|
192
191
|
|
193
192
|
return result.length;
|
194
193
|
}
|
@@ -199,14 +198,14 @@ class StringScanner
|
|
199
198
|
%x{
|
200
199
|
var result = nil;
|
201
200
|
|
202
|
-
if (
|
203
|
-
|
204
|
-
|
205
|
-
result =
|
206
|
-
|
201
|
+
if (#{@pos} < #{@string}.length) {
|
202
|
+
#{@prev_pos} = #{@pos};
|
203
|
+
#{@pos} += 1;
|
204
|
+
result = #{@matched} = #{@working}.substring(0, 1);
|
205
|
+
#{@working} = #{@working}.substring(1);
|
207
206
|
}
|
208
207
|
else {
|
209
|
-
|
208
|
+
#{@matched} = nil;
|
210
209
|
}
|
211
210
|
|
212
211
|
return result;
|
@@ -220,13 +219,13 @@ class StringScanner
|
|
220
219
|
pattern = anchor(pattern)
|
221
220
|
|
222
221
|
%x{
|
223
|
-
var result = pattern.exec(
|
222
|
+
var result = pattern.exec(#{@working});
|
224
223
|
|
225
224
|
if (result == null) {
|
226
225
|
return nil;
|
227
226
|
}
|
228
227
|
else {
|
229
|
-
|
228
|
+
#{@prev_pos} = #{@pos};
|
230
229
|
|
231
230
|
return result[0].length;
|
232
231
|
}
|
@@ -246,31 +245,31 @@ class StringScanner
|
|
246
245
|
|
247
246
|
def matched_size
|
248
247
|
%x{
|
249
|
-
if (
|
248
|
+
if (#{@matched} === nil) {
|
250
249
|
return nil;
|
251
250
|
}
|
252
251
|
|
253
|
-
return
|
252
|
+
return #{@matched}.length
|
254
253
|
}
|
255
254
|
end
|
256
255
|
|
257
256
|
def post_match
|
258
257
|
%x{
|
259
|
-
if (
|
258
|
+
if (#{@matched} === nil) {
|
260
259
|
return nil;
|
261
260
|
}
|
262
261
|
|
263
|
-
return
|
262
|
+
return #{@string}.substr(#{@pos});
|
264
263
|
}
|
265
264
|
end
|
266
265
|
|
267
266
|
def pre_match
|
268
267
|
%x{
|
269
|
-
if (
|
268
|
+
if (#{@matched} === nil) {
|
270
269
|
return nil;
|
271
270
|
}
|
272
271
|
|
273
|
-
return
|
272
|
+
return #{@string}.substr(0, #{@prev_pos});
|
274
273
|
}
|
275
274
|
end
|
276
275
|
|
@@ -285,7 +284,7 @@ class StringScanner
|
|
285
284
|
end
|
286
285
|
|
287
286
|
def rest?
|
288
|
-
|
287
|
+
`#{@working}.length !== 0`
|
289
288
|
end
|
290
289
|
|
291
290
|
def rest_size
|
@@ -305,7 +304,8 @@ class StringScanner
|
|
305
304
|
self
|
306
305
|
end
|
307
306
|
|
308
|
-
private
|
307
|
+
private
|
308
|
+
|
309
309
|
def anchor(pattern)
|
310
310
|
%x{
|
311
311
|
var flags = pattern.toString().match(/\/([^\/]+)$/);
|