diff --git a/.editorconfig b/.editorconfig index 52b84b424fb9a0..f1eff1dffcfe42 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,40 +1,26 @@ root = true [*] -end_of_line = lf charset = utf-8 -trim_trailing_whitespace = true +end_of_line = lf +indent_size = 2 +indent_style = space insert_final_newline = true +trim_trailing_whitespace = true [vcbuild.bat] end_of_line = crlf -[{lib,test,tools}/**.js] -indent_style = space -indent_size = 2 - -[src/**.{h,cc}] -indent_style = space -indent_size = 2 - -[test/*.py] -indent_style = space -indent_size = 2 - -[configure] -indent_style = space -indent_size = 2 - [Makefile] -indent_style = tab indent_size = 8 +indent_style = tab [{deps}/**] -indent_style = ignore -indent_size = ignore +charset = ignore end_of_line = ignore +indent_size = ignore +indent_style = ignore trim_trailing_whitespace = ignore -charset = ignore [{test/fixtures,deps,tools/node_modules,tools/gyp,tools/icu,tools/msvs}/**] insert_final_newline = false diff --git a/.eslintrc.js b/.eslintrc.js index 8347d066ed22ec..d0aa8955351e5e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -123,27 +123,28 @@ module.exports = { 'no-proto': 'error', 'no-redeclare': 'error', 'no-restricted-modules': ['error', 'sys'], + /* eslint-disable max-len */ 'no-restricted-properties': [ 'error', { object: 'assert', property: 'deepEqual', - message: 'Use assert.deepStrictEqual().', + message: 'Use `assert.deepStrictEqual()`.', }, { object: 'assert', property: 'notDeepEqual', - message: 'Use assert.notDeepStrictEqual().', + message: 'Use `assert.notDeepStrictEqual()`.', }, { object: 'assert', property: 'equal', - message: 'Use assert.strictEqual() rather than assert.equal().', + message: 'Use `assert.strictEqual()` rather than `assert.equal()`.', }, { object: 'assert', property: 'notEqual', - message: 'Use assert.notStrictEqual() rather than assert.notEqual().', + message: 'Use `assert.notStrictEqual()` rather than `assert.notEqual()`.', }, { property: '__defineGetter__', @@ -154,7 +155,6 @@ module.exports = { message: '__defineSetter__ is deprecated.', } ], - /* eslint-disable max-len */ // If this list is modified, please copy the change to lib/.eslintrc.yaml // and test/.eslintrc.yaml. 'no-restricted-syntax': [ @@ -169,7 +169,7 @@ module.exports = { }, { selector: "CallExpression[callee.object.name='assert'][callee.property.name='rejects'][arguments.length<2]", - message: 'assert.rejects() must be invoked with at least two arguments.', + message: '`assert.rejects()` must be invoked with at least two arguments.', }, { selector: "CallExpression[callee.object.name='assert'][callee.property.name='strictEqual'][arguments.2.type='Literal']", @@ -177,23 +177,23 @@ module.exports = { }, { selector: "CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.1.type='Literal']:not([arguments.1.regex])", - message: 'Use an object as second argument of assert.throws()', + message: 'Use an object as second argument of `assert.throws()`.', }, { selector: "CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.length<2]", - message: 'assert.throws() must be invoked with at least two arguments.', + message: '`assert.throws()` must be invoked with at least two arguments.', }, { selector: "CallExpression[callee.name='setTimeout'][arguments.length<2]", - message: 'setTimeout() must be invoked with at least two arguments.', + message: '`setTimeout()` must be invoked with at least two arguments.', }, { selector: "CallExpression[callee.name='setInterval'][arguments.length<2]", - message: 'setInterval() must be invoked with at least 2 arguments.', + message: '`setInterval()` must be invoked with at least two arguments.', }, { selector: 'ThrowStatement > CallExpression[callee.name=/Error$/]', - message: 'Use new keyword when throwing an Error.', + message: 'Use `new` keyword when throwing an `Error`.', } ], /* eslint-enable max-len */ diff --git a/.gitignore b/.gitignore index d60603514c801f..f652a2c74c37d6 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ !.mailmap !.nycrc !.travis.yml +!.eslintrc.yaml core vgcore.* @@ -38,14 +39,15 @@ icu_config.gypi .eslintcache node_trace.*.log coverage/ +!**/node_modules/**/coverage /out # various stuff that VC++ produces/uses Debug/ !**/node_modules/debug/ -!deps/v8/src/debug/ Release/ +!**/node_modules/**/release !doc/blog/** *.sln !nodemsi.sln @@ -64,7 +66,6 @@ ipch/ *.VC.opendb .vs/ .vscode/ -/deps/v8/src/debug/obj /*.exe /config.mk @@ -98,6 +99,7 @@ deps/openssl/openssl.xml deps/openssl/openssl.target.mk deps/zlib/zlib.target.mk +!deps/npm/node_modules # not needed and causes issues for distro packagers deps/npm/node_modules/.bin/ @@ -130,8 +132,4 @@ deps/uv/docs/src/guide/ # ignore VS compiler output unhandled by V8's .gitignore deps/v8/gypfiles/Debug/ deps/v8/gypfiles/Release/ -deps/v8/src/Debug/ -deps/v8/src/Release/ -deps/v8/src/inspector/Debug/ -deps/v8/src/inspector/Release/ deps/v8/third_party/eu-strip/ diff --git a/.travis.yml b/.travis.yml index f6bbd1421b24ca..fad2e7f0c77509 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,12 +8,12 @@ matrix: include: - name: "Linter" node_js: "latest" - env: + env: - NODE=$(which node) - install: - - make lint-md-build script: - make lint + # Lint the first commit in the PR. + - git log $TRAVIS_COMMIT_RANGE --pretty=format:'%h' --no-merges | tail -1 | xargs npx core-validate-commit --no-validate-metadata - name: "Test Suite" install: - ./configure diff --git a/BUILDING.md b/BUILDING.md index 32c4c47e143afd..839480eec38a88 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -1,13 +1,50 @@ # Building Node.js -Depending on what platform or features you require, the build process may -differ slightly. After you've successfully built a binary, running the -test suite to validate that the binary works as intended is a good next step. +Depending on what platform or features you need, the build process may +differ. After you've built a binary, running the +test suite to confirm that the binary works as intended is a good next step. -If you can reproduce a test failure consistently, search for it in the +If you can reproduce a test failure, search for it in the [Node.js issue tracker](https://github.com/nodejs/node/issues) or file a new issue. +## Table of Contents + +* [Supported platforms](#supported-platforms) + * [Input](#input) + * [Strategy](#strategy) + * [Supported platforms](#supported-platforms-1) + * [Supported toolchains](#supported-toolchains) + * [Unix](#unix) + * [AIX](#aix) + * [Windows](#windows) + * [OpenSSL asm support](#openssl-asm-support) +* [Building Node.js on supported platforms](#building-nodejs-on-supported-platforms) + * [Unix/macOS](#unixmacos) + * [Prerequisites](#prerequisites) + * [Building Node.js](#building-nodejs-1) + * [Running Tests](#running-tests) + * [Building the documentation](#building-the-documentation) + * [Building a debug build](#building-a-debug-build) + * [Windows](#windows-1) + * [Android/Android-based devices (e.g. Firefox OS)](#androidandroid-based-devices-eg-firefox-os) + * [`Intl` (ECMA-402) support](#intl-ecma-402-support) + * [Default: `small-icu` (English only) support](#default-small-icu-english-only-support) + * [Build with full ICU support (all locales supported by ICU)](#build-with-full-icu-support-all-locales-supported-by-icu) + * [Unix/macOS](#unixmacos-1) + * [Windows](#windows-2) + * [Building without Intl support](#building-without-intl-support) + * [Unix/macOS](#unixmacos-2) + * [Windows](#windows-3) + * [Use existing installed ICU (Unix/macOS only)](#use-existing-installed-icu-unixmacos-only) + * [Build with a specific ICU](#build-with-a-specific-icu) + * [Unix/macOS](#unixmacos-3) + * [Windows](#windows-4) +* [Building Node.js with FIPS-compliant OpenSSL](#building-nodejs-with-fips-compliant-openssl) +* [Building Node.js with external core modules](#building-nodejs-with-external-core-modules) + * [Unix/macOS](#unixmacos-4) + * [Windows](#windows-5) + ## Supported platforms This list of supported platforms is current as of the branch/release to diff --git a/CHANGELOG.md b/CHANGELOG.md index 8287ff65ad25c1..a0064c09fe77b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,7 +31,8 @@ release. -10.11.0
+10.12.0
+10.11.0
10.10.0
10.9.0
10.8.0
diff --git a/COLLABORATOR_GUIDE.md b/COLLABORATOR_GUIDE.md index c073c07a7f0996..7a435c6478bf45 100644 --- a/COLLABORATOR_GUIDE.md +++ b/COLLABORATOR_GUIDE.md @@ -83,10 +83,11 @@ necessary. ### Author ready pull requests A pull request that is still awaiting the minimum review time is considered -_author ready_ as soon as the CI has been started, it has at least one approval, -and it has no outstanding review comments. Please always make sure to add the -`author ready` label to the PR in that case and remove it again as soon as that -condition is not met anymore. +_author ready_ as soon as the CI has been started, it has at least two approvals +(one Collaborator approval is enough if the pull request has been open for more +than 7 days), and it has no outstanding review comments. Please always make sure +to add the `author ready` label to the PR in that case and remove it again as +soon as that condition is not met anymore. ### Handling own pull requests @@ -112,10 +113,11 @@ comment that explains why the PR does not require a CI run. ### Code Reviews -All pull requests must be reviewed and accepted by a Collaborator with -sufficient expertise who is able to take full responsibility for the -change. In the case of pull requests proposed by an existing -Collaborator, an additional Collaborator is required for sign-off. +At least two Collaborators must approve a pull request before the pull request +lands. (One Collaborator approval is enough if the pull request has been open +for more than 7 days.) Approving a pull request indicates that the Collaborator +accepts responsibility for the change. Approval must be from Collaborators who +are not authors of the change. In some cases, it may be necessary to summon a GitHub team to a pull request for review by @-mention. @@ -170,10 +172,10 @@ agenda. ### Waiting for Approvals Before landing pull requests, sufficient time should be left for input -from other Collaborators. In general, leave at least 48 hours during the -week and 72 hours over weekends to account for international time -differences and work schedules. However, certain types of pull requests -can be fast-tracked and may be landed after a shorter delay. For example: +from other Collaborators. In general, leave at least 48 hours to account for +international time differences and work schedules. However, certain types of +pull requests can be fast-tracked and may be landed after a shorter delay. For +example: * Focused changes that affect only documentation and/or the test suite: * `code-and-learn` tasks typically fall into this category. @@ -183,9 +185,12 @@ can be fast-tracked and may be landed after a shorter delay. For example: * Regressions that happen right before a release, or reported soon after. When a pull request is deemed suitable to be fast-tracked, label it with -`fast-track`. The pull request can be landed once 2 or more Collaborators -approve both the pull request and the fast-tracking request, and the necessary -CI testing is done. +`fast-track` and add a comment that collaborators may upvote. Please mention any +Collaborators that previously approved the pull request. If someone disagrees +with the fast-tracking request, remove the label and leave a comment indicating +why the pull request should not be fast-tracked. The pull request can be landed +once two or more Collaborators approve both the pull request and the +fast-tracking request, and the necessary CI testing is done. ### Testing and CI @@ -408,10 +413,6 @@ Pull requests introducing new core modules: New core modules must be landed with a [Stability Index][] of Experimental, and must remain Experimental until a semver-major release. -For new modules that involve significant effort, non-trivial additions to -Node.js or significant new capabilities, an [Enhancement Proposal][] is -recommended but not required. - ### Additions to N-API N-API provides an ABI stable API that we will have to support in future @@ -486,9 +487,8 @@ level. ### Involving the TSC -Collaborators may opt to elevate pull requests or issues to the [TSC][] for -discussion by assigning the `tsc-review` label or @-mentioning the -`@nodejs/tsc` GitHub team. This should be done where a pull request: +Collaborators may opt to elevate pull requests or issues to the [TSC][]. +This should be done where a pull request: - is labeled `semver-major`, or - has a significant impact on the codebase, or @@ -496,6 +496,11 @@ discussion by assigning the `tsc-review` label or @-mentioning the - has failed to reach consensus amongst the Collaborators who are actively participating in the discussion. +Assign the `tsc-review` label or @-mention the +`@nodejs/tsc` GitHub team if you want to elevate an issue to the [TSC][]. +Do not use the GitHub UI on the right hand side to assign to +`@nodejs/tsc` or request a review from `@nodejs/tsc`. + The TSC should serve as the final arbiter where required. ## Landing Pull Requests @@ -695,9 +700,12 @@ $ git rev-list upstream/master...HEAD | xargs core-validate-commit Optional: When landing your own commits, force push the amended commit to the branch you used to open the pull request. If your branch is called `bugfix`, then the command would be `git push --force-with-lease origin master:bugfix`. -When the pull request is closed, this will cause the pull request to -show the purple merged status rather than the red closed status that is -usually used for pull requests that weren't merged. +Don't manually close the PR, GitHub will close it automatically later after you +push it upstream, and will mark it with the purple merged status rather than the +red closed status. If you close the PR before GitHub adjusts its status, it will +show up as a 0 commit PR and the changed file history will be empty. Also if you +push upstream before you push to your branch, GitHub will close the issue with +red status so the order of operations is important. Time to push it: @@ -846,7 +854,7 @@ LTS working group and the Release team. | --- | --- | | `benchmark/*` | @nodejs/benchmarking, @mscdex | | `doc/*`, `*.md` | @nodejs/documentation | -| `lib/assert` | @nodejs/testing | +| `lib/assert` | @nodejs/assert | | `lib/async_hooks` | @nodejs/async\_hooks for bugs/reviews (+ @nodejs/diagnostics for API) | | `lib/buffer` | @nodejs/buffer | | `lib/child_process` | @nodejs/child\_process | @@ -889,7 +897,6 @@ When things need extra attention, are controversial, or `semver-major`: If you cannot find who to cc for a file, `git shortlog -n -s ` may help. ["Merge Pull Request"]: https://help.github.com/articles/merging-a-pull-request/#merging-a-pull-request-on-github -[Enhancement Proposal]: https://github.com/nodejs/node-eps [Stability Index]: doc/api/documentation.md#stability-index [TSC]: https://github.com/nodejs/TSC [_Deprecation_]: https://en.wikipedia.org/wiki/Deprecation diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cb8d20e90d005b..684277980a8ee6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,6 +11,13 @@ small and all contributions are valued. This guide explains the process for contributing to the Node.js project's core `nodejs/node` GitHub Repository and describes what to expect at each step. +## Contents + +* [Code of Conduct](#code-of-conduct) +* [Issues](#issues) +* [Pull Requests](#pull-requests) +* [Developer's Certificate of Origin 1.1](#developers-certificate-of-origin-11) + ## [Code of Conduct](./doc/guides/contributing/coc.md) The Node.js project has a diff --git a/CPP_STYLE_GUIDE.md b/CPP_STYLE_GUIDE.md index 41e1f082f87751..ae0135b5c0bdff 100644 --- a/CPP_STYLE_GUIDE.md +++ b/CPP_STYLE_GUIDE.md @@ -20,6 +20,7 @@ * [Ownership and Smart Pointers](#ownership-and-smart-pointers) * [Others](#others) * [Type casting](#type-casting) + * [Using `auto`](#using-auto) * [Do not include `*.h` if `*-inl.h` has already been included](#do-not-include-h-if--inlh-has-already-been-included) * [Avoid throwing JavaScript errors in C++ methods](#avoid-throwing-javascript-errors-in-c) * [Avoid throwing JavaScript errors in nested C++ methods](#avoid-throwing-javascript-errors-in-nested-c-methods) @@ -32,11 +33,11 @@ these rules: ## Formatting -## Left-leaning (C++ style) asterisks for pointer declarations +### Left-leaning (C++ style) asterisks for pointer declarations `char* buffer;` instead of `char *buffer;` -## C++ style comments +### C++ style comments Use C++ style comments (`//`) for both single-line and multi-line comments. Comments should also start with uppercase and finish with a dot. @@ -56,7 +57,7 @@ preferred style. Feel free to update old comments to the preferred style when working on code in the immediate vicinity or when changing/improving those comments. -## 2 spaces of indentation for blocks or bodies of conditionals +### 2 spaces of indentation for blocks or bodies of conditionals ```c++ if (foo) @@ -76,7 +77,7 @@ Braces are optional if the statement body only has one line. `namespace`s receive no indentation on their own. -## 4 spaces of indentation for statement continuations +### 4 spaces of indentation for statement continuations ```c++ VeryLongTypeName very_long_result = SomeValueWithAVeryLongName + @@ -85,7 +86,7 @@ VeryLongTypeName very_long_result = SomeValueWithAVeryLongName + Operators are before the line break in these cases. -## Align function arguments vertically +### Align function arguments vertically ```c++ void FunctionWithAVeryLongName(int parameter_with_a_very_long_name, @@ -101,7 +102,7 @@ void FunctionWithAReallyReallyReallyLongNameSeriouslyStopIt( ...); ``` -## Initialization lists +### Initialization lists Long initialization lists are formatted like this: @@ -115,7 +116,7 @@ HandleWrap::HandleWrap(Environment* env, handle_(handle) { ``` -## CamelCase for methods, functions, and classes +### CamelCase for methods, functions, and classes Exceptions are simple getters/setters, which are named `property_name()` and `set_property_name()`, respectively. @@ -131,7 +132,7 @@ class FooBar { }; ``` -## snake\_case for local variables and parameters +### snake\_case for local variables and parameters ```c++ int FunctionThatDoesSomething(const char* important_string) { @@ -139,7 +140,7 @@ int FunctionThatDoesSomething(const char* important_string) { } ``` -## snake\_case\_ for private class fields +### snake\_case\_ for private class fields ```c++ class Foo { @@ -148,7 +149,7 @@ class Foo { }; ``` -## snake\_case\_ for C-like structs +### snake\_case\_ for C-like structs For plain C-like structs snake_case can be used. ```c++ @@ -157,7 +158,7 @@ struct foo_bar { } ``` -## Space after `template` +### Space after `template` ```c++ template @@ -167,16 +168,16 @@ class FancyContainer { ``` ## Memory Management -## Memory allocation +### Memory allocation - `Malloc()`, `Calloc()`, etc. from `util.h` abort in Out-of-Memory situations - `UncheckedMalloc()`, etc. return `nullptr` in OOM situations -## Use `nullptr` instead of `NULL` or `0` +### Use `nullptr` instead of `NULL` or `0` What it says in the title. -## Ownership and Smart Pointers +### Ownership and Smart Pointers "Smart" pointers are classes that act like pointers, e.g. by overloading the `*` and `->` operators. Some smart pointer types can be @@ -202,14 +203,32 @@ Never use `std::auto_ptr`. Instead, use `std::unique_ptr`. ## Others -## Type casting +### Type casting - Always avoid C-style casts (`(type)value`) - `dynamic_cast` does not work because RTTI is not enabled - Use `static_cast` for casting whenever it works - `reinterpret_cast` is okay if `static_cast` is not appropriate -## Do not include `*.h` if `*-inl.h` has already been included +### Using `auto` + +Being explicit about types is usually preferred over using `auto`. + +Use `auto` to avoid type names that are noisy, obvious, or unimportant. When +doing so, keep in mind that explicit types often help with readability and +verifying the correctness of code. + +```cpp +for (const auto& item : some_map) { + const KeyType& key = item.first; + const ValType& value = item.second; + // The rest of the loop can now just refer to key and value, + // a reader can see the types in question, and we've avoided + // the too-common case of extra copies in this iteration. +} +``` + +### Do not include `*.h` if `*-inl.h` has already been included Do @@ -224,7 +243,7 @@ instead of #include "util-inl.h" ``` -## Avoid throwing JavaScript errors in C++ +### Avoid throwing JavaScript errors in C++ When there is a need to throw errors from a C++ binding method, try to return the data necessary for constructing the errors to JavaScript, @@ -278,7 +297,7 @@ exports.foo = function(str) { }; ``` -### Avoid throwing JavaScript errors in nested C++ methods +#### Avoid throwing JavaScript errors in nested C++ methods When you have to throw the errors from C++, try to do it at the top level and not inside of nested calls. diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 83d4d9b50a7abe..40ef6e7bbe5fcb 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -32,11 +32,13 @@ Their privileges include but are not limited to: Modifications of the contents of the nodejs/node repository are made on a collaborative basis. Anybody with a GitHub account may propose a modification via pull request and it will be considered by the project -Collaborators. All pull requests must be reviewed and accepted by a -Collaborator with sufficient expertise who is able to take full -responsibility for the change. In the case of pull requests proposed -by an existing Collaborator, an additional Collaborator is required -for sign-off. +Collaborators. + +At least two Collaborators must approve a pull request before the pull request +lands. (One Collaborator approval is enough if the pull request has been open +for more than 7 days.) Approving a pull request indicates that the Collaborator +accepts responsibility for the change. Approval must be from Collaborators who +are not authors of the change. If one or more Collaborators oppose a proposed change, then the change cannot be accepted unless: diff --git a/Makefile b/Makefile index 5fc2bb0c58f553..05d3056f27973e 100644 --- a/Makefile +++ b/Makefile @@ -74,9 +74,9 @@ available-node = \ # BUILDTYPE=Debug builds both release and debug builds. If you want to compile # just the debug build, run `make -C out BUILDTYPE=Debug` instead. ifeq ($(BUILDTYPE),Release) -all: out/Makefile $(NODE_EXE) ## Default target, builds node in out/Release/node. +all: $(NODE_EXE) ## Default target, builds node in out/Release/node. else -all: out/Makefile $(NODE_EXE) $(NODE_G_EXE) +all: $(NODE_EXE) $(NODE_G_EXE) endif .PHONY: help @@ -278,8 +278,6 @@ jstest: build-addons build-addons-napi ## Runs addon tests and JS tests .PHONY: test # This does not run tests of third-party libraries inside deps. test: all ## Runs default tests, linters, and builds docs. - @echo "Build the addons before running the tests so the test results" - @echo "can be displayed together" $(MAKE) -s test-doc $(MAKE) -s build-addons $(MAKE) -s build-addons-napi @@ -288,8 +286,6 @@ test: all ## Runs default tests, linters, and builds docs. .PHONY: test-only test-only: all ## For a quick test, does not run linter or build docs. - @echo "Build the addons before running the tests so the test results" - @echo "can be displayed together" $(MAKE) build-addons $(MAKE) build-addons-napi $(MAKE) cctest @@ -297,8 +293,6 @@ test-only: all ## For a quick test, does not run linter or build docs. # Used by `make coverage-test` test-cov: all - @echo "Build the addons before running the tests so the test results" - @echo "can be displayed together" $(MAKE) build-addons $(MAKE) build-addons-napi # $(MAKE) cctest @@ -476,7 +470,7 @@ test-ci: | clear-stalled build-addons build-addons-napi doc-only # Prepare the build for running the tests. # Related CI jobs: most CI tests, excluding node-test-commit-arm-fanned build-ci: - $(PYTHON) ./configure $(CONFIG_FLAGS) + $(PYTHON) ./configure --verbose $(CONFIG_FLAGS) $(MAKE) .PHONY: run-ci @@ -603,11 +597,6 @@ test-v8 test-v8-intl test-v8-benchmarks test-v8-all: "$ git clone https://github.com/nodejs/node.git" endif -# Google Analytics ID used for tracking API docs page views, empty -# DOCS_ANALYTICS means no tracking scripts will be included in the -# generated .html files -DOCS_ANALYTICS ?= - apidoc_dirs = out/doc out/doc/api out/doc/api/assets apidoc_sources = $(wildcard doc/api/*.md) apidocs_html = $(addprefix out/,$(apidoc_sources:.md=.html)) @@ -652,8 +641,7 @@ out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets run-npm-ci = $(PWD)/$(NPM) ci gen-api = tools/doc/generate.js --node-version=$(FULLVERSION) \ - --apilinks=out/apilinks.json \ - --analytics=$(DOCS_ANALYTICS) $< --output-directory=out/doc/api + --apilinks=out/apilinks.json $< --output-directory=out/doc/api gen-apilink = tools/doc/apilinks.js $(wildcard lib/*.js) > $@ out/apilinks.json: $(wildcard lib/*.js) tools/doc/apilinks.js @@ -1081,8 +1069,8 @@ run-lint-doc-md = tools/lint-md.js -q -f $(LINT_MD_DOC_FILES) # Lint all changed markdown files under doc/ tools/.docmdlintstamp: $(LINT_MD_DOC_FILES) @echo "Running Markdown linter on docs..." - $(call available-node,$(run-lint-doc-md)) - touch $@ + @$(call available-node,$(run-lint-doc-md)) + @touch $@ LINT_MD_TARGETS = src lib benchmark test tools/doc tools/icu LINT_MD_ROOT_DOCS := $(wildcard *.md) @@ -1093,8 +1081,8 @@ run-lint-misc-md = tools/lint-md.js -q -f $(LINT_MD_MISC_FILES) # Lint other changed markdown files maintained by us tools/.miscmdlintstamp: $(LINT_MD_MISC_FILES) @echo "Running Markdown linter on misc docs..." - $(call available-node,$(run-lint-misc-md)) - touch $@ + @$(call available-node,$(run-lint-misc-md)) + @touch $@ tools/.mdlintstamp: tools/.miscmdlintstamp tools/.docmdlintstamp @@ -1193,19 +1181,25 @@ else @echo "To install (requires internet access) run: $ make format-cpp-build" endif +ifeq ($(V),1) + CPPLINT_QUIET = +else + CPPLINT_QUIET = --quiet +endif .PHONY: lint-cpp # Lints the C++ code with cpplint.py and check-imports.py. lint-cpp: tools/.cpplintstamp tools/.cpplintstamp: $(LINT_CPP_FILES) @echo "Running C++ linter..." - @$(PYTHON) tools/cpplint.py $? + @$(PYTHON) tools/cpplint.py $(CPPLINT_QUIET) $? @$(PYTHON) tools/check-imports.py @touch $@ lint-addon-docs: test/addons/.docbuildstamp @echo "Running C++ linter on addon docs..." - @$(PYTHON) tools/cpplint.py --filter=$(ADDON_DOC_LINT_FLAGS) $(LINT_CPP_ADDON_DOC_FILES_GLOB) + @$(PYTHON) tools/cpplint.py $(CPPLINT_QUIET) --filter=$(ADDON_DOC_LINT_FLAGS) \ + $(LINT_CPP_ADDON_DOC_FILES_GLOB) cpplint: lint-cpp @echo "Please use lint-cpp instead of cpplint" diff --git a/README.md b/README.md index 15cbb2133351f3..47e178845d1dbf 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,10 @@

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. For -more information on using Node.js, see the -[Node.js Website][]. +more information on using Node.js, see the [Node.js Website][]. -The Node.js project is supported by the -[Node.js Foundation](https://nodejs.org/en/foundation/). Contributions, -policies, and releases are managed under an -[open governance model](./GOVERNANCE.md). +The Node.js project uses an [open governance model](./GOVERNANCE.md). The +[Node.js Foundation][] provides support for the project. **This project is bound by a [Code of Conduct][].** @@ -49,8 +46,8 @@ When looking for support, please first search for your question in these venues: * [Node.js Help][] * [Open or closed issues in the Node.js GitHub organization](https://github.com/issues?utf8=%E2%9C%93&q=sort%3Aupdated-desc+org%3Anodejs+is%3Aissue) -If you didn't find an answer in one of the official resources above, you can -search these unofficial resources: +If you didn't find an answer in the resources above, try these unofficial +resources: * [Questions tagged 'node.js' on StackOverflow][] * [#node.js channel on chat.freenode.net][]. See for more @@ -59,72 +56,69 @@ search these unofficial resources: * [Node.js Slack Community](https://node-js.slack.com/): Visit [nodeslackers.com](http://www.nodeslackers.com/) to register. -GitHub issues are meant for tracking enhancements and bugs, not general support. +GitHub issues are for tracking enhancements and bugs, not general support. -Remember, libre != gratis; the open source license grants you the freedom to use -and modify, but not commitments of other people's time. Please be respectful, -and set your expectations accordingly. +The open source license grants you the freedom to use Node.js. It does not +guarantee commitments of other people's time. Please be respectful and manage +your expectations. -## Release Types +## Release Types -The Node.js project maintains multiple types of releases: - -* **Current**: Released from active development branches of this repository, - versioned by [SemVer](https://semver.org) and signed by a member of the - [Release Team](#release-team). - Code for Current releases is organized in this repository by major version - number. For example: [v4.x](https://github.com/nodejs/node/tree/v4.x). - The major version number of Current releases will increment every 6 months - allowing for breaking changes to be introduced. This happens in April and - October every year. Current release lines beginning in October each year have - a maximum support life of 8 months. Current release lines beginning in April - each year will convert to LTS (see below) after 6 months and receive further - support for 30 months. +* **Current**: Under active development. Code for the Current release is in the + branch for its major version number (for example, + [v10.x](https://github.com/nodejs/node/tree/v10.x)). Node.js releases a new + major version every 6 months, allowing for breaking changes. This happens in + April and October every year. Releases appearing each October have a support + life of 8 months. Releases appearing each April convert to LTS (see below) + each October. * **LTS**: Releases that receive Long-term Support, with a focus on stability - and security. Every second Current release line (major version) will become an - LTS line and receive 18 months of _Active LTS_ support and a further 12 - months of _Maintenance_. LTS release lines are given alphabetically - ordered codenames, beginning with v4 Argon. LTS releases are less frequent - and will attempt to maintain consistent major and minor version numbers, - only incrementing patch version numbers. There are no breaking changes or - feature additions, except in some special circumstances. -* **Nightly**: Versions of code in this repository on the current Current - branch, automatically built every 24-hours where changes exist. Use with - caution. - -More information can be found in the [LTS README](https://github.com/nodejs/LTS/). + and security. Every even-numbered major version will become an LTS release. + LTS releases receive 18 months of _Active LTS_ support and a further 12 months + of _Maintenance_. LTS release lines have alphabetically-ordered codenames, + beginning with v4 Argon. There are no breaking changes or feature additions, + except in some special circumstances. +* **Nightly**: Code from the Current branch built every 24-hours when there are + changes. Use with caution. + +Current and LTS releases follow [Semantic Versioning](https://semver.org). A +member of the [Release Team](#release-team) signs each Current and LTS release. +For more information, see the +[Release README](https://github.com/nodejs/Release). ### Download Binaries, installers, and source tarballs are available at -. +. #### Current and LTS Releases -**Current** and **LTS** releases are available at -, listed under their version strings. + + The [latest](https://nodejs.org/download/release/latest/) directory is an -alias for the latest Current release. The latest LTS release from an LTS -line is available in the form: latest-_codename_. For example: -. +alias for the latest Current release. The latest-_codename_ directory is an +alias for the latest release from an LTS line. For example, the +[latest-carbon](https://nodejs.org/download/release/latest-carbon/) directory +contains the latest Carbon (Node.js 8) release. #### Nightly Releases -**Nightly** builds are available at -, listed under their version -string which includes their date (in UTC time) and the commit SHA at -the HEAD of the release. + + +Each directory name and filename contains a date (in UTC time) and the commit +SHA at the HEAD of the release. #### API Documentation -**API documentation** is available in each release and nightly -directory under _docs_. points to the API -documentation of the latest stable version. + +Documentation for the latest Current release is at . +Version-specific documentation is available in each release directory in the +_docs_ subdirectory. Version-specific documentation is also at +. + ### Verifying Binaries -Current, LTS, and Nightly download directories all contain a SHASUMS256.txt -file that lists the SHA checksums for each file available for -download. +Download directories contain a `SHASUMS256.txt` file with SHA checksums for the +files. -The SHASUMS256.txt can be downloaded using `curl`. +To download `SHASUMS256.txt` using `curl`: ```console $ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt @@ -137,14 +131,11 @@ it through `sha256sum` with a command such as: $ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c - ``` -Current and LTS releases (but not Nightlies) also have the GPG detached -signature of SHASUMS256.txt available as SHASUMS256.txt.sig. You can use `gpg` -to verify that SHASUMS256.txt has not been tampered with. - -To verify SHASUMS256.txt has not been altered, you will first need to import -all of the GPG keys of individuals authorized to create releases. They are -listed at the bottom of this README under [Release Team](#release-team). -Use a command such as this to import the keys: +For Current and LTS, the GPG detached signature of `SHASUMS256.txt` is in +`SHASUMS256.txt.sig`. You can use it with `gpg` to verify the integrity of +`SHASUM256.txt`. You will first need to import all the GPG keys of individuals +authorized to create releases. They are at the bottom of this README under +[Release Team](#release-team). To import the keys: ```console $ gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D @@ -152,24 +143,19 @@ $ gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C2 See the bottom of this README for a full script to import active release keys. -Next, download the SHASUMS256.txt.sig for the release: +Next, download the `SHASUMS256.txt.sig` for the release: ```console $ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt.sig ``` -After downloading the appropriate SHASUMS256.txt and SHASUMS256.txt.sig files, -you can then use `gpg --verify SHASUMS256.txt.sig SHASUMS256.txt` to verify -that the file has been signed by an authorized member of the Node.js team. - -Once verified, use the SHASUMS256.txt file to get the checksum for -the binary verification command above. +Then use `gpg --verify SHASUMS256.txt.sig SHASUMS256.txt` to verify +the file's signature. ## Building Node.js -See [BUILDING.md](BUILDING.md) for instructions on how to build -Node.js from source. The document also contains a list of -officially supported platforms. +See [BUILDING.md](BUILDING.md) for instructions on how to build Node.js from +source and a list of supported platforms. ## Security @@ -251,8 +237,6 @@ For more information about the governance of the Node.js project, see **Jeremiah Senkpiel** <fishrock123@rocketmail.com> * [gabrielschulhof](https://github.com/gabrielschulhof) - **Gabriel Schulhof** <gabriel.schulhof@intel.com> -* [gibfahn](https://github.com/gibfahn) - -**Gibson Fahnestock** <gibfahn@gmail.com> (he/him) * [jasnell](https://github.com/jasnell) - **James M Snell** <jasnell@gmail.com> (he/him) * [joyeecheung](https://github.com/joyeecheung) - @@ -284,6 +268,8 @@ For more information about the governance of the Node.js project, see **Chris Dickinson** <christopher.s.dickinson@gmail.com> * [evanlucas](https://github.com/evanlucas) - **Evan Lucas** <evanlucas@me.com> (he/him) +* [gibfahn](https://github.com/gibfahn) - +**Gibson Fahnestock** <gibfahn@gmail.com> (he/him) * [indutny](https://github.com/indutny) - **Fedor Indutny** <fedor.indutny@gmail.com> * [isaacs](https://github.com/isaacs) - @@ -361,6 +347,8 @@ For more information about the governance of the Node.js project, see **Jamie Davis** <davisjam@vt.edu> (he/him) * [devsnek](https://github.com/devsnek) - **Gus Caplan** <me@gus.host> (he/him) +* [digitalinfinity](https://github.com/digitalinfinity) - +**Hitesh Kanwathirtha** <digitalinfinity@gmail.com> (he/him) * [edsadr](https://github.com/edsadr) - **Adrian Estrada** <edsadr@gmail.com> (he/him) * [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - @@ -618,8 +606,8 @@ gpg --keyserver pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73B gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D ``` -See the section above on [Verifying Binaries](#verifying-binaries) for details -on what to do with these keys to verify that a downloaded file is official. +See the section above on [Verifying Binaries](#verifying-binaries) for how to +use these keys to verify a downloaded file. Previous releases may also have been signed with one of the following GPG keys: @@ -643,6 +631,7 @@ Previous releases may also have been signed with one of the following GPG keys: [Code of Conduct]: https://github.com/nodejs/admin/blob/master/CODE_OF_CONDUCT.md [Contributing to the project]: CONTRIBUTING.md [Node.js Help]: https://github.com/nodejs/help +[Node.js Foundation]: https://nodejs.org/en/foundation/ [Node.js Website]: https://nodejs.org/en/ [Questions tagged 'node.js' on StackOverflow]: https://stackoverflow.com/questions/tagged/node.js [Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md diff --git a/benchmark/crypto/get-ciphers.js b/benchmark/crypto/get-ciphers.js index d4c10a2427d360..5bbe0915311484 100644 --- a/benchmark/crypto/get-ciphers.js +++ b/benchmark/crypto/get-ciphers.js @@ -10,7 +10,7 @@ const bench = common.createBenchmark(main, { function main({ n, v }) { const method = require(v).getCiphers; var i = 0; - // First call to getChipers will dominate the results + // First call to getCiphers will dominate the results if (n > 1) { for (; i < n; i++) method(); diff --git a/benchmark/fs/bench-mkdirp.js b/benchmark/fs/bench-mkdirp.js new file mode 100644 index 00000000000000..96a792c35a48e4 --- /dev/null +++ b/benchmark/fs/bench-mkdirp.js @@ -0,0 +1,23 @@ +'use strict'; + +const common = require('../common'); +const fs = require('fs'); +const tmpdir = require('../../test/common/tmpdir'); +tmpdir.refresh(); +let dirc = 0; + +const bench = common.createBenchmark(main, { + n: [1e4], +}); + +function main({ n }) { + bench.start(); + (function r(cntr) { + if (cntr-- <= 0) + return bench.end(n); + const pathname = `${tmpdir.path}/${++dirc}/${++dirc}/${++dirc}/${++dirc}`; + fs.mkdir(pathname, { createParents: true }, (err) => { + r(cntr); + }); + }(n)); +} diff --git a/benchmark/napi/function_args/index.js b/benchmark/napi/function_args/index.js index c8f281a3429fde..4beab531c17301 100644 --- a/benchmark/napi/function_args/index.js +++ b/benchmark/napi/function_args/index.js @@ -12,16 +12,14 @@ let napi; try { v8 = require('./build/Release/binding'); } catch (err) { - // eslint-disable-next-line no-path-concat - console.error(__filename + ': V8 Binding failed to load'); + console.error(`${__filename}: V8 Binding failed to load`); process.exit(0); } try { napi = require('./build/Release/napi_binding'); } catch (err) { - // eslint-disable-next-line no-path-concat - console.error(__filename + ': NAPI-Binding failed to load'); + console.error(`${__filename}: NAPI-Binding failed to load`); process.exit(0); } diff --git a/benchmark/util/format.js b/benchmark/util/format.js index 042b8a93ccfcf2..2a4a20097c72d3 100644 --- a/benchmark/util/format.js +++ b/benchmark/util/format.js @@ -16,7 +16,7 @@ const inputs = { }; const bench = common.createBenchmark(main, { - n: [4e6], + n: [1e5], type: Object.keys(inputs) }); diff --git a/benchmark/util/inspect-array.js b/benchmark/util/inspect-array.js index 8b3c54aeb942fe..4fd73785f789d1 100644 --- a/benchmark/util/inspect-array.js +++ b/benchmark/util/inspect-array.js @@ -4,8 +4,8 @@ const common = require('../common'); const util = require('util'); const bench = common.createBenchmark(main, { - n: [1e3], - len: [1e5], + n: [5e2], + len: [1e2, 1e5], type: [ 'denseArray', 'sparseArray', diff --git a/benchmark/util/inspect-proxy.js b/benchmark/util/inspect-proxy.js index 5427df9952c250..3c82d50ac3c0ce 100644 --- a/benchmark/util/inspect-proxy.js +++ b/benchmark/util/inspect-proxy.js @@ -3,7 +3,7 @@ const util = require('util'); const common = require('../common.js'); -const bench = common.createBenchmark(main, { n: [1e6] }); +const bench = common.createBenchmark(main, { n: [2e4] }); function main({ n }) { const proxyA = new Proxy({}, { get: () => {} }); diff --git a/benchmark/util/inspect.js b/benchmark/util/inspect.js index 35253ac96682eb..9ba3020fd0e55b 100644 --- a/benchmark/util/inspect.js +++ b/benchmark/util/inspect.js @@ -9,7 +9,7 @@ const opts = { none: undefined }; const bench = common.createBenchmark(main, { - n: [2e6], + n: [2e4], method: [ 'Object', 'Object_empty', @@ -81,7 +81,7 @@ function main({ method, n, option }) { benchmark(n, new Error('error'), options); break; case 'Array': - benchmark(n, Array(20).fill().map((_, i) => i), options); + benchmark(n, Array(50).fill().map((_, i) => i), options); break; case 'TypedArray': obj = new Uint8Array(Array(50).fill().map((_, i) => i)); diff --git a/benchmark/util/normalize-encoding.js b/benchmark/util/normalize-encoding.js index 73cbadff72b8ca..47c8bce277cf3d 100644 --- a/benchmark/util/normalize-encoding.js +++ b/benchmark/util/normalize-encoding.js @@ -5,26 +5,23 @@ const assert = require('assert'); const groupedInputs = { group_common: ['undefined', 'utf8', 'utf-8', 'base64', - 'binary', 'latin1', 'ucs-2'], - group_upper: ['UTF-8', 'UTF8', 'UCS2', 'UTF-16LE', - 'UTF16LE', 'BASE64', 'UCS-2'], - group_uncommon: ['foo', '1', 'false', 'undefined', '[]', '{}'], + 'binary', 'latin1', 'ucs2'], + group_upper: ['UTF-8', 'UTF8', 'UCS2', + 'UTF16LE', 'BASE64', 'UCS2'], + group_uncommon: ['foo'], group_misc: ['', 'utf16le', 'hex', 'HEX', 'BINARY'] }; const inputs = [ - '', - 'utf8', 'utf-8', 'UTF-8', - 'UTF8', 'Utf8', 'uTf-8', 'utF-8', - 'ucs2', 'UCS2', 'UcS2', - 'ucs-2', 'UCS-2', 'UcS-2', - 'utf16le', 'utf-16le', 'UTF-16LE', 'UTF16LE', + '', 'utf8', 'utf-8', 'UTF-8', 'UTF8', 'Utf8', + 'ucs2', 'UCS2', 'utf16le', 'UTF16LE', 'binary', 'BINARY', 'latin1', 'base64', 'BASE64', - 'hex', 'HEX', 'foo', '1', 'false', 'undefined', '[]', '{}']; + 'hex', 'HEX', 'foo', 'undefined' +]; const bench = common.createBenchmark(main, { input: inputs.concat(Object.keys(groupedInputs)), - n: [1e7] + n: [1e5] }, { flags: '--expose-internals' }); @@ -39,16 +36,8 @@ function getInput(input) { return groupedInputs.group_uncommon; case 'group_misc': return groupedInputs.group_misc; - case '1': - return [1]; - case 'false': - return [false]; case 'undefined': return [undefined]; - case '[]': - return [[]]; - case '{}': - return [{}]; default: return [input]; } diff --git a/benchmark/util/splice-one.js b/benchmark/util/splice-one.js index 5c2a39f6d72a11..4ca7c8564d3fc4 100644 --- a/benchmark/util/splice-one.js +++ b/benchmark/util/splice-one.js @@ -3,7 +3,7 @@ const common = require('../common'); const bench = common.createBenchmark(main, { - n: [1e7], + n: [1e5], pos: ['start', 'middle', 'end'], size: [10, 100, 500], }, { flags: ['--expose-internals'] }); diff --git a/benchmark/util/type-check.js b/benchmark/util/type-check.js index e1d1ac553fedcf..dc07f4f9d952bd 100644 --- a/benchmark/util/type-check.js +++ b/benchmark/util/type-check.js @@ -29,7 +29,7 @@ const bench = common.createBenchmark(main, { type: Object.keys(args), version: ['native', 'js'], argument: ['true', 'false-primitive', 'false-object'], - n: [5e6] + n: [1e5] }, { flags: ['--expose-internals'] }); diff --git a/common.gypi b/common.gypi index e9e05049dbb265..c235f07712c74f 100644 --- a/common.gypi +++ b/common.gypi @@ -9,6 +9,8 @@ 'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds 'component%': 'static_library', # NB. these names match with what V8 expects 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way + 'enable_pgo_generate%': '0', + 'enable_pgo_use%': '0', 'python%': 'python', 'node_shared%': 'false', @@ -22,6 +24,8 @@ 'node_tag%': '', 'uv_library%': 'static_library', + 'clang%': 0, + 'openssl_fips%': '', # Default to -O0 for debug builds. @@ -29,7 +33,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.28', + 'v8_embedder_string': '-node.35', # Enable disassembler for `--print-code` v8 options 'v8_enable_disassembler': 1, @@ -91,8 +95,6 @@ }], ['OS=="mac"', { 'clang%': 1, - }, { - 'clang%': 0, }], ], }, @@ -179,9 +181,19 @@ }], ['OS=="linux"', { 'variables': { + 'pgo_generate': ' -fprofile-generate ', + 'pgo_use': ' -fprofile-use -fprofile-correction ', 'lto': ' -flto=4 -fuse-linker-plugin -ffat-lto-objects ', }, 'conditions': [ + ['enable_pgo_generate=="true"', { + 'cflags': ['<(pgo_generate)'], + 'ldflags': ['<(pgo_generate)'], + },], + ['enable_pgo_use=="true"', { + 'cflags': ['<(pgo_use)'], + 'ldflags': ['<(pgo_use)'], + },], ['enable_lto=="true"', { 'cflags': ['<(lto)'], 'ldflags': ['<(lto)'], diff --git a/configure.py b/configure.py index 11f7bad38a3d7f..b98e37d944d7f0 100755 --- a/configure.py +++ b/configure.py @@ -132,11 +132,23 @@ "JavaScript code executed in nodejs. This feature is only available " "for x32, x86, and x64 architectures.") +parser.add_option("--enable-pgo-generate", + action="store_true", + dest="enable_pgo_generate", + help="Enable profiling with pgo of a binary. This feature is only available " + "on linux with gcc and g++ 5.4.1 or newer.") + +parser.add_option("--enable-pgo-use", + action="store_true", + dest="enable_pgo_use", + help="Enable use of the profile generated with --enable-pgo-generate. This " + "feature is only available on linux with gcc and g++ 5.4.1 or newer.") + parser.add_option("--enable-lto", action="store_true", dest="enable_lto", help="Enable compiling with lto of a binary. This feature is only available " - "on linux with gcc and g++.") + "on linux with gcc and g++ 5.4.1 or newer.") parser.add_option("--link-module", action="append", @@ -550,7 +562,7 @@ parser.add_option('--verbose', action='store_true', dest='verbose', - default=False, + default=True, help='get more output from this script') # Create compile_commands.json in out/Debug and out/Release. @@ -887,6 +899,16 @@ def configure_mips(o): o['variables']['mips_fpu_mode'] = options.mips_fpu_mode +def gcc_version_ge(version_checked): + for compiler in [(CC, 'c'), (CXX, 'c++')]: + ok, is_clang, clang_version, compiler_version = \ + try_check_compiler(compiler[0], compiler[1]) + compiler_version_num = tuple(map(int, compiler_version)) + if is_clang or compiler_version_num < version_checked: + return False + return True + + def configure_node(o): if options.dest_os == 'android': o['variables']['OS'] = 'android' @@ -931,6 +953,29 @@ def configure_node(o): else: o['variables']['node_enable_v8_vtunejit'] = 'false' + if flavor != 'linux' and (options.enable_pgo_generate or options.enable_pgo_use): + raise Exception( + 'The pgo option is supported only on linux.') + + if flavor == 'linux': + if options.enable_pgo_generate or options.enable_pgo_use: + version_checked = (5, 4, 1) + if not gcc_version_ge(version_checked): + version_checked_str = ".".join(map(str, version_checked)) + raise Exception( + 'The options --enable-pgo-generate and --enable-pgo-use ' + 'are supported for gcc and gxx %s or newer only.' % (version_checked_str)) + + if options.enable_pgo_generate and options.enable_pgo_use: + raise Exception( + 'Only one of the --enable-pgo-generate or --enable-pgo-use options ' + 'can be specified at a time. You would like to use ' + '--enable-pgo-generate first, profile node, and then recompile ' + 'with --enable-pgo-use') + + o['variables']['enable_pgo_generate'] = b(options.enable_pgo_generate) + o['variables']['enable_pgo_use'] = b(options.enable_pgo_use) + if flavor != 'linux' and (options.enable_lto): raise Exception( 'The lto option is supported only on linux.') @@ -938,15 +983,11 @@ def configure_node(o): if flavor == 'linux': if options.enable_lto: version_checked = (5, 4, 1) - for compiler in [(CC, 'c'), (CXX, 'c++')]: - ok, is_clang, clang_version, compiler_version = \ - try_check_compiler(compiler[0], compiler[1]) - compiler_version_num = tuple(map(int, compiler_version)) - if is_clang or compiler_version_num < version_checked: - version_checked_str = ".".join(map(str, version_checked)) - raise Exception( - 'The option --enable-lto is supported for gcc and gxx %s' - ' or newer only.' % (version_checked_str)) + if not gcc_version_ge(version_checked): + version_checked_str = ".".join(map(str, version_checked)) + raise Exception( + 'The option --enable-lto is supported for gcc and gxx %s' + ' or newer only.' % (version_checked_str)) o['variables']['enable_lto'] = b(options.enable_lto) @@ -1185,7 +1226,6 @@ def configure_static(o): def write(filename, data): - filename = filename print_verbose('creating %s' % filename) with open(filename, 'w+') as f: f.write(data) diff --git a/deps/nghttp2/lib/includes/nghttp2/nghttp2.h b/deps/nghttp2/lib/includes/nghttp2/nghttp2.h index 8c54b9c8cc464d..e7198b3d27314d 100644 --- a/deps/nghttp2/lib/includes/nghttp2/nghttp2.h +++ b/deps/nghttp2/lib/includes/nghttp2/nghttp2.h @@ -680,7 +680,12 @@ typedef enum { /** * SETTINGS_MAX_HEADER_LIST_SIZE */ - NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE = 0x06 + NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE = 0x06, + /** + * SETTINGS_ENABLE_CONNECT_PROTOCOL + * (`RFC 8441 `_) + */ + NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL = 0x08 } nghttp2_settings_id; /* Note: If we add SETTINGS, update the capacity of NGHTTP2_INBOUND_NUM_IV as well */ diff --git a/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h b/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h index 1f1d4808ca27c0..420adbd53dddce 100644 --- a/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h +++ b/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h @@ -29,7 +29,7 @@ * @macro * Version number of the nghttp2 library release */ -#define NGHTTP2_VERSION "1.33.0" +#define NGHTTP2_VERSION "1.34.0" /** * @macro @@ -37,6 +37,6 @@ * release. This is a 24 bit number with 8 bits for major number, 8 bits * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. */ -#define NGHTTP2_VERSION_NUM 0x012100 +#define NGHTTP2_VERSION_NUM 0x012200 #endif /* NGHTTP2VER_H */ diff --git a/deps/nghttp2/lib/nghttp2_frame.c b/deps/nghttp2/lib/nghttp2_frame.c index 6e33f3c247f5cb..4821de40885736 100644 --- a/deps/nghttp2/lib/nghttp2_frame.c +++ b/deps/nghttp2/lib/nghttp2_frame.c @@ -1050,6 +1050,11 @@ int nghttp2_iv_check(const nghttp2_settings_entry *iv, size_t niv) { break; case NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: break; + case NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: + if (iv[i].value != 0 && iv[i].value != 1) { + return 0; + } + break; } } return 1; diff --git a/deps/nghttp2/lib/nghttp2_hd.c b/deps/nghttp2/lib/nghttp2_hd.c index 1eb3be33802c44..a61f0d47a6f79d 100644 --- a/deps/nghttp2/lib/nghttp2_hd.c +++ b/deps/nghttp2/lib/nghttp2_hd.c @@ -45,7 +45,7 @@ /* 3rd parameter is nghttp2_token value for header field name. We use first enum value if same header names are repeated (e.g., :status). */ -static nghttp2_hd_static_entry static_table[] = { +static const nghttp2_hd_static_entry static_table[] = { MAKE_STATIC_ENT(":authority", "", 0, 3153725150u), MAKE_STATIC_ENT(":method", "GET", 1, 695666056u), MAKE_STATIC_ENT(":method", "POST", 1, 695666056u), @@ -271,6 +271,15 @@ static int32_t lookup_token(const uint8_t *name, size_t namelen) { break; } break; + case 9: + switch (name[8]) { + case 'l': + if (memeq(":protoco", name, 8)) { + return NGHTTP2_TOKEN__PROTOCOL; + } + break; + } + break; case 10: switch (name[9]) { case 'e': @@ -1159,7 +1168,7 @@ static search_result search_static_table(const nghttp2_nv *nv, int32_t token, int name_only) { search_result res = {token, 0}; int i; - nghttp2_hd_static_entry *ent; + const nghttp2_hd_static_entry *ent; if (name_only) { return res; @@ -1184,7 +1193,7 @@ static search_result search_hd_table(nghttp2_hd_context *context, int indexing_mode, nghttp2_hd_map *map, uint32_t hash) { search_result res = {-1, 0}; - nghttp2_hd_entry *ent; + const nghttp2_hd_entry *ent; int exact_match; int name_only = indexing_mode == NGHTTP2_HD_NEVER_INDEXING; @@ -1289,8 +1298,9 @@ nghttp2_hd_nv nghttp2_hd_table_get(nghttp2_hd_context *context, size_t idx) { return hd_ringbuf_get(&context->hd_table, idx - NGHTTP2_STATIC_TABLE_LENGTH) ->nv; } else { - nghttp2_hd_static_entry *ent = &static_table[idx]; - nghttp2_hd_nv nv = {&ent->name, &ent->value, ent->token, + const nghttp2_hd_static_entry *ent = &static_table[idx]; + nghttp2_hd_nv nv = {(nghttp2_rcbuf *)&ent->name, + (nghttp2_rcbuf *)&ent->value, ent->token, NGHTTP2_NV_FLAG_NONE}; return nv; } diff --git a/deps/nghttp2/lib/nghttp2_hd.h b/deps/nghttp2/lib/nghttp2_hd.h index c64a1f2b9b406c..14ae98078957af 100644 --- a/deps/nghttp2/lib/nghttp2_hd.h +++ b/deps/nghttp2/lib/nghttp2_hd.h @@ -111,6 +111,7 @@ typedef enum { NGHTTP2_TOKEN_KEEP_ALIVE, NGHTTP2_TOKEN_PROXY_CONNECTION, NGHTTP2_TOKEN_UPGRADE, + NGHTTP2_TOKEN__PROTOCOL, } nghttp2_token; struct nghttp2_hd_entry; diff --git a/deps/nghttp2/lib/nghttp2_helper.c b/deps/nghttp2/lib/nghttp2_helper.c index 3b282c7301f95b..81a8a0cf99971a 100644 --- a/deps/nghttp2/lib/nghttp2_helper.c +++ b/deps/nghttp2/lib/nghttp2_helper.c @@ -340,7 +340,7 @@ const char *nghttp2_strerror(int error_code) { } /* Generated by gennmchartbl.py */ -static int VALID_HD_NAME_CHARS[] = { +static const int VALID_HD_NAME_CHARS[] = { 0 /* NUL */, 0 /* SOH */, 0 /* STX */, 0 /* ETX */, 0 /* EOT */, 0 /* ENQ */, 0 /* ACK */, 0 /* BEL */, 0 /* BS */, 0 /* HT */, 0 /* LF */, 0 /* VT */, @@ -428,7 +428,7 @@ int nghttp2_check_header_name(const uint8_t *name, size_t len) { } /* Generated by genvchartbl.py */ -static int VALID_HD_VALUE_CHARS[] = { +static const int VALID_HD_VALUE_CHARS[] = { 0 /* NUL */, 0 /* SOH */, 0 /* STX */, 0 /* ETX */, 0 /* EOT */, 0 /* ENQ */, 0 /* ACK */, 0 /* BEL */, 0 /* BS */, 1 /* HT */, 0 /* LF */, 0 /* VT */, diff --git a/deps/nghttp2/lib/nghttp2_http.c b/deps/nghttp2/lib/nghttp2_http.c index b08f8863f7ce16..6e8acfdcc141af 100644 --- a/deps/nghttp2/lib/nghttp2_http.c +++ b/deps/nghttp2/lib/nghttp2_http.c @@ -113,7 +113,7 @@ static int check_path(nghttp2_stream *stream) { } static int http_request_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv, - int trailer) { + int trailer, int connect_protocol) { if (nv->name->base[0] == ':') { if (trailer || (stream->http_flags & NGHTTP2_HTTP_FLAG_PSEUDO_HEADER_DISALLOWED)) { @@ -146,10 +146,6 @@ static int http_request_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv, return NGHTTP2_ERR_HTTP_HEADER; } stream->http_flags |= NGHTTP2_HTTP_FLAG_METH_CONNECT; - if (stream->http_flags & - (NGHTTP2_HTTP_FLAG__PATH | NGHTTP2_HTTP_FLAG__SCHEME)) { - return NGHTTP2_ERR_HTTP_HEADER; - } } break; case 'S': @@ -162,9 +158,6 @@ static int http_request_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv, } break; case NGHTTP2_TOKEN__PATH: - if (stream->http_flags & NGHTTP2_HTTP_FLAG_METH_CONNECT) { - return NGHTTP2_ERR_HTTP_HEADER; - } if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG__PATH)) { return NGHTTP2_ERR_HTTP_HEADER; } @@ -175,9 +168,6 @@ static int http_request_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv, } break; case NGHTTP2_TOKEN__SCHEME: - if (stream->http_flags & NGHTTP2_HTTP_FLAG_METH_CONNECT) { - return NGHTTP2_ERR_HTTP_HEADER; - } if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG__SCHEME)) { return NGHTTP2_ERR_HTTP_HEADER; } @@ -186,6 +176,15 @@ static int http_request_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv, stream->http_flags |= NGHTTP2_HTTP_FLAG_SCHEME_HTTP; } break; + case NGHTTP2_TOKEN__PROTOCOL: + if (!connect_protocol) { + return NGHTTP2_ERR_HTTP_HEADER; + } + + if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG__PROTOCOL)) { + return NGHTTP2_ERR_HTTP_HEADER; + } + break; case NGHTTP2_TOKEN_HOST: if (!check_pseudo_header(stream, nv, NGHTTP2_HTTP_FLAG_HOST)) { return NGHTTP2_ERR_HTTP_HEADER; @@ -265,7 +264,7 @@ static int http_response_on_header(nghttp2_stream *stream, nghttp2_hd_nv *nv, return NGHTTP2_ERR_REMOVE_HTTP_HEADER; } if (stream->status_code / 100 == 1 || - (stream->status_code == 200 && + (stream->status_code / 100 == 2 && (stream->http_flags & NGHTTP2_HTTP_FLAG_METH_CONNECT))) { return NGHTTP2_ERR_HTTP_HEADER; } @@ -458,7 +457,9 @@ int nghttp2_http_on_header(nghttp2_session *session, nghttp2_stream *stream, } if (session->server || frame->hd.type == NGHTTP2_PUSH_PROMISE) { - return http_request_on_header(stream, nv, trailer); + return http_request_on_header(stream, nv, trailer, + session->server && + session->pending_enable_connect_protocol); } return http_response_on_header(stream, nv, trailer); @@ -466,8 +467,11 @@ int nghttp2_http_on_header(nghttp2_session *session, nghttp2_stream *stream, int nghttp2_http_on_request_headers(nghttp2_stream *stream, nghttp2_frame *frame) { - if (stream->http_flags & NGHTTP2_HTTP_FLAG_METH_CONNECT) { - if ((stream->http_flags & NGHTTP2_HTTP_FLAG__AUTHORITY) == 0) { + if (!(stream->http_flags & NGHTTP2_HTTP_FLAG__PROTOCOL) && + (stream->http_flags & NGHTTP2_HTTP_FLAG_METH_CONNECT)) { + if ((stream->http_flags & + (NGHTTP2_HTTP_FLAG__SCHEME | NGHTTP2_HTTP_FLAG__PATH)) || + (stream->http_flags & NGHTTP2_HTTP_FLAG__AUTHORITY) == 0) { return -1; } stream->content_length = -1; @@ -478,6 +482,11 @@ int nghttp2_http_on_request_headers(nghttp2_stream *stream, (NGHTTP2_HTTP_FLAG__AUTHORITY | NGHTTP2_HTTP_FLAG_HOST)) == 0) { return -1; } + if ((stream->http_flags & NGHTTP2_HTTP_FLAG__PROTOCOL) && + ((stream->http_flags & NGHTTP2_HTTP_FLAG_METH_CONNECT) == 0 || + (stream->http_flags & NGHTTP2_HTTP_FLAG__AUTHORITY) == 0)) { + return -1; + } if (!check_path(stream)) { return -1; } diff --git a/deps/nghttp2/lib/nghttp2_session.c b/deps/nghttp2/lib/nghttp2_session.c index 418ad6663585f5..ef4932af4e4f58 100644 --- a/deps/nghttp2/lib/nghttp2_session.c +++ b/deps/nghttp2/lib/nghttp2_session.c @@ -4361,6 +4361,9 @@ int nghttp2_session_update_local_settings(nghttp2_session *session, case NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: session->local_settings.max_header_list_size = iv[i].value; break; + case NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: + session->local_settings.enable_connect_protocol = iv[i].value; + break; } } @@ -4499,6 +4502,26 @@ int nghttp2_session_on_settings_received(nghttp2_session *session, session->remote_settings.max_header_list_size = entry->value; + break; + case NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: + + if (entry->value != 0 && entry->value != 1) { + return session_handle_invalid_connection( + session, frame, NGHTTP2_ERR_PROTO, + "SETTINGS: invalid SETTINGS_ENABLE_CONNECT_PROTOCOL"); + } + + if (!session->server && + session->remote_settings.enable_connect_protocol && + entry->value == 0) { + return session_handle_invalid_connection( + session, frame, NGHTTP2_ERR_PROTO, + "SETTINGS: server attempted to disable " + "SETTINGS_ENABLE_CONNECT_PROTOCOL"); + } + + session->remote_settings.enable_connect_protocol = entry->value; + break; } } @@ -5250,6 +5273,7 @@ static void inbound_frame_set_settings_entry(nghttp2_inbound_frame *iframe) { case NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: case NGHTTP2_SETTINGS_MAX_FRAME_SIZE: case NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: + case NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: break; default: DEBUGF("recv: unknown settings id=0x%02x\n", iv.settings_id); @@ -7052,6 +7076,13 @@ int nghttp2_session_add_settings(nghttp2_session *session, uint8_t flags, } } + for (i = niv; i > 0; --i) { + if (iv[i - 1].settings_id == NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL) { + session->pending_enable_connect_protocol = (uint8_t)iv[i - 1].value; + break; + } + } + return 0; } @@ -7360,6 +7391,8 @@ uint32_t nghttp2_session_get_remote_settings(nghttp2_session *session, return session->remote_settings.max_frame_size; case NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: return session->remote_settings.max_header_list_size; + case NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: + return session->remote_settings.enable_connect_protocol; } assert(0); @@ -7381,6 +7414,8 @@ uint32_t nghttp2_session_get_local_settings(nghttp2_session *session, return session->local_settings.max_frame_size; case NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: return session->local_settings.max_header_list_size; + case NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: + return session->local_settings.enable_connect_protocol; } assert(0); diff --git a/deps/nghttp2/lib/nghttp2_session.h b/deps/nghttp2/lib/nghttp2_session.h index 5add50bc8bce16..40a8865a04b12f 100644 --- a/deps/nghttp2/lib/nghttp2_session.h +++ b/deps/nghttp2/lib/nghttp2_session.h @@ -164,6 +164,7 @@ typedef struct { uint32_t initial_window_size; uint32_t max_frame_size; uint32_t max_header_list_size; + uint32_t enable_connect_protocol; } nghttp2_settings_storage; typedef enum { @@ -321,6 +322,9 @@ struct nghttp2_session { /* Unacked local ENABLE_PUSH value. We use this to refuse PUSH_PROMISE before SETTINGS ACK is received. */ uint8_t pending_enable_push; + /* Unacked local ENABLE_CONNECT_PROTOCOL value. We use this to + accept :protocol header field before SETTINGS_ACK is received. */ + uint8_t pending_enable_connect_protocol; /* Nonzero if the session is server side. */ uint8_t server; /* Flags indicating GOAWAY is sent and/or received. The flags are diff --git a/deps/nghttp2/lib/nghttp2_stream.h b/deps/nghttp2/lib/nghttp2_stream.h index d1d5856d800e76..fb8dc14d67be6d 100644 --- a/deps/nghttp2/lib/nghttp2_stream.h +++ b/deps/nghttp2/lib/nghttp2_stream.h @@ -130,7 +130,8 @@ typedef enum { /* "http" or "https" scheme */ NGHTTP2_HTTP_FLAG_SCHEME_HTTP = 1 << 13, /* set if final response is expected */ - NGHTTP2_HTTP_FLAG_EXPECT_FINAL_RESPONSE = 1 << 14 + NGHTTP2_HTTP_FLAG_EXPECT_FINAL_RESPONSE = 1 << 14, + NGHTTP2_HTTP_FLAG__PROTOCOL = 1 << 15, } nghttp2_http_flag; struct nghttp2_stream { diff --git a/deps/uv/AUTHORS b/deps/uv/AUTHORS index 0ba7c067681477..2fdfbcd5322e5e 100644 --- a/deps/uv/AUTHORS +++ b/deps/uv/AUTHORS @@ -346,3 +346,9 @@ Paolo Greppi Shelley Vohr Ujjwal Sharma Michał Kozakiewicz +Emil Bay +Jeremiah Senkpiel +Andy Zhang +dmabupt +Ryan Liptak +Ali Ijaz Sheikh diff --git a/deps/uv/CMakeLists.txt b/deps/uv/CMakeLists.txt index 4f13efc8e6ef2b..6a631a87c1cb39 100644 --- a/deps/uv/CMakeLists.txt +++ b/deps/uv/CMakeLists.txt @@ -193,7 +193,6 @@ if(WIN32) src/win/poll.c src/win/process.c src/win/process-stdio.c - src/win/req.c src/win/signal.c src/win/snprintf.c src/win/stream.c diff --git a/deps/uv/ChangeLog b/deps/uv/ChangeLog index b57cea4baf150a..7cb675238d3e08 100644 --- a/deps/uv/ChangeLog +++ b/deps/uv/ChangeLog @@ -1,3 +1,87 @@ +2018.10.09, Version 1.23.2 (Stable), 34c12788d2e7308f3ac506c0abcbf74c0d6abd20 + +Changes since version 1.23.1: + +* unix: return 0 retrieving rss on cygwin (cjihrig) + +* unix: initialize uv_interface_address_t.phys_addr (cjihrig) + +* test: handle uv_os_setpriority() windows edge case (cjihrig) + +* tty, win: fix read stop for raw mode (Bartosz Sosnowski) + +* Revert "Revert "unix,fs: fix for potential partial reads/writes"" (Jameson + Nash) + +* unix,readv: always permit partial reads to return (Jameson Nash) + +* win,tty: fix uv_tty_close() (Bartosz Sosnowski) + +* doc: remove extraneous "on" (Ben Noordhuis) + +* unix,win: fix threadpool race condition (Anna Henningsen) + +* unix: rework thread barrier implementation (Ben Noordhuis) + +* aix: switch to libuv's own thread barrier impl (Ben Noordhuis) + +* unix: signal done to last thread barrier waiter (Ben Noordhuis) + +* test: add uv_barrier_wait serial thread test (Ali Ijaz Sheikh) + +* unix: optimize uv_fs_readlink() memory allocation (Ben Noordhuis) + +* win: remove req.c and other cleanup (Carlo Marcelo Arenas Belón) + +* aix: don't EISDIR on read from directory fd (Ben Noordhuis) + + +2018.09.22, Version 1.23.1 (Stable), d2282b3d67821dc53c907c2155fa8c5c6ce25180 + +Changes since version 1.23.0: + +* unix,win: limit concurrent DNS calls to nthreads/2 (Anna Henningsen) + +* doc: add addaleax to maintainers (Anna Henningsen) + +* doc: add missing slash in stream.rst (Emil Bay) + +* unix,fs: use utimes & friends for uv_fs_utime (Jeremiah Senkpiel) + +* unix,fs: remove linux fallback from utimesat() (Jeremiah Senkpiel) + +* unix,fs: remove uv__utimesat() syscall fallback (Jeremiah Senkpiel) + +* doc: fix argument name in tcp.rts (Emil Bay) + +* doc: notes on running tests, benchmarks, tools (Jamie Davis) + +* linux: remove epoll syscall wrappers (Ben Noordhuis) + +* linux: drop code path for epoll_pwait-less kernels (Ben Noordhuis) + +* Partially revert "win,code: remove GetQueuedCompletionStatus-based poller" + (Jameson Nash) + +* build: add compile for android arm64/x86/x86-64 (Andy Zhang) + +* doc: clarify that some remarks apply to windows (Bert Belder) + +* test: fix compiler warnings (Jamie Davis) + +* ibmi: return 0 from uv_resident_set_memory() (dmabupt) + +* win: fix uv_udp_recv_start() error translation (Ryan Liptak) + +* win,doc: improve uv_os_setpriority() documentation (Bartosz Sosnowski) + +* test: increase upper bound in condvar_5 (Jamie Davis) + +* win,tty: remove deadcode (Jameson Nash) + +* stream: autodetect direction (Jameson Nash) + + 2018.08.18, Version 1.23.0 (Stable), 7ebb26225f2eaae6db22f4ef34ce76fa16ff89ec Changes since version 1.22.0: diff --git a/deps/uv/MAINTAINERS.md b/deps/uv/MAINTAINERS.md index 889ee4988c482c..543dc3cda7bce2 100644 --- a/deps/uv/MAINTAINERS.md +++ b/deps/uv/MAINTAINERS.md @@ -3,6 +3,7 @@ libuv is currently managed by the following individuals: +* **Anna Henningsen** ([@addaleax](https://github.com/addaleax)) * **Bartosz Sosnowski** ([@bzoz](https://github.com/bzoz)) * **Ben Noordhuis** ([@bnoordhuis](https://github.com/bnoordhuis)) - GPG key: D77B 1E34 243F BAF0 5F8E 9CC3 4F55 C8C8 46AB 89B9 (pubkey-bnoordhuis) diff --git a/deps/uv/Makefile.am b/deps/uv/Makefile.am index a217faab3cea25..2381425403c376 100644 --- a/deps/uv/Makefile.am +++ b/deps/uv/Makefile.am @@ -68,7 +68,6 @@ libuv_la_SOURCES += src/win/async.c \ src/win/poll.c \ src/win/process-stdio.c \ src/win/process.c \ - src/win/req.c \ src/win/req-inl.h \ src/win/signal.c \ src/win/stream.c \ @@ -340,8 +339,7 @@ libuv_la_SOURCES += src/unix/aix.c src/unix/aix-common.c endif if ANDROID -uvinclude_HEADERS += include/uv/android-ifaddrs.h \ - include/uv/pthread-barrier.h +uvinclude_HEADERS += include/uv/android-ifaddrs.h libuv_la_SOURCES += src/unix/android-ifaddrs.c \ src/unix/pthread-fixes.c endif @@ -361,8 +359,7 @@ libuv_la_SOURCES += src/unix/cygwin.c \ endif if DARWIN -uvinclude_HEADERS += include/uv/darwin.h \ - include/uv/pthread-barrier.h +uvinclude_HEADERS += include/uv/darwin.h libuv_la_CFLAGS += -D_DARWIN_USE_64_BIT_INODE=1 libuv_la_CFLAGS += -D_DARWIN_UNLIMITED_SELECT=1 libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \ @@ -445,7 +442,6 @@ libuv_la_SOURCES += src/unix/no-proctitle.c \ endif if OS390 -uvinclude_HEADERS += include/uv/pthread-barrier.h libuv_la_CFLAGS += -D_UNIX03_THREADS \ -D_UNIX03_SOURCE \ -D_OPEN_SYS_IF_EXT=1 \ diff --git a/deps/uv/README.md b/deps/uv/README.md index cb9e26c1e03a7a..b24b722612edf3 100644 --- a/deps/uv/README.md +++ b/deps/uv/README.md @@ -282,8 +282,31 @@ Make sure that you specify the architecture you wish to build for in the Run: +For arm + +```bash +$ source ./android-configure-arm NDK_PATH gyp [API_LEVEL] +$ make -C out +``` + +or for arm64 + +```bash +$ source ./android-configure-arm64 NDK_PATH gyp [API_LEVEL] +$ make -C out +``` + +or for x86 + +```bash +$ source ./android-configure-x86 NDK_PATH gyp [API_LEVEL] +$ make -C out +``` + +or for x86_64 + ```bash -$ source ./android-configure NDK_PATH gyp [API_LEVEL] +$ source ./android-configure-x86_64 NDK_PATH gyp [API_LEVEL] $ make -C out ``` @@ -310,14 +333,66 @@ $ ninja -C out/Release ### Running tests -Run: +#### Build + +Build (includes tests): ```bash $ ./gyp_uv.py -f make $ make -C out +``` + +#### Run all tests + +```bash $ ./out/Debug/run-tests ``` +#### Run one test + +The list of all tests is in `test/test-list.h`. + +This invocation will cause the `run-tests` driver to fork and execute `TEST_NAME` in a child process: + +```bash +$ ./out/Debug/run-tests TEST_NAME +``` + +This invocation will cause the `run-tests` driver to execute the test within the `run-tests` process: + +```bash +$ ./out/Debug/run-tests TEST_NAME TEST_NAME +``` + +#### Debugging tools + +When running the test from within the `run-tests` process (`run-tests TEST_NAME TEST_NAME`), tools like gdb and valgrind work normally. +When running the test from a child of the `run-tests` process (`run-tests TEST_NAME`), use these tools in a fork-aware manner. + +##### Fork-aware gdb + +Use the [follow-fork-mode](https://sourceware.org/gdb/onlinedocs/gdb/Forks.html) setting: + +``` +$ gdb --args out/Debug/run-tests TEST_NAME + +(gdb) set follow-fork-mode child +... +``` + +##### Fork-aware valgrind + +Use the `--trace-children=yes` parameter: + +```bash +$ valgrind --trace-children=yes -v --tool=memcheck --leak-check=full --track-origins=yes --leak-resolution=high --show-reachable=yes --log-file=memcheck.log out/Debug/run-tests TEST_NAME +``` + +### Running benchmarks + +See the section on running tests. +The benchmark driver is `out/Debug/run-benchmarks` and the benchmarks are listed in `test/benchmark-list.h`. + ## Supported Platforms Check the [SUPPORTED_PLATFORMS file](SUPPORTED_PLATFORMS.md). diff --git a/deps/uv/android-configure b/deps/uv/android-configure-arm similarity index 92% rename from deps/uv/android-configure rename to deps/uv/android-configure-arm index b5c11cd40c6873..331fdd9ebcf9f9 100755 --- a/deps/uv/android-configure +++ b/deps/uv/android-configure-arm @@ -1,6 +1,6 @@ #!/bin/bash -export TOOLCHAIN=$PWD/android-toolchain +export TOOLCHAIN=$PWD/android-toolchain-arm mkdir -p $TOOLCHAIN API=${3:-24} $1/build/tools/make-standalone-toolchain.sh \ diff --git a/deps/uv/android-configure-arm64 b/deps/uv/android-configure-arm64 new file mode 100755 index 00000000000000..1acd905d775fd9 --- /dev/null +++ b/deps/uv/android-configure-arm64 @@ -0,0 +1,23 @@ +#!/bin/bash + +export TOOLCHAIN=$PWD/android-toolchain-arm64 +mkdir -p $TOOLCHAIN +API=${3:-24} +$1/build/tools/make-standalone-toolchain.sh \ + --toolchain=aarch64-linux-android-4.9 \ + --arch=arm64 \ + --install-dir=$TOOLCHAIN \ + --platform=android-$API \ + --force +export PATH=$TOOLCHAIN/bin:$PATH +export AR=aarch64-linux-android-ar +export CC=aarch64-linux-android-gcc +export CXX=aarch64-linux-android-g++ +export LINK=aarch64-linux-android-g++ +export PLATFORM=android +export CFLAGS="-D__ANDROID_API__=$API" + +if [[ $2 == 'gyp' ]] + then + ./gyp_uv.py -Dtarget_arch=arm64 -DOS=android -f make-android +fi diff --git a/deps/uv/android-configure-x86 b/deps/uv/android-configure-x86 new file mode 100755 index 00000000000000..a149715f37547f --- /dev/null +++ b/deps/uv/android-configure-x86 @@ -0,0 +1,23 @@ +#!/bin/bash + +export TOOLCHAIN=$PWD/android-toolchain-x86 +mkdir -p $TOOLCHAIN +API=${3:-24} +$1/build/tools/make-standalone-toolchain.sh \ + --toolchain=x86-4.9 \ + --arch=x86 \ + --install-dir=$TOOLCHAIN \ + --platform=android-$API \ + --force +export PATH=$TOOLCHAIN/bin:$PATH +export AR=i686-linux-android-ar +export CC=i686-linux-android-gcc +export CXX=i686-linux-android-g++ +export LINK=i686-linux-android-g++ +export PLATFORM=android +export CFLAGS="-D__ANDROID_API__=$API" + +if [[ $2 == 'gyp' ]] + then + ./gyp_uv.py -Dtarget_arch=x86 -DOS=android -f make-android +fi diff --git a/deps/uv/android-configure-x86_64 b/deps/uv/android-configure-x86_64 new file mode 100755 index 00000000000000..ff045957f7138d --- /dev/null +++ b/deps/uv/android-configure-x86_64 @@ -0,0 +1,25 @@ +#!/bin/bash + +export TOOLCHAIN=$PWD/android-toolchain-x86_64 +mkdir -p $TOOLCHAIN +API=${3:-24} +$1/build/tools/make-standalone-toolchain.sh \ + --toolchain=x86_64-4.9 \ + --arch=x86_64 \ + --install-dir=$TOOLCHAIN \ + --platform=android-$API \ + --force +export PATH=$TOOLCHAIN/bin:$PATH +export AR=x86_64-linux-android-ar +export CC=x86_64-linux-android-gcc +export CXX=x86_64-linux-android-g++ +export LINK=x86_64-linux-android-g++ +export PLATFORM=android +export CFLAGS="-D__ANDROID_API__=$API -fPIC" +export CXXFLAGS="-D__ANDROID_API__=$API -fPIC" +export LDFLAGS="-fPIC" + +if [[ $2 == 'gyp' ]] + then + ./gyp_uv.py -Dtarget_arch=x86_64 -DOS=android -f make-android +fi diff --git a/deps/uv/configure.ac b/deps/uv/configure.ac index 6e084fd04d9a7d..0d9066bb0225a5 100644 --- a/deps/uv/configure.ac +++ b/deps/uv/configure.ac @@ -13,7 +13,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_PREREQ(2.57) -AC_INIT([libuv], [1.23.0], [https://github.com/libuv/libuv/issues]) +AC_INIT([libuv], [1.23.2], [https://github.com/libuv/libuv/issues]) AC_CONFIG_MACRO_DIR([m4]) m4_include([m4/libuv-extra-automake-flags.m4]) m4_include([m4/as_case.m4]) diff --git a/deps/uv/docs/src/design.rst b/deps/uv/docs/src/design.rst index 487d08ba6255ad..001b12334d2354 100644 --- a/deps/uv/docs/src/design.rst +++ b/deps/uv/docs/src/design.rst @@ -126,7 +126,7 @@ so the current approach is to run blocking file I/O operations in a thread pool. For a thorough explanation of the cross-platform file I/O landscape, checkout `this post `_. -libuv currently uses a global thread pool on which all loops can queue work on. 3 types of +libuv currently uses a global thread pool on which all loops can queue work. 3 types of operations are currently run on this pool: * File system operations diff --git a/deps/uv/docs/src/misc.rst b/deps/uv/docs/src/misc.rst index 529d588c5d4bd1..cf4a7895cd147b 100644 --- a/deps/uv/docs/src/misc.rst +++ b/deps/uv/docs/src/misc.rst @@ -544,4 +544,8 @@ API process priority, the result will equal one of the `UV_PRIORITY` constants, and not necessarily the exact value of `priority`. + .. note:: + On Windows, setting `PRIORITY_HIGHEST` will only work for elevated user, + for others it will be silently reduced to `PRIORITY_HIGH`. + .. versionadded:: 1.23.0 diff --git a/deps/uv/docs/src/signal.rst b/deps/uv/docs/src/signal.rst index 24354e4f7c1329..f52b64706ab890 100644 --- a/deps/uv/docs/src/signal.rst +++ b/deps/uv/docs/src/signal.rst @@ -17,12 +17,12 @@ Reception of some signals is emulated on Windows: program is given approximately 10 seconds to perform cleanup. After that Windows will unconditionally terminate it. -Watchers for other signals can be successfully created, but these signals -are never received. These signals are: `SIGILL`, `SIGABRT`, `SIGFPE`, `SIGSEGV`, -`SIGTERM` and `SIGKILL.` +* Watchers for other signals can be successfully created, but these signals + are never received. These signals are: `SIGILL`, `SIGABRT`, `SIGFPE`, `SIGSEGV`, + `SIGTERM` and `SIGKILL.` -Calls to raise() or abort() to programmatically raise a signal are -not detected by libuv; these will not trigger a signal watcher. +* Calls to raise() or abort() to programmatically raise a signal are + not detected by libuv; these will not trigger a signal watcher. .. note:: On Linux SIGRT0 and SIGRT1 (signals 32 and 33) are used by the NPTL pthreads library to diff --git a/deps/uv/docs/src/stream.rst b/deps/uv/docs/src/stream.rst index 9ec23622512519..6a704367b1b361 100644 --- a/deps/uv/docs/src/stream.rst +++ b/deps/uv/docs/src/stream.rst @@ -45,7 +45,7 @@ Data types `nread` might be 0, which does *not* indicate an error or EOF. This is equivalent to ``EAGAIN`` or ``EWOULDBLOCK`` under ``read(2)``. - The callee is responsible for stopping closing the stream when an error happens + The callee is responsible for stopping/closing the stream when an error happens by calling :c:func:`uv_read_stop` or :c:func:`uv_close`. Trying to read from the stream again is undefined. diff --git a/deps/uv/docs/src/tcp.rst b/deps/uv/docs/src/tcp.rst index e761b460d0e636..d20a6362af94d5 100644 --- a/deps/uv/docs/src/tcp.rst +++ b/deps/uv/docs/src/tcp.rst @@ -86,13 +86,13 @@ API .. c:function:: int uv_tcp_getsockname(const uv_tcp_t* handle, struct sockaddr* name, int* namelen) - Get the current address to which the handle is bound. `addr` must point to + Get the current address to which the handle is bound. `name` must point to a valid and big enough chunk of memory, ``struct sockaddr_storage`` is recommended for IPv4 and IPv6 support. .. c:function:: int uv_tcp_getpeername(const uv_tcp_t* handle, struct sockaddr* name, int* namelen) - Get the address of the peer connected to the handle. `addr` must point to + Get the address of the peer connected to the handle. `name` must point to a valid and big enough chunk of memory, ``struct sockaddr_storage`` is recommended for IPv4 and IPv6 support. diff --git a/deps/uv/docs/src/tty.rst b/deps/uv/docs/src/tty.rst index 01a0585287affc..9889a0a0b6465b 100644 --- a/deps/uv/docs/src/tty.rst +++ b/deps/uv/docs/src/tty.rst @@ -46,7 +46,7 @@ N/A API --- -.. c:function:: int uv_tty_init(uv_loop_t* loop, uv_tty_t* handle, uv_file fd, int readable) +.. c:function:: int uv_tty_init(uv_loop_t* loop, uv_tty_t* handle, uv_file fd, int unused) Initialize a new TTY stream with the given file descriptor. Usually the file descriptor will be: @@ -55,9 +55,6 @@ API * 1 = stdout * 2 = stderr - `readable`, specifies if you plan on calling :c:func:`uv_read_start` with - this stream. stdin is readable, stdout is not. - On Unix this function will determine the path of the fd of the terminal using :man:`ttyname_r(3)`, open it, and use it if the passed file descriptor refers to a TTY. This lets libuv put the tty in non-blocking mode without @@ -67,8 +64,10 @@ API ioctl TIOCGPTN or TIOCPTYGNAME, for instance OpenBSD and Solaris. .. note:: - If reopening the TTY fails, libuv falls back to blocking writes for - non-readable TTY streams. + If reopening the TTY fails, libuv falls back to blocking writes. + + .. versionchanged:: 1.23.1: the `readable` parameter is now unused and ignored. + The correct value will now be auto-detected from the kernel. .. versionchanged:: 1.9.0: the path of the TTY is determined by :man:`ttyname_r(3)`. In earlier versions libuv opened diff --git a/deps/uv/include/uv/pthread-barrier.h b/deps/uv/include/uv/pthread-barrier.h deleted file mode 100644 index 07db9b8a6a27e0..00000000000000 --- a/deps/uv/include/uv/pthread-barrier.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright (c) 2016, Kari Tristan Helgason - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#ifndef _UV_PTHREAD_BARRIER_ -#define _UV_PTHREAD_BARRIER_ -#include -#include -#if !defined(__MVS__) -#include /* sem_t */ -#endif - -#define PTHREAD_BARRIER_SERIAL_THREAD 0x12345 -#define UV__PTHREAD_BARRIER_FALLBACK 1 - -/* - * To maintain ABI compatibility with - * libuv v1.x struct is padded according - * to target platform - */ -#if defined(__ANDROID__) -# define UV_BARRIER_STRUCT_PADDING \ - sizeof(pthread_mutex_t) + \ - sizeof(pthread_cond_t) + \ - sizeof(unsigned int) - \ - sizeof(void *) -#elif defined(__APPLE__) -# define UV_BARRIER_STRUCT_PADDING \ - sizeof(pthread_mutex_t) + \ - 2 * sizeof(sem_t) + \ - 2 * sizeof(unsigned int) - \ - sizeof(void *) -#else -# define UV_BARRIER_STRUCT_PADDING 0 -#endif - -typedef struct { - pthread_mutex_t mutex; - pthread_cond_t cond; - unsigned threshold; - unsigned in; - unsigned out; -} _uv_barrier; - -typedef struct { - _uv_barrier* b; - char _pad[UV_BARRIER_STRUCT_PADDING]; -} pthread_barrier_t; - -int pthread_barrier_init(pthread_barrier_t* barrier, - const void* barrier_attr, - unsigned count); - -int pthread_barrier_wait(pthread_barrier_t* barrier); -int pthread_barrier_destroy(pthread_barrier_t *barrier); - -#endif /* _UV_PTHREAD_BARRIER_ */ diff --git a/deps/uv/include/uv/unix.h b/deps/uv/include/uv/unix.h index 74a0d643ceec28..7208557b560ce8 100644 --- a/deps/uv/include/uv/unix.h +++ b/deps/uv/include/uv/unix.h @@ -66,10 +66,6 @@ # include "uv/posix.h" #endif -#ifndef PTHREAD_BARRIER_SERIAL_THREAD -# include "uv/pthread-barrier.h" -#endif - #ifndef NI_MAXHOST # define NI_MAXHOST 1025 #endif @@ -136,8 +132,28 @@ typedef pthread_rwlock_t uv_rwlock_t; typedef UV_PLATFORM_SEM_T uv_sem_t; typedef pthread_cond_t uv_cond_t; typedef pthread_key_t uv_key_t; -typedef pthread_barrier_t uv_barrier_t; +/* Note: guard clauses should match uv_barrier_init's in src/unix/thread.c. */ +#if defined(_AIX) || !defined(PTHREAD_BARRIER_SERIAL_THREAD) +/* TODO(bnoordhuis) Merge into uv_barrier_t in v2. */ +struct _uv_barrier { + uv_mutex_t mutex; + uv_cond_t cond; + unsigned threshold; + unsigned in; + unsigned out; +}; + +typedef struct { + struct _uv_barrier* b; +# if defined(PTHREAD_BARRIER_SERIAL_THREAD) + /* TODO(bnoordhuis) Remove padding in v2. */ + char pad[sizeof(pthread_barrier_t) - sizeof(struct _uv_barrier*)]; +# endif +} uv_barrier_t; +#else +typedef pthread_barrier_t uv_barrier_t; +#endif /* Platform-specific definitions for uv_spawn support. */ typedef gid_t uv_gid_t; diff --git a/deps/uv/include/uv/version.h b/deps/uv/include/uv/version.h index 30e1d5a6f92bf8..cc064e2fd87ce8 100644 --- a/deps/uv/include/uv/version.h +++ b/deps/uv/include/uv/version.h @@ -32,7 +32,7 @@ #define UV_VERSION_MAJOR 1 #define UV_VERSION_MINOR 23 -#define UV_VERSION_PATCH 0 +#define UV_VERSION_PATCH 2 #define UV_VERSION_IS_RELEASE 1 #define UV_VERSION_SUFFIX "" diff --git a/deps/uv/src/threadpool.c b/deps/uv/src/threadpool.c index 413d1c204c2660..4258933c724782 100644 --- a/deps/uv/src/threadpool.c +++ b/deps/uv/src/threadpool.c @@ -33,12 +33,18 @@ static uv_once_t once = UV_ONCE_INIT; static uv_cond_t cond; static uv_mutex_t mutex; static unsigned int idle_threads; +static unsigned int slow_io_work_running; static unsigned int nthreads; static uv_thread_t* threads; static uv_thread_t default_threads[4]; static QUEUE exit_message; static QUEUE wq; +static QUEUE run_slow_work_message; +static QUEUE slow_io_pending_wq; +static unsigned int slow_work_thread_threshold(void) { + return (nthreads + 1) / 2; +} static void uv__cancelled(struct uv__work* w) { abort(); @@ -51,34 +57,67 @@ static void uv__cancelled(struct uv__work* w) { static void worker(void* arg) { struct uv__work* w; QUEUE* q; + int is_slow_work; uv_sem_post((uv_sem_t*) arg); arg = NULL; + uv_mutex_lock(&mutex); for (;;) { - uv_mutex_lock(&mutex); - - while (QUEUE_EMPTY(&wq)) { + /* `mutex` should always be locked at this point. */ + + /* Keep waiting while either no work is present or only slow I/O + and we're at the threshold for that. */ + while (QUEUE_EMPTY(&wq) || + (QUEUE_HEAD(&wq) == &run_slow_work_message && + QUEUE_NEXT(&run_slow_work_message) == &wq && + slow_io_work_running >= slow_work_thread_threshold())) { idle_threads += 1; uv_cond_wait(&cond, &mutex); idle_threads -= 1; } q = QUEUE_HEAD(&wq); - - if (q == &exit_message) + if (q == &exit_message) { uv_cond_signal(&cond); - else { + uv_mutex_unlock(&mutex); + break; + } + + QUEUE_REMOVE(q); + QUEUE_INIT(q); /* Signal uv_cancel() that the work req is executing. */ + + is_slow_work = 0; + if (q == &run_slow_work_message) { + /* If we're at the slow I/O threshold, re-schedule until after all + other work in the queue is done. */ + if (slow_io_work_running >= slow_work_thread_threshold()) { + QUEUE_INSERT_TAIL(&wq, q); + continue; + } + + /* If we encountered a request to run slow I/O work but there is none + to run, that means it's cancelled => Start over. */ + if (QUEUE_EMPTY(&slow_io_pending_wq)) + continue; + + is_slow_work = 1; + slow_io_work_running++; + + q = QUEUE_HEAD(&slow_io_pending_wq); QUEUE_REMOVE(q); - QUEUE_INIT(q); /* Signal uv_cancel() that the work req is - executing. */ + QUEUE_INIT(q); + + /* If there is more slow I/O work, schedule it to be run as well. */ + if (!QUEUE_EMPTY(&slow_io_pending_wq)) { + QUEUE_INSERT_TAIL(&wq, &run_slow_work_message); + if (idle_threads > 0) + uv_cond_signal(&cond); + } } uv_mutex_unlock(&mutex); - if (q == &exit_message) - break; - w = QUEUE_DATA(q, struct uv__work, wq); w->work(w); @@ -88,12 +127,32 @@ static void worker(void* arg) { QUEUE_INSERT_TAIL(&w->loop->wq, &w->wq); uv_async_send(&w->loop->wq_async); uv_mutex_unlock(&w->loop->wq_mutex); + + /* Lock `mutex` since that is expected at the start of the next + * iteration. */ + uv_mutex_lock(&mutex); + if (is_slow_work) { + /* `slow_io_work_running` is protected by `mutex`. */ + slow_io_work_running--; + } } } -static void post(QUEUE* q) { +static void post(QUEUE* q, enum uv__work_kind kind) { uv_mutex_lock(&mutex); + if (kind == UV__WORK_SLOW_IO) { + /* Insert into a separate queue. */ + QUEUE_INSERT_TAIL(&slow_io_pending_wq, q); + if (!QUEUE_EMPTY(&run_slow_work_message)) { + /* Running slow I/O tasks is already scheduled => Nothing to do here. + The worker that runs said other task will schedule this one as well. */ + uv_mutex_unlock(&mutex); + return; + } + q = &run_slow_work_message; + } + QUEUE_INSERT_TAIL(&wq, q); if (idle_threads > 0) uv_cond_signal(&cond); @@ -108,7 +167,7 @@ UV_DESTRUCTOR(static void cleanup(void)) { if (nthreads == 0) return; - post(&exit_message); + post(&exit_message, UV__WORK_CPU); for (i = 0; i < nthreads; i++) if (uv_thread_join(threads + i)) @@ -156,6 +215,8 @@ static void init_threads(void) { abort(); QUEUE_INIT(&wq); + QUEUE_INIT(&slow_io_pending_wq); + QUEUE_INIT(&run_slow_work_message); if (uv_sem_init(&sem, 0)) abort(); @@ -194,13 +255,14 @@ static void init_once(void) { void uv__work_submit(uv_loop_t* loop, struct uv__work* w, + enum uv__work_kind kind, void (*work)(struct uv__work* w), void (*done)(struct uv__work* w, int status)) { uv_once(&once, init_once); w->loop = loop; w->work = work; w->done = done; - post(&w->wq); + post(&w->wq, kind); } @@ -284,7 +346,11 @@ int uv_queue_work(uv_loop_t* loop, req->loop = loop; req->work_cb = work_cb; req->after_work_cb = after_work_cb; - uv__work_submit(loop, &req->work_req, uv__queue_work, uv__queue_done); + uv__work_submit(loop, + &req->work_req, + UV__WORK_CPU, + uv__queue_work, + uv__queue_done); return 0; } diff --git a/deps/uv/src/unix/bsd-ifaddrs.c b/deps/uv/src/unix/bsd-ifaddrs.c index 0d0215448640a4..9825b1c4db4865 100644 --- a/deps/uv/src/unix/bsd-ifaddrs.c +++ b/deps/uv/src/unix/bsd-ifaddrs.c @@ -119,16 +119,13 @@ int uv_interface_addresses(uv_interface_address_t** addresses, int* count) { continue; address = *addresses; + memset(address->phys_addr, 0, sizeof(address->phys_addr)); for (i = 0; i < *count; i++) { if (strcmp(address->name, ent->ifa_name) == 0) { -#if defined(__CYGWIN__) || defined(__MSYS__) - memset(address->phys_addr, 0, sizeof(address->phys_addr)); -#else struct sockaddr_dl* sa_addr; sa_addr = (struct sockaddr_dl*)(ent->ifa_addr); memcpy(address->phys_addr, LLADDR(sa_addr), sizeof(address->phys_addr)); -#endif } address++; } diff --git a/deps/uv/src/unix/cygwin.c b/deps/uv/src/unix/cygwin.c index 9fe4093ef46fb0..9da20e203aa238 100644 --- a/deps/uv/src/unix/cygwin.c +++ b/deps/uv/src/unix/cygwin.c @@ -38,7 +38,7 @@ int uv_uptime(double* uptime) { int uv_resident_set_memory(size_t* rss) { /* FIXME: read /proc/meminfo? */ *rss = 0; - return UV_ENOSYS; + return 0; } int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { diff --git a/deps/uv/src/unix/fs.c b/deps/uv/src/unix/fs.c index 652cdfd734ac5b..3db5f89c9503d2 100644 --- a/deps/uv/src/unix/fs.c +++ b/deps/uv/src/unix/fs.c @@ -43,7 +43,6 @@ #include #include #include -#include #include #if defined(__DragonFly__) || \ @@ -67,6 +66,10 @@ # define FICLONE _IOW(0x94, 9, int) #endif +#if defined(_AIX) && !defined(_AIX71) +# include +#endif + #define INIT(subtype) \ do { \ if (req == NULL) \ @@ -120,7 +123,11 @@ do { \ if (cb != NULL) { \ uv__req_register(loop, req); \ - uv__work_submit(loop, &req->work_req, uv__fs_work, uv__fs_done); \ + uv__work_submit(loop, \ + &req->work_req, \ + UV__WORK_FAST_IO, \ + uv__fs_work, \ + uv__fs_done); \ return 0; \ } \ else { \ @@ -165,59 +172,17 @@ static ssize_t uv__fs_fdatasync(uv_fs_t* req) { static ssize_t uv__fs_futime(uv_fs_t* req) { -#if defined(__linux__) +#if defined(__linux__) \ + || defined(_AIX71) /* utimesat() has nanosecond resolution but we stick to microseconds * for the sake of consistency with other platforms. */ - static int no_utimesat; struct timespec ts[2]; - struct timeval tv[2]; - char path[sizeof("/proc/self/fd/") + 3 * sizeof(int)]; - int r; - - if (no_utimesat) - goto skip; - ts[0].tv_sec = req->atime; ts[0].tv_nsec = (uint64_t)(req->atime * 1000000) % 1000000 * 1000; ts[1].tv_sec = req->mtime; ts[1].tv_nsec = (uint64_t)(req->mtime * 1000000) % 1000000 * 1000; - - r = uv__utimesat(req->file, NULL, ts, 0); - if (r == 0) - return r; - - if (errno != ENOSYS) - return r; - - no_utimesat = 1; - -skip: - - tv[0].tv_sec = req->atime; - tv[0].tv_usec = (uint64_t)(req->atime * 1000000) % 1000000; - tv[1].tv_sec = req->mtime; - tv[1].tv_usec = (uint64_t)(req->mtime * 1000000) % 1000000; - snprintf(path, sizeof(path), "/proc/self/fd/%d", (int) req->file); - - r = utimes(path, tv); - if (r == 0) - return r; - - switch (errno) { - case ENOENT: - if (fcntl(req->file, F_GETFL) == -1 && errno == EBADF) - break; - /* Fall through. */ - - case EACCES: - case ENOTDIR: - errno = ENOSYS; - break; - } - - return r; - + return futimens(req->file, ts); #elif defined(__APPLE__) \ || defined(__DragonFly__) \ || defined(__FreeBSD__) \ @@ -235,13 +200,6 @@ static ssize_t uv__fs_futime(uv_fs_t* req) { # else return futimes(req->file, tv); # endif -#elif defined(_AIX71) - struct timespec ts[2]; - ts[0].tv_sec = req->atime; - ts[0].tv_nsec = (uint64_t)(req->atime * 1000000) % 1000000 * 1000; - ts[1].tv_sec = req->mtime; - ts[1].tv_nsec = (uint64_t)(req->mtime * 1000000) % 1000000 * 1000; - return futimens(req->file, ts); #elif defined(__MVS__) attrib_t atr; memset(&atr, 0, sizeof(atr)); @@ -304,17 +262,13 @@ static ssize_t uv__fs_read(uv_fs_t* req) { #if defined(__linux__) static int no_preadv; #endif + unsigned int iovmax; ssize_t result; -#if defined(_AIX) - struct stat buf; - if(fstat(req->file, &buf)) - return -1; - if(S_ISDIR(buf.st_mode)) { - errno = EISDIR; - return -1; - } -#endif /* defined(_AIX) */ + iovmax = uv__getiovmax(); + if (req->nbufs > iovmax) + req->nbufs = iovmax; + if (req->off < 0) { if (req->nbufs == 1) result = read(req->file, req->bufs[0].base, req->bufs[0].len); @@ -333,25 +287,7 @@ static ssize_t uv__fs_read(uv_fs_t* req) { if (no_preadv) retry: # endif { - off_t nread; - size_t index; - - nread = 0; - index = 0; - result = 1; - do { - if (req->bufs[index].len > 0) { - result = pread(req->file, - req->bufs[index].base, - req->bufs[index].len, - req->off + nread); - if (result > 0) - nread += result; - } - index++; - } while (index < req->nbufs && result > 0); - if (nread > 0) - result = nread; + result = pread(req->file, req->bufs[0].base, req->bufs[0].len, req->off); } # if defined(__linux__) else { @@ -369,6 +305,13 @@ static ssize_t uv__fs_read(uv_fs_t* req) { } done: + /* Early cleanup of bufs allocation, since we're done with it. */ + if (req->bufs != req->bufsml) + uv__free(req->bufs); + + req->bufs = NULL; + req->nbufs = 0; + return result; } @@ -433,11 +376,13 @@ static ssize_t uv__fs_pathmax_size(const char* path) { } static ssize_t uv__fs_readlink(uv_fs_t* req) { + ssize_t maxlen; ssize_t len; char* buf; + char* newbuf; - len = uv__fs_pathmax_size(req->path); - buf = uv__malloc(len + 1); + maxlen = uv__fs_pathmax_size(req->path); + buf = uv__malloc(maxlen); if (buf == NULL) { errno = ENOMEM; @@ -445,17 +390,28 @@ static ssize_t uv__fs_readlink(uv_fs_t* req) { } #if defined(__MVS__) - len = os390_readlink(req->path, buf, len); + len = os390_readlink(req->path, buf, maxlen); #else - len = readlink(req->path, buf, len); + len = readlink(req->path, buf, maxlen); #endif - if (len == -1) { uv__free(buf); return -1; } + /* Uncommon case: resize to make room for the trailing nul byte. */ + if (len == maxlen) { + newbuf = uv__realloc(buf, len + 1); + + if (newbuf == NULL) { + uv__free(buf); + return -1; + } + + buf = newbuf; + } + buf[len] = '\0'; req->ptr = buf; @@ -698,10 +654,48 @@ static ssize_t uv__fs_sendfile(uv_fs_t* req) { static ssize_t uv__fs_utime(uv_fs_t* req) { +#if defined(__linux__) \ + || defined(_AIX71) \ + || defined(__sun) + /* utimesat() has nanosecond resolution but we stick to microseconds + * for the sake of consistency with other platforms. + */ + struct timespec ts[2]; + ts[0].tv_sec = req->atime; + ts[0].tv_nsec = (uint64_t)(req->atime * 1000000) % 1000000 * 1000; + ts[1].tv_sec = req->mtime; + ts[1].tv_nsec = (uint64_t)(req->mtime * 1000000) % 1000000 * 1000; + return utimensat(AT_FDCWD, req->path, ts, 0); +#elif defined(__APPLE__) \ + || defined(__DragonFly__) \ + || defined(__FreeBSD__) \ + || defined(__FreeBSD_kernel__) \ + || defined(__NetBSD__) \ + || defined(__OpenBSD__) + struct timeval tv[2]; + tv[0].tv_sec = req->atime; + tv[0].tv_usec = (uint64_t)(req->atime * 1000000) % 1000000; + tv[1].tv_sec = req->mtime; + tv[1].tv_usec = (uint64_t)(req->mtime * 1000000) % 1000000; + return utimes(req->path, tv); +#elif defined(_AIX) \ + && !defined(_AIX71) struct utimbuf buf; buf.actime = req->atime; buf.modtime = req->mtime; - return utime(req->path, &buf); /* TODO use utimes() where available */ + return utime(req->path, &buf); +#elif defined(__MVS__) + attrib_t atr; + memset(&atr, 0, sizeof(atr)); + atr.att_mtimechg = 1; + atr.att_atimechg = 1; + atr.att_mtime = req->mtime; + atr.att_atime = req->atime; + return __lchattr(req->path, &atr, sizeof(atr)); +#else + errno = ENOSYS; + return -1; +#endif } @@ -739,25 +733,7 @@ static ssize_t uv__fs_write(uv_fs_t* req) { if (no_pwritev) retry: # endif { - off_t written; - size_t index; - - written = 0; - index = 0; - r = 0; - do { - if (req->bufs[index].len > 0) { - r = pwrite(req->file, - req->bufs[index].base, - req->bufs[index].len, - req->off + written); - if (r > 0) - written += r; - } - index++; - } while (index < req->nbufs && r >= 0); - if (written > 0) - r = written; + r = pwrite(req->file, req->bufs[0].base, req->bufs[0].len, req->off); } # if defined(__linux__) else { @@ -1049,9 +1025,21 @@ static int uv__fs_fstat(int fd, uv_stat_t *buf) { return ret; } +static size_t uv__fs_buf_offset(uv_buf_t* bufs, size_t size) { + size_t offset; + /* Figure out which bufs are done */ + for (offset = 0; size > 0 && bufs[offset].len <= size; ++offset) + size -= bufs[offset].len; -typedef ssize_t (*uv__fs_buf_iter_processor)(uv_fs_t* req); -static ssize_t uv__fs_buf_iter(uv_fs_t* req, uv__fs_buf_iter_processor process) { + /* Fix a partial read/write */ + if (size > 0) { + bufs[offset].base += size; + bufs[offset].len -= size; + } + return offset; +} + +static ssize_t uv__fs_write_all(uv_fs_t* req) { unsigned int iovmax; unsigned int nbufs; uv_buf_t* bufs; @@ -1068,7 +1056,10 @@ static ssize_t uv__fs_buf_iter(uv_fs_t* req, uv__fs_buf_iter_processor process) if (req->nbufs > iovmax) req->nbufs = iovmax; - result = process(req); + do + result = uv__fs_write(req); + while (result < 0 && errno == EINTR); + if (result <= 0) { if (total == 0) total = result; @@ -1078,14 +1069,12 @@ static ssize_t uv__fs_buf_iter(uv_fs_t* req, uv__fs_buf_iter_processor process) if (req->off >= 0) req->off += result; + req->nbufs = uv__fs_buf_offset(req->bufs, result); req->bufs += req->nbufs; nbufs -= req->nbufs; total += result; } - if (errno == EINTR && total == -1) - return total; - if (bufs != req->bufsml) uv__free(bufs); @@ -1102,7 +1091,8 @@ static void uv__fs_work(struct uv__work* w) { ssize_t r; req = container_of(w, uv_fs_t, work_req); - retry_on_eintr = !(req->fs_type == UV_FS_CLOSE); + retry_on_eintr = !(req->fs_type == UV_FS_CLOSE || + req->fs_type == UV_FS_READ); do { errno = 0; @@ -1131,7 +1121,7 @@ static void uv__fs_work(struct uv__work* w) { X(MKDIR, mkdir(req->path, req->mode)); X(MKDTEMP, uv__fs_mkdtemp(req)); X(OPEN, uv__fs_open(req)); - X(READ, uv__fs_buf_iter(req, uv__fs_read)); + X(READ, uv__fs_read(req)); X(SCANDIR, uv__fs_scandir(req)); X(READLINK, uv__fs_readlink(req)); X(REALPATH, uv__fs_realpath(req)); @@ -1142,7 +1132,7 @@ static void uv__fs_work(struct uv__work* w) { X(SYMLINK, symlink(req->path, req->new_path)); X(UNLINK, unlink(req->path)); X(UTIME, uv__fs_utime(req)); - X(WRITE, uv__fs_buf_iter(req, uv__fs_write)); + X(WRITE, uv__fs_write_all(req)); default: abort(); } #undef X diff --git a/deps/uv/src/unix/getaddrinfo.c b/deps/uv/src/unix/getaddrinfo.c index 10e8afd75e831b..25827c1feeb6b3 100644 --- a/deps/uv/src/unix/getaddrinfo.c +++ b/deps/uv/src/unix/getaddrinfo.c @@ -186,6 +186,7 @@ int uv_getaddrinfo(uv_loop_t* loop, if (cb) { uv__work_submit(loop, &req->work_req, + UV__WORK_SLOW_IO, uv__getaddrinfo_work, uv__getaddrinfo_done); return 0; diff --git a/deps/uv/src/unix/getnameinfo.c b/deps/uv/src/unix/getnameinfo.c index 9a4367224c7fa6..991002a67d7072 100644 --- a/deps/uv/src/unix/getnameinfo.c +++ b/deps/uv/src/unix/getnameinfo.c @@ -109,6 +109,7 @@ int uv_getnameinfo(uv_loop_t* loop, if (getnameinfo_cb) { uv__work_submit(loop, &req->work_req, + UV__WORK_SLOW_IO, uv__getnameinfo_work, uv__getnameinfo_done); return 0; diff --git a/deps/uv/src/unix/ibmi.c b/deps/uv/src/unix/ibmi.c index c50a4e76f84119..b1ab549c23f4b9 100644 --- a/deps/uv/src/unix/ibmi.c +++ b/deps/uv/src/unix/ibmi.c @@ -72,7 +72,8 @@ void uv_loadavg(double avg[3]) { int uv_resident_set_memory(size_t* rss) { - return UV_ENOSYS; + *rss = 0; + return 0; } diff --git a/deps/uv/src/unix/linux-core.c b/deps/uv/src/unix/linux-core.c index d09bbcdd6f292b..75362eb76d7f5d 100644 --- a/deps/uv/src/unix/linux-core.c +++ b/deps/uv/src/unix/linux-core.c @@ -20,7 +20,7 @@ /* We lean on the fact that POLL{IN,OUT,ERR,HUP} correspond with their * EPOLL* counterparts. We use the POLL* variants in this file because that - * is what libuv uses elsewhere and it avoids a dependency on . + * is what libuv uses elsewhere. */ #include "uv.h" @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -84,13 +85,13 @@ static unsigned long read_cpufreq(unsigned int cpunum); int uv__platform_loop_init(uv_loop_t* loop) { int fd; - fd = uv__epoll_create1(UV__EPOLL_CLOEXEC); + fd = epoll_create1(EPOLL_CLOEXEC); /* epoll_create1() can fail either because it's not implemented (old kernel) * or because it doesn't understand the EPOLL_CLOEXEC flag. */ if (fd == -1 && (errno == ENOSYS || errno == EINVAL)) { - fd = uv__epoll_create(256); + fd = epoll_create(256); if (fd != -1) uv__cloexec(fd, 1); @@ -134,20 +135,20 @@ void uv__platform_loop_delete(uv_loop_t* loop) { void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) { - struct uv__epoll_event* events; - struct uv__epoll_event dummy; + struct epoll_event* events; + struct epoll_event dummy; uintptr_t i; uintptr_t nfds; assert(loop->watchers != NULL); - events = (struct uv__epoll_event*) loop->watchers[loop->nwatchers]; + events = (struct epoll_event*) loop->watchers[loop->nwatchers]; nfds = (uintptr_t) loop->watchers[loop->nwatchers + 1]; if (events != NULL) /* Invalidate events with same file descriptor */ for (i = 0; i < nfds; i++) - if ((int) events[i].data == fd) - events[i].data = -1; + if (events[i].data.fd == fd) + events[i].data.fd = -1; /* Remove the file descriptor from the epoll. * This avoids a problem where the same file description remains open @@ -160,25 +161,25 @@ void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) { * has the EPOLLWAKEUP flag set generates spurious audit syslog warnings. */ memset(&dummy, 0, sizeof(dummy)); - uv__epoll_ctl(loop->backend_fd, UV__EPOLL_CTL_DEL, fd, &dummy); + epoll_ctl(loop->backend_fd, EPOLL_CTL_DEL, fd, &dummy); } } int uv__io_check_fd(uv_loop_t* loop, int fd) { - struct uv__epoll_event e; + struct epoll_event e; int rc; e.events = POLLIN; - e.data = -1; + e.data.fd = -1; rc = 0; - if (uv__epoll_ctl(loop->backend_fd, UV__EPOLL_CTL_ADD, fd, &e)) + if (epoll_ctl(loop->backend_fd, EPOLL_CTL_ADD, fd, &e)) if (errno != EEXIST) rc = UV__ERR(errno); if (rc == 0) - if (uv__epoll_ctl(loop->backend_fd, UV__EPOLL_CTL_DEL, fd, &e)) + if (epoll_ctl(loop->backend_fd, EPOLL_CTL_DEL, fd, &e)) abort(); return rc; @@ -195,16 +196,14 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { * that being the largest value I have seen in the wild (and only once.) */ static const int max_safe_timeout = 1789569; - static int no_epoll_pwait; - static int no_epoll_wait; - struct uv__epoll_event events[1024]; - struct uv__epoll_event* pe; - struct uv__epoll_event e; + struct epoll_event events[1024]; + struct epoll_event* pe; + struct epoll_event e; int real_timeout; QUEUE* q; uv__io_t* w; sigset_t sigset; - uint64_t sigmask; + sigset_t* psigset; uint64_t base; int have_signals; int nevents; @@ -230,35 +229,35 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { assert(w->fd < (int) loop->nwatchers); e.events = w->pevents; - e.data = w->fd; + e.data.fd = w->fd; if (w->events == 0) - op = UV__EPOLL_CTL_ADD; + op = EPOLL_CTL_ADD; else - op = UV__EPOLL_CTL_MOD; + op = EPOLL_CTL_MOD; /* XXX Future optimization: do EPOLL_CTL_MOD lazily if we stop watching * events, skip the syscall and squelch the events after epoll_wait(). */ - if (uv__epoll_ctl(loop->backend_fd, op, w->fd, &e)) { + if (epoll_ctl(loop->backend_fd, op, w->fd, &e)) { if (errno != EEXIST) abort(); - assert(op == UV__EPOLL_CTL_ADD); + assert(op == EPOLL_CTL_ADD); /* We've reactivated a file descriptor that's been watched before. */ - if (uv__epoll_ctl(loop->backend_fd, UV__EPOLL_CTL_MOD, w->fd, &e)) + if (epoll_ctl(loop->backend_fd, EPOLL_CTL_MOD, w->fd, &e)) abort(); } w->events = w->pevents; } - sigmask = 0; + psigset = NULL; if (loop->flags & UV_LOOP_BLOCK_SIGPROF) { sigemptyset(&sigset); sigaddset(&sigset, SIGPROF); - sigmask |= 1 << (SIGPROF - 1); + psigset = &sigset; } assert(timeout >= -1); @@ -273,30 +272,11 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { if (sizeof(int32_t) == sizeof(long) && timeout >= max_safe_timeout) timeout = max_safe_timeout; - if (sigmask != 0 && no_epoll_pwait != 0) - if (pthread_sigmask(SIG_BLOCK, &sigset, NULL)) - abort(); - - if (no_epoll_wait != 0 || (sigmask != 0 && no_epoll_pwait == 0)) { - nfds = uv__epoll_pwait(loop->backend_fd, - events, - ARRAY_SIZE(events), - timeout, - sigmask); - if (nfds == -1 && errno == ENOSYS) - no_epoll_pwait = 1; - } else { - nfds = uv__epoll_wait(loop->backend_fd, - events, - ARRAY_SIZE(events), - timeout); - if (nfds == -1 && errno == ENOSYS) - no_epoll_wait = 1; - } - - if (sigmask != 0 && no_epoll_pwait != 0) - if (pthread_sigmask(SIG_UNBLOCK, &sigset, NULL)) - abort(); + nfds = epoll_pwait(loop->backend_fd, + events, + ARRAY_SIZE(events), + timeout, + psigset); /* Update loop->time unconditionally. It's tempting to skip the update when * timeout == 0 (i.e. non-blocking poll) but there is no guarantee that the @@ -317,12 +297,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { } if (nfds == -1) { - if (errno == ENOSYS) { - /* epoll_wait() or epoll_pwait() failed, try the other system call. */ - assert(no_epoll_wait == 0 || no_epoll_pwait == 0); - continue; - } - if (errno != EINTR) abort(); @@ -344,7 +318,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { loop->watchers[loop->nwatchers + 1] = (void*) (uintptr_t) nfds; for (i = 0; i < nfds; i++) { pe = events + i; - fd = pe->data; + fd = pe->data.fd; /* Skip invalidated events, see uv__platform_invalidate_fd */ if (fd == -1) @@ -361,7 +335,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { * Ignore all errors because we may be racing with another thread * when the file descriptor is closed. */ - uv__epoll_ctl(loop->backend_fd, UV__EPOLL_CTL_DEL, fd, pe); + epoll_ctl(loop->backend_fd, EPOLL_CTL_DEL, fd, pe); continue; } @@ -916,6 +890,7 @@ int uv_interface_addresses(uv_interface_address_t** addresses, continue; address = *addresses; + memset(address->phys_addr, 0, sizeof(address->phys_addr)); for (i = 0; i < (*count); i++) { if (strcmp(address->name, ent->ifa_name) == 0) { diff --git a/deps/uv/src/unix/linux-syscalls.c b/deps/uv/src/unix/linux-syscalls.c index 89998ded26b17c..bfd75448793388 100644 --- a/deps/uv/src/unix/linux-syscalls.c +++ b/deps/uv/src/unix/linux-syscalls.c @@ -77,56 +77,6 @@ # endif #endif /* __NR_eventfd2 */ -#ifndef __NR_epoll_create -# if defined(__x86_64__) -# define __NR_epoll_create 213 -# elif defined(__i386__) -# define __NR_epoll_create 254 -# elif defined(__arm__) -# define __NR_epoll_create (UV_SYSCALL_BASE + 250) -# endif -#endif /* __NR_epoll_create */ - -#ifndef __NR_epoll_create1 -# if defined(__x86_64__) -# define __NR_epoll_create1 291 -# elif defined(__i386__) -# define __NR_epoll_create1 329 -# elif defined(__arm__) -# define __NR_epoll_create1 (UV_SYSCALL_BASE + 357) -# endif -#endif /* __NR_epoll_create1 */ - -#ifndef __NR_epoll_ctl -# if defined(__x86_64__) -# define __NR_epoll_ctl 233 /* used to be 214 */ -# elif defined(__i386__) -# define __NR_epoll_ctl 255 -# elif defined(__arm__) -# define __NR_epoll_ctl (UV_SYSCALL_BASE + 251) -# endif -#endif /* __NR_epoll_ctl */ - -#ifndef __NR_epoll_wait -# if defined(__x86_64__) -# define __NR_epoll_wait 232 /* used to be 215 */ -# elif defined(__i386__) -# define __NR_epoll_wait 256 -# elif defined(__arm__) -# define __NR_epoll_wait (UV_SYSCALL_BASE + 252) -# endif -#endif /* __NR_epoll_wait */ - -#ifndef __NR_epoll_pwait -# if defined(__x86_64__) -# define __NR_epoll_pwait 281 -# elif defined(__i386__) -# define __NR_epoll_pwait 319 -# elif defined(__arm__) -# define __NR_epoll_pwait (UV_SYSCALL_BASE + 346) -# endif -#endif /* __NR_epoll_pwait */ - #ifndef __NR_inotify_init # if defined(__x86_64__) # define __NR_inotify_init 253 @@ -285,76 +235,6 @@ int uv__eventfd2(unsigned int count, int flags) { } -int uv__epoll_create(int size) { -#if defined(__NR_epoll_create) - return syscall(__NR_epoll_create, size); -#else - return errno = ENOSYS, -1; -#endif -} - - -int uv__epoll_create1(int flags) { -#if defined(__NR_epoll_create1) - return syscall(__NR_epoll_create1, flags); -#else - return errno = ENOSYS, -1; -#endif -} - - -int uv__epoll_ctl(int epfd, int op, int fd, struct uv__epoll_event* events) { -#if defined(__NR_epoll_ctl) - return syscall(__NR_epoll_ctl, epfd, op, fd, events); -#else - return errno = ENOSYS, -1; -#endif -} - - -int uv__epoll_wait(int epfd, - struct uv__epoll_event* events, - int nevents, - int timeout) { -#if defined(__NR_epoll_wait) - int result; - result = syscall(__NR_epoll_wait, epfd, events, nevents, timeout); -#if MSAN_ACTIVE - if (result > 0) - __msan_unpoison(events, sizeof(events[0]) * result); -#endif - return result; -#else - return errno = ENOSYS, -1; -#endif -} - - -int uv__epoll_pwait(int epfd, - struct uv__epoll_event* events, - int nevents, - int timeout, - uint64_t sigmask) { -#if defined(__NR_epoll_pwait) - int result; - result = syscall(__NR_epoll_pwait, - epfd, - events, - nevents, - timeout, - &sigmask, - sizeof(sigmask)); -#if MSAN_ACTIVE - if (result > 0) - __msan_unpoison(events, sizeof(events[0]) * result); -#endif - return result; -#else - return errno = ENOSYS, -1; -#endif -} - - int uv__inotify_init(void) { #if defined(__NR_inotify_init) return syscall(__NR_inotify_init); @@ -431,19 +311,6 @@ int uv__recvmmsg(int fd, } -int uv__utimesat(int dirfd, - const char* path, - const struct timespec times[2], - int flags) -{ -#if defined(__NR_utimensat) - return syscall(__NR_utimensat, dirfd, path, times, flags); -#else - return errno = ENOSYS, -1; -#endif -} - - ssize_t uv__preadv(int fd, const struct iovec *iov, int iovcnt, int64_t offset) { #if defined(__NR_preadv) return syscall(__NR_preadv, fd, iov, iovcnt, (long)offset, (long)(offset >> 32)); diff --git a/deps/uv/src/unix/linux-syscalls.h b/deps/uv/src/unix/linux-syscalls.h index 4c095e9b537996..3dfd329d6c84b5 100644 --- a/deps/uv/src/unix/linux-syscalls.h +++ b/deps/uv/src/unix/linux-syscalls.h @@ -66,12 +66,6 @@ # define UV__SOCK_NONBLOCK UV__O_NONBLOCK #endif -/* epoll flags */ -#define UV__EPOLL_CLOEXEC UV__O_CLOEXEC -#define UV__EPOLL_CTL_ADD 1 -#define UV__EPOLL_CTL_DEL 2 -#define UV__EPOLL_CTL_MOD 3 - /* inotify flags */ #define UV__IN_ACCESS 0x001 #define UV__IN_MODIFY 0x002 @@ -86,18 +80,6 @@ #define UV__IN_DELETE_SELF 0x400 #define UV__IN_MOVE_SELF 0x800 -#if defined(__x86_64__) -struct uv__epoll_event { - uint32_t events; - uint64_t data; -} __attribute__((packed)); -#else -struct uv__epoll_event { - uint32_t events; - uint64_t data; -}; -#endif - struct uv__inotify_event { int32_t wd; uint32_t mask; @@ -113,18 +95,6 @@ struct uv__mmsghdr { int uv__accept4(int fd, struct sockaddr* addr, socklen_t* addrlen, int flags); int uv__eventfd(unsigned int count); -int uv__epoll_create(int size); -int uv__epoll_create1(int flags); -int uv__epoll_ctl(int epfd, int op, int fd, struct uv__epoll_event *ev); -int uv__epoll_wait(int epfd, - struct uv__epoll_event* events, - int nevents, - int timeout); -int uv__epoll_pwait(int epfd, - struct uv__epoll_event* events, - int nevents, - int timeout, - uint64_t sigmask); int uv__eventfd2(unsigned int count, int flags); int uv__inotify_init(void); int uv__inotify_init1(int flags); @@ -140,10 +110,6 @@ int uv__sendmmsg(int fd, struct uv__mmsghdr* mmsg, unsigned int vlen, unsigned int flags); -int uv__utimesat(int dirfd, - const char* path, - const struct timespec times[2], - int flags); ssize_t uv__preadv(int fd, const struct iovec *iov, int iovcnt, int64_t offset); ssize_t uv__pwritev(int fd, const struct iovec *iov, int iovcnt, int64_t offset); int uv__dup3(int oldfd, int newfd, int flags); diff --git a/deps/uv/src/unix/os390-syscalls.h b/deps/uv/src/unix/os390-syscalls.h index 6e34a88cb95d1b..ea599107b30281 100644 --- a/deps/uv/src/unix/os390-syscalls.h +++ b/deps/uv/src/unix/os390-syscalls.h @@ -36,10 +36,6 @@ #define MAX_ITEMS_PER_EPOLL 1024 #define UV__O_CLOEXEC 0x80000 -#define UV__EPOLL_CLOEXEC UV__O_CLOEXEC -#define UV__EPOLL_CTL_ADD EPOLL_CTL_ADD -#define UV__EPOLL_CTL_DEL EPOLL_CTL_DEL -#define UV__EPOLL_CTL_MOD EPOLL_CTL_MOD struct epoll_event { int events; diff --git a/deps/uv/src/unix/os390.c b/deps/uv/src/unix/os390.c index f766b393395ee7..65e9b708303668 100644 --- a/deps/uv/src/unix/os390.c +++ b/deps/uv/src/unix/os390.c @@ -512,7 +512,7 @@ static int uv__interface_addresses_v6(uv_interface_address_t** addresses, /* TODO: Retrieve netmask using SIOCGIFNETMASK ioctl */ address->is_internal = flg.__nif6e_flags & _NIF6E_FLAGS_LOOPBACK ? 1 : 0; - + memset(address->phys_addr, 0, sizeof(address->phys_addr)); address++; } @@ -624,6 +624,7 @@ int uv_interface_addresses(uv_interface_address_t** addresses, int* count) { } address->is_internal = flg.ifr_flags & IFF_LOOPBACK ? 1 : 0; + memset(address->phys_addr, 0, sizeof(address->phys_addr)); address++; } @@ -662,7 +663,7 @@ void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) { /* Remove the file descriptor from the epoll. */ if (loop->ep != NULL) - epoll_ctl(loop->ep, UV__EPOLL_CTL_DEL, fd, &dummy); + epoll_ctl(loop->ep, EPOLL_CTL_DEL, fd, &dummy); } @@ -838,9 +839,9 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { e.fd = w->fd; if (w->events == 0) - op = UV__EPOLL_CTL_ADD; + op = EPOLL_CTL_ADD; else - op = UV__EPOLL_CTL_MOD; + op = EPOLL_CTL_MOD; /* XXX Future optimization: do EPOLL_CTL_MOD lazily if we stop watching * events, skip the syscall and squelch the events after epoll_wait(). @@ -849,10 +850,10 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { if (errno != EEXIST) abort(); - assert(op == UV__EPOLL_CTL_ADD); + assert(op == EPOLL_CTL_ADD); /* We've reactivated a file descriptor that's been watched before. */ - if (epoll_ctl(loop->ep, UV__EPOLL_CTL_MOD, w->fd, &e)) + if (epoll_ctl(loop->ep, EPOLL_CTL_MOD, w->fd, &e)) abort(); } @@ -934,7 +935,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) { * Ignore all errors because we may be racing with another thread * when the file descriptor is closed. */ - epoll_ctl(loop->ep, UV__EPOLL_CTL_DEL, fd, pe); + epoll_ctl(loop->ep, EPOLL_CTL_DEL, fd, pe); continue; } diff --git a/deps/uv/src/unix/pipe.c b/deps/uv/src/unix/pipe.c index 0718bc81b86f63..e450a30e9c7e0c 100644 --- a/deps/uv/src/unix/pipe.c +++ b/deps/uv/src/unix/pipe.c @@ -132,11 +132,21 @@ void uv__pipe_close(uv_pipe_t* handle) { int uv_pipe_open(uv_pipe_t* handle, uv_file fd) { + int flags; + int mode; int err; + flags = 0; if (uv__fd_exists(handle->loop, fd)) return UV_EEXIST; + do + mode = fcntl(fd, F_GETFL); + while (mode == -1 && errno == EINTR); + + if (mode == -1) + return UV__ERR(errno); /* according to docs, must be EBADF */ + err = uv__nonblock(fd, 1); if (err) return err; @@ -147,9 +157,13 @@ int uv_pipe_open(uv_pipe_t* handle, uv_file fd) { return err; #endif /* defined(__APPLE__) */ - return uv__stream_open((uv_stream_t*)handle, - fd, - UV_HANDLE_READABLE | UV_HANDLE_WRITABLE); + mode &= O_ACCMODE; + if (mode != O_WRONLY) + flags |= UV_HANDLE_READABLE; + if (mode != O_RDONLY) + flags |= UV_HANDLE_WRITABLE; + + return uv__stream_open((uv_stream_t*)handle, fd, flags); } diff --git a/deps/uv/src/unix/stream.c b/deps/uv/src/unix/stream.c index 5a96b66b17bfd5..2e84eeeb82877e 100644 --- a/deps/uv/src/unix/stream.c +++ b/deps/uv/src/unix/stream.c @@ -1676,6 +1676,7 @@ void uv__stream_close(uv_stream_t* handle) { uv__io_close(handle->loop, &handle->io_watcher); uv_read_stop(handle); uv__handle_stop(handle); + handle->flags &= ~(UV_HANDLE_READABLE | UV_HANDLE_WRITABLE); if (handle->io_watcher.fd != -1) { /* Don't close stdio file descriptors. Nothing good comes from it. */ diff --git a/deps/uv/src/unix/thread.c b/deps/uv/src/unix/thread.c index 303bc6ec84f341..29004707a41947 100644 --- a/deps/uv/src/unix/thread.c +++ b/deps/uv/src/unix/thread.c @@ -44,108 +44,119 @@ #undef NANOSEC #define NANOSEC ((uint64_t) 1e9) +#if defined(PTHREAD_BARRIER_SERIAL_THREAD) +STATIC_ASSERT(sizeof(uv_barrier_t) == sizeof(pthread_barrier_t)); +#endif -#if defined(UV__PTHREAD_BARRIER_FALLBACK) -/* TODO: support barrier_attr */ -int pthread_barrier_init(pthread_barrier_t* barrier, - const void* barrier_attr, - unsigned count) { +/* Note: guard clauses should match uv_barrier_t's in include/uv/uv-unix.h. */ +#if defined(_AIX) || !defined(PTHREAD_BARRIER_SERIAL_THREAD) +int uv_barrier_init(uv_barrier_t* barrier, unsigned int count) { + struct _uv_barrier* b; int rc; - _uv_barrier* b; if (barrier == NULL || count == 0) - return EINVAL; - - if (barrier_attr != NULL) - return ENOTSUP; + return UV_EINVAL; b = uv__malloc(sizeof(*b)); if (b == NULL) - return ENOMEM; + return UV_ENOMEM; b->in = 0; b->out = 0; b->threshold = count; - if ((rc = pthread_mutex_init(&b->mutex, NULL)) != 0) + rc = uv_mutex_init(&b->mutex); + if (rc != 0) goto error2; - if ((rc = pthread_cond_init(&b->cond, NULL)) != 0) + + rc = uv_cond_init(&b->cond); + if (rc != 0) goto error; barrier->b = b; return 0; error: - pthread_mutex_destroy(&b->mutex); + uv_mutex_destroy(&b->mutex); error2: uv__free(b); return rc; } -int pthread_barrier_wait(pthread_barrier_t* barrier) { - int rc; - _uv_barrier* b; + +int uv_barrier_wait(uv_barrier_t* barrier) { + struct _uv_barrier* b; + int last; if (barrier == NULL || barrier->b == NULL) - return EINVAL; + return UV_EINVAL; b = barrier->b; - /* Lock the mutex*/ - if ((rc = pthread_mutex_lock(&b->mutex)) != 0) - return rc; + uv_mutex_lock(&b->mutex); - /* Increment the count. If this is the first thread to reach the threshold, - wake up waiters, unlock the mutex, then return - PTHREAD_BARRIER_SERIAL_THREAD. */ if (++b->in == b->threshold) { b->in = 0; - b->out = b->threshold - 1; - rc = pthread_cond_signal(&b->cond); - assert(rc == 0); - - pthread_mutex_unlock(&b->mutex); - return PTHREAD_BARRIER_SERIAL_THREAD; + b->out = b->threshold; + uv_cond_signal(&b->cond); + } else { + do + uv_cond_wait(&b->cond, &b->mutex); + while (b->in != 0); } - /* Otherwise, wait for other threads until in is set to 0, - then return 0 to indicate this is not the first thread. */ - do { - if ((rc = pthread_cond_wait(&b->cond, &b->mutex)) != 0) - break; - } while (b->in != 0); - - /* mark thread exit */ - b->out--; - pthread_cond_signal(&b->cond); - pthread_mutex_unlock(&b->mutex); - return rc; + + last = (--b->out == 0); + if (!last) + uv_cond_signal(&b->cond); /* Not needed for last thread. */ + + uv_mutex_unlock(&b->mutex); + return last; } -int pthread_barrier_destroy(pthread_barrier_t* barrier) { - int rc; - _uv_barrier* b; - if (barrier == NULL || barrier->b == NULL) - return EINVAL; +void uv_barrier_destroy(uv_barrier_t* barrier) { + struct _uv_barrier* b; b = barrier->b; + uv_mutex_lock(&b->mutex); - if ((rc = pthread_mutex_lock(&b->mutex)) != 0) - return rc; + assert(b->in == 0); + assert(b->out == 0); - if (b->in > 0 || b->out > 0) - rc = EBUSY; - - pthread_mutex_unlock(&b->mutex); + if (b->in != 0 || b->out != 0) + abort(); - if (rc) - return rc; + uv_mutex_unlock(&b->mutex); + uv_mutex_destroy(&b->mutex); + uv_cond_destroy(&b->cond); - pthread_cond_destroy(&b->cond); - pthread_mutex_destroy(&b->mutex); uv__free(barrier->b); barrier->b = NULL; - return 0; } + +#else + +int uv_barrier_init(uv_barrier_t* barrier, unsigned int count) { + return UV__ERR(pthread_barrier_init(barrier, NULL, count)); +} + + +int uv_barrier_wait(uv_barrier_t* barrier) { + int rc; + + rc = pthread_barrier_wait(barrier); + if (rc != 0) + if (rc != PTHREAD_BARRIER_SERIAL_THREAD) + abort(); + + return rc == PTHREAD_BARRIER_SERIAL_THREAD; +} + + +void uv_barrier_destroy(uv_barrier_t* barrier) { + if (pthread_barrier_destroy(barrier)) + abort(); +} + #endif @@ -771,25 +782,6 @@ int uv_cond_timedwait(uv_cond_t* cond, uv_mutex_t* mutex, uint64_t timeout) { } -int uv_barrier_init(uv_barrier_t* barrier, unsigned int count) { - return UV__ERR(pthread_barrier_init(barrier, NULL, count)); -} - - -void uv_barrier_destroy(uv_barrier_t* barrier) { - if (pthread_barrier_destroy(barrier)) - abort(); -} - - -int uv_barrier_wait(uv_barrier_t* barrier) { - int r = pthread_barrier_wait(barrier); - if (r && r != PTHREAD_BARRIER_SERIAL_THREAD) - abort(); - return r == PTHREAD_BARRIER_SERIAL_THREAD; -} - - int uv_key_create(uv_key_t* key) { return UV__ERR(pthread_key_create(key, NULL)); } diff --git a/deps/uv/src/unix/tty.c b/deps/uv/src/unix/tty.c index 1b92b5c914ce9e..74d3d75d7615d9 100644 --- a/deps/uv/src/unix/tty.c +++ b/deps/uv/src/unix/tty.c @@ -92,13 +92,15 @@ static int uv__tty_is_slave(const int fd) { return result; } -int uv_tty_init(uv_loop_t* loop, uv_tty_t* tty, int fd, int readable) { +int uv_tty_init(uv_loop_t* loop, uv_tty_t* tty, int fd, int unused) { uv_handle_type type; int flags; int newfd; int r; int saved_flags; + int mode; char path[256]; + (void)unused; /* deprecated parameter is no longer needed */ /* File descriptors that refer to files cannot be monitored with epoll. * That restriction also applies to character devices like /dev/random @@ -111,6 +113,15 @@ int uv_tty_init(uv_loop_t* loop, uv_tty_t* tty, int fd, int readable) { flags = 0; newfd = -1; + /* Save the fd flags in case we need to restore them due to an error. */ + do + saved_flags = fcntl(fd, F_GETFL); + while (saved_flags == -1 && errno == EINTR); + + if (saved_flags == -1) + return UV__ERR(errno); + mode = saved_flags & O_ACCMODE; + /* Reopen the file descriptor when it refers to a tty. This lets us put the * tty in non-blocking mode without affecting other processes that share it * with us. @@ -128,13 +139,13 @@ int uv_tty_init(uv_loop_t* loop, uv_tty_t* tty, int fd, int readable) { * slave device. */ if (uv__tty_is_slave(fd) && ttyname_r(fd, path, sizeof(path)) == 0) - r = uv__open_cloexec(path, O_RDWR); + r = uv__open_cloexec(path, mode); else r = -1; if (r < 0) { /* fallback to using blocking writes */ - if (!readable) + if (mode != O_RDONLY) flags |= UV_HANDLE_BLOCKING_WRITES; goto skip; } @@ -154,22 +165,6 @@ int uv_tty_init(uv_loop_t* loop, uv_tty_t* tty, int fd, int readable) { fd = newfd; } -#if defined(__APPLE__) - /* Save the fd flags in case we need to restore them due to an error. */ - do - saved_flags = fcntl(fd, F_GETFL); - while (saved_flags == -1 && errno == EINTR); - - if (saved_flags == -1) { - if (newfd != -1) - uv__close(newfd); - return UV__ERR(errno); - } -#endif - - /* Pacify the compiler. */ - (void) &saved_flags; - skip: uv__stream_init(loop, (uv_stream_t*) tty, UV_TTY); @@ -194,9 +189,9 @@ int uv_tty_init(uv_loop_t* loop, uv_tty_t* tty, int fd, int readable) { } #endif - if (readable) + if (mode != O_WRONLY) flags |= UV_HANDLE_READABLE; - else + if (mode != O_RDONLY) flags |= UV_HANDLE_WRITABLE; uv__stream_open((uv_stream_t*) tty, fd, flags); diff --git a/deps/uv/src/uv-common.h b/deps/uv/src/uv-common.h index 3289950d009ccd..5555f83aee4864 100644 --- a/deps/uv/src/uv-common.h +++ b/deps/uv/src/uv-common.h @@ -164,8 +164,15 @@ void uv__fs_poll_close(uv_fs_poll_t* handle); int uv__getaddrinfo_translate_error(int sys_err); /* EAI_* error. */ +enum uv__work_kind { + UV__WORK_CPU, + UV__WORK_FAST_IO, + UV__WORK_SLOW_IO +}; + void uv__work_submit(uv_loop_t* loop, struct uv__work *w, + enum uv__work_kind kind, void (*work)(struct uv__work *w), void (*done)(struct uv__work *w, int status)); diff --git a/deps/uv/src/win/core.c b/deps/uv/src/win/core.c index afdf01e7878913..bf80d77e273920 100644 --- a/deps/uv/src/win/core.c +++ b/deps/uv/src/win/core.c @@ -381,6 +381,57 @@ int uv_backend_timeout(const uv_loop_t* loop) { } +static void uv__poll_wine(uv_loop_t* loop, DWORD timeout) { + DWORD bytes; + ULONG_PTR key; + OVERLAPPED* overlapped; + uv_req_t* req; + int repeat; + uint64_t timeout_time; + + timeout_time = loop->time + timeout; + + for (repeat = 0; ; repeat++) { + GetQueuedCompletionStatus(loop->iocp, + &bytes, + &key, + &overlapped, + timeout); + + if (overlapped) { + /* Package was dequeued */ + req = uv_overlapped_to_req(overlapped); + uv_insert_pending_req(loop, req); + + /* Some time might have passed waiting for I/O, + * so update the loop time here. + */ + uv_update_time(loop); + } else if (GetLastError() != WAIT_TIMEOUT) { + /* Serious error */ + uv_fatal_error(GetLastError(), "GetQueuedCompletionStatus"); + } else if (timeout > 0) { + /* GetQueuedCompletionStatus can occasionally return a little early. + * Make sure that the desired timeout target time is reached. + */ + uv_update_time(loop); + if (timeout_time > loop->time) { + timeout = (DWORD)(timeout_time - loop->time); + /* The first call to GetQueuedCompletionStatus should return very + * close to the target time and the second should reach it, but + * this is not stated in the documentation. To make sure a busy + * loop cannot happen, the timeout is increased exponentially + * starting on the third round. + */ + timeout += repeat ? (1 << (repeat - 1)) : 0; + continue; + } + } + break; + } +} + + static void uv__poll(uv_loop_t* loop, DWORD timeout) { BOOL success; uv_req_t* req; @@ -473,7 +524,11 @@ int uv_run(uv_loop_t *loop, uv_run_mode mode) { if ((mode == UV_RUN_ONCE && !ran_pending) || mode == UV_RUN_DEFAULT) timeout = uv_backend_timeout(loop); - uv__poll(loop, timeout); + if (pGetQueuedCompletionStatusEx) + uv__poll(loop, timeout); + else + uv__poll_wine(loop, timeout); + uv_check_invoke(loop); uv_process_endgames(loop); diff --git a/deps/uv/src/win/fs-event.c b/deps/uv/src/win/fs-event.c index 226e6e7aee6c09..25809ea4f2f605 100644 --- a/deps/uv/src/win/fs-event.c +++ b/deps/uv/src/win/fs-event.c @@ -83,7 +83,7 @@ static void uv_relative_path(const WCHAR* filename, static int uv_split_path(const WCHAR* filename, WCHAR** dir, WCHAR** file) { size_t len, i; - + if (filename == NULL) { if (dir != NULL) *dir = NULL; diff --git a/deps/uv/src/win/fs.c b/deps/uv/src/win/fs.c index 71b6a81a0d5a8a..812c1a6de583d2 100644 --- a/deps/uv/src/win/fs.c +++ b/deps/uv/src/win/fs.c @@ -55,7 +55,11 @@ do { \ if (cb != NULL) { \ uv__req_register(loop, req); \ - uv__work_submit(loop, &req->work_req, uv__fs_work, uv__fs_done); \ + uv__work_submit(loop, \ + &req->work_req, \ + UV__WORK_FAST_IO, \ + uv__fs_work, \ + uv__fs_done); \ return 0; \ } else { \ uv__fs_work(&req->work_req); \ @@ -1513,10 +1517,10 @@ static void fs__fchmod(uv_fs_t* req) { SET_REQ_WIN32_ERROR(req, pRtlNtStatusToDosError(nt_status)); goto fchmod_cleanup; } - + /* Test if the Archive attribute is cleared */ if ((file_info.FileAttributes & FILE_ATTRIBUTE_ARCHIVE) == 0) { - /* Set Archive flag, otherwise setting or clearing the read-only + /* Set Archive flag, otherwise setting or clearing the read-only flag will not work */ file_info.FileAttributes |= FILE_ATTRIBUTE_ARCHIVE; nt_status = pNtSetInformationFile(handle, diff --git a/deps/uv/src/win/getaddrinfo.c b/deps/uv/src/win/getaddrinfo.c index 063b4937cdad24..614ea8e376e8af 100644 --- a/deps/uv/src/win/getaddrinfo.c +++ b/deps/uv/src/win/getaddrinfo.c @@ -368,6 +368,7 @@ int uv_getaddrinfo(uv_loop_t* loop, if (getaddrinfo_cb) { uv__work_submit(loop, &req->work_req, + UV__WORK_SLOW_IO, uv__getaddrinfo_work, uv__getaddrinfo_done); return 0; diff --git a/deps/uv/src/win/getnameinfo.c b/deps/uv/src/win/getnameinfo.c index 71785a9fa65718..b3773380c21d70 100644 --- a/deps/uv/src/win/getnameinfo.c +++ b/deps/uv/src/win/getnameinfo.c @@ -145,6 +145,7 @@ int uv_getnameinfo(uv_loop_t* loop, if (getnameinfo_cb) { uv__work_submit(loop, &req->work_req, + UV__WORK_SLOW_IO, uv__getnameinfo_work, uv__getnameinfo_done); return 0; diff --git a/deps/uv/src/win/pipe.c b/deps/uv/src/win/pipe.c index 382290e69f4afa..9a3cbc8a1e26e1 100644 --- a/deps/uv/src/win/pipe.c +++ b/deps/uv/src/win/pipe.c @@ -2347,7 +2347,7 @@ int uv_pipe_chmod(uv_pipe_t* handle, int mode) { error = GetLastError(); goto clean_sid; } - + memset(&ea, 0, sizeof(EXPLICIT_ACCESS)); if (mode & UV_READABLE) ea.grfAccessPermissions |= GENERIC_READ | FILE_WRITE_ATTRIBUTES; diff --git a/deps/uv/src/win/req.c b/deps/uv/src/win/req.c deleted file mode 100644 index 111cc5e28936fc..00000000000000 --- a/deps/uv/src/win/req.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#include - -#include "uv.h" -#include "internal.h" diff --git a/deps/uv/src/win/thread.c b/deps/uv/src/win/thread.c index 6e41dcd8a087da..56ca41aab0b759 100644 --- a/deps/uv/src/win/thread.c +++ b/deps/uv/src/win/thread.c @@ -118,7 +118,7 @@ int uv_thread_create(uv_thread_t *tid, void (*entry)(void *arg), void *arg) { ctx->arg = arg; /* Create the thread in suspended state so we have a chance to pass - * its own creation handle to it */ + * its own creation handle to it */ thread = (HANDLE) _beginthreadex(NULL, 0, uv__thread_start, diff --git a/deps/uv/src/win/tty.c b/deps/uv/src/win/tty.c index d62aafb7d8c921..32ccf74ca8cb6a 100644 --- a/deps/uv/src/win/tty.c +++ b/deps/uv/src/win/tty.c @@ -172,9 +172,12 @@ void uv_console_init(void) { } -int uv_tty_init(uv_loop_t* loop, uv_tty_t* tty, uv_file fd, int readable) { +int uv_tty_init(uv_loop_t* loop, uv_tty_t* tty, uv_file fd, int unused) { + BOOL readable; + DWORD NumberOfEvents; HANDLE handle; CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info; + (void)unused; uv__once_init(); handle = (HANDLE) uv__get_osfhandle(fd); @@ -199,6 +202,7 @@ int uv_tty_init(uv_loop_t* loop, uv_tty_t* tty, uv_file fd, int readable) { fd = -1; } + readable = GetNumberOfConsoleInputEvents(handle, &NumberOfEvents); if (!readable) { /* Obtain the screen buffer info with the output handle. */ if (!GetConsoleScreenBufferInfo(handle, &screen_buffer_info)) { @@ -382,12 +386,6 @@ int uv_tty_set_mode(uv_tty_t* tty, uv_tty_mode_t mode) { } -int uv_is_tty(uv_file file) { - DWORD result; - return GetConsoleMode((HANDLE) _get_osfhandle(file), &result) != 0; -} - - int uv_tty_get_winsize(uv_tty_t* tty, int* width, int* height) { CONSOLE_SCREEN_BUFFER_INFO info; @@ -1035,6 +1033,7 @@ int uv_tty_read_stop(uv_tty_t* handle) { /* Cancel raw read. Write some bullshit event to force the console wait to * return. */ memset(&record, 0, sizeof record); + record.EventType = FOCUS_EVENT; if (!WriteConsoleInputW(handle->handle, &record, 1, &written)) { return GetLastError(); } @@ -2181,14 +2180,14 @@ void uv_process_tty_write_req(uv_loop_t* loop, uv_tty_t* handle, void uv_tty_close(uv_tty_t* handle) { assert(handle->u.fd == -1 || handle->u.fd > 2); + if (handle->flags & UV_HANDLE_READING) + uv_tty_read_stop(handle); + if (handle->u.fd == -1) CloseHandle(handle->handle); else close(handle->u.fd); - if (handle->flags & UV_HANDLE_READING) - uv_tty_read_stop(handle); - handle->u.fd = -1; handle->handle = INVALID_HANDLE_VALUE; handle->flags &= ~(UV_HANDLE_READABLE | UV_HANDLE_WRITABLE); diff --git a/deps/uv/src/win/udp.c b/deps/uv/src/win/udp.c index 402aeea6666b5a..37df849f8faf20 100644 --- a/deps/uv/src/win/udp.c +++ b/deps/uv/src/win/udp.c @@ -366,7 +366,7 @@ int uv__udp_recv_start(uv_udp_t* handle, uv_alloc_cb alloc_cb, int err; if (handle->flags & UV_HANDLE_READING) { - return WSAEALREADY; + return UV_EALREADY; } err = uv_udp_maybe_bind(handle, @@ -374,7 +374,7 @@ int uv__udp_recv_start(uv_udp_t* handle, uv_alloc_cb alloc_cb, sizeof(uv_addr_ip4_any_), 0); if (err) - return err; + return uv_translate_sys_error(err); handle->flags |= UV_HANDLE_READING; INCREASE_ACTIVE_COUNT(loop, handle); diff --git a/deps/uv/src/win/winapi.c b/deps/uv/src/win/winapi.c index 0fd598eacb4503..2c09b448a95c01 100644 --- a/deps/uv/src/win/winapi.c +++ b/deps/uv/src/win/winapi.c @@ -34,6 +34,9 @@ sNtQueryVolumeInformationFile pNtQueryVolumeInformationFile; sNtQueryDirectoryFile pNtQueryDirectoryFile; sNtQuerySystemInformation pNtQuerySystemInformation; +/* Kernel32 function pointers */ +sGetQueuedCompletionStatusEx pGetQueuedCompletionStatusEx; + /* Powrprof.dll function pointer */ sPowerRegisterSuspendResumeNotification pPowerRegisterSuspendResumeNotification; @@ -45,6 +48,7 @@ void uv_winapi_init(void) { HMODULE ntdll_module; HMODULE powrprof_module; HMODULE user32_module; + HMODULE kernel32_module; ntdll_module = GetModuleHandleA("ntdll.dll"); if (ntdll_module == NULL) { @@ -98,6 +102,15 @@ void uv_winapi_init(void) { uv_fatal_error(GetLastError(), "GetProcAddress"); } + kernel32_module = GetModuleHandleA("kernel32.dll"); + if (kernel32_module == NULL) { + uv_fatal_error(GetLastError(), "GetModuleHandleA"); + } + + pGetQueuedCompletionStatusEx = (sGetQueuedCompletionStatusEx) GetProcAddress( + kernel32_module, + "GetQueuedCompletionStatusEx"); + powrprof_module = LoadLibraryA("powrprof.dll"); if (powrprof_module != NULL) { pPowerRegisterSuspendResumeNotification = (sPowerRegisterSuspendResumeNotification) diff --git a/deps/uv/src/win/winapi.h b/deps/uv/src/win/winapi.h index d0fcfd8e7ae021..cfbac52eb1d6f4 100644 --- a/deps/uv/src/win/winapi.h +++ b/deps/uv/src/win/winapi.h @@ -4642,6 +4642,14 @@ typedef NTSTATUS (NTAPI *sNtQueryDirectoryFile) # define ERROR_MUI_FILE_NOT_LOADED 15105 #endif +typedef BOOL (WINAPI *sGetQueuedCompletionStatusEx) + (HANDLE CompletionPort, + LPOVERLAPPED_ENTRY lpCompletionPortEntries, + ULONG ulCount, + PULONG ulNumEntriesRemoved, + DWORD dwMilliseconds, + BOOL fAlertable); + /* from powerbase.h */ #ifndef DEVICE_NOTIFY_CALLBACK # define DEVICE_NOTIFY_CALLBACK 2 @@ -4704,6 +4712,9 @@ extern sNtQueryVolumeInformationFile pNtQueryVolumeInformationFile; extern sNtQueryDirectoryFile pNtQueryDirectoryFile; extern sNtQuerySystemInformation pNtQuerySystemInformation; +/* Kernel32 function pointers */ +extern sGetQueuedCompletionStatusEx pGetQueuedCompletionStatusEx; + /* Powrprof.dll function pointer */ extern sPowerRegisterSuspendResumeNotification pPowerRegisterSuspendResumeNotification; diff --git a/deps/uv/test/runner-win.c b/deps/uv/test/runner-win.c index ce972705470019..aa52d7cc5aa9a6 100644 --- a/deps/uv/test/runner-win.c +++ b/deps/uv/test/runner-win.c @@ -228,7 +228,7 @@ int process_copy_output(process_info_t* p, FILE* stream) { while (fgets(buf, sizeof(buf), f) != NULL) print_lines(buf, strlen(buf), stream); - + if (ferror(f)) return -1; diff --git a/deps/uv/test/test-barrier.c b/deps/uv/test/test-barrier.c index dfd2dbdef1b1d0..89858db5711482 100644 --- a/deps/uv/test/test-barrier.c +++ b/deps/uv/test/test-barrier.c @@ -104,3 +104,45 @@ TEST_IMPL(barrier_3) { return 0; } + +static void serial_worker(void* data) { + uv_barrier_t* barrier; + + barrier = data; + if (uv_barrier_wait(barrier) > 0) + uv_barrier_destroy(barrier); + + uv_sleep(100); /* Wait a bit before terminating. */ +} + +/* Ensure that uv_barrier_wait returns positive only after all threads have + * exited the barrier. If this value is returned too early and the barrier is + * destroyed prematurely, then this test may see a crash. */ +TEST_IMPL(barrier_serial_thread) { + uv_thread_t threads[4]; + uv_barrier_t barrier; + unsigned i; + + ASSERT(0 == uv_barrier_init(&barrier, ARRAY_SIZE(threads) + 1)); + + for (i = 0; i < ARRAY_SIZE(threads); ++i) + ASSERT(0 == uv_thread_create(&threads[i], serial_worker, &barrier)); + + if (uv_barrier_wait(&barrier) > 0) + uv_barrier_destroy(&barrier); + + for (i = 0; i < ARRAY_SIZE(threads); ++i) + ASSERT(0 == uv_thread_join(&threads[i])); + + return 0; +} + +/* Single thread uv_barrier_wait should return correct return value. */ +TEST_IMPL(barrier_serial_thread_single) { + uv_barrier_t barrier; + + ASSERT(0 == uv_barrier_init(&barrier, 1)); + ASSERT(0 < uv_barrier_wait(&barrier)); + uv_barrier_destroy(&barrier); + return 0; +} diff --git a/deps/uv/test/test-condvar.c b/deps/uv/test/test-condvar.c index ec60f16403ad0b..50f3c047c00cd2 100644 --- a/deps/uv/test/test-condvar.c +++ b/deps/uv/test/test-condvar.c @@ -259,7 +259,7 @@ TEST_IMPL(condvar_5) { * https://msdn.microsoft.com/en-us/library/ms687069(VS.85).aspx */ elapsed = after - before; ASSERT(0.75 * timeout <= elapsed); /* 1.0 too large for Windows. */ - ASSERT(elapsed <= 1.5 * timeout); /* 1.1 too small for OSX. */ + ASSERT(elapsed <= 5.0 * timeout); /* MacOS has reported failures up to 1.75. */ worker_config_destroy(&wc); diff --git a/deps/uv/test/test-fork.c b/deps/uv/test/test-fork.c index 2a1ddc497a133f..f47ae3e656299e 100644 --- a/deps/uv/test/test-fork.c +++ b/deps/uv/test/test-fork.c @@ -283,6 +283,7 @@ TEST_IMPL(fork_signal_to_child_closed) { int sync_pipe[2]; int sync_pipe2[2]; char sync_buf[1]; + int r; fork_signal_cb_called = 0; /* reset */ @@ -326,9 +327,10 @@ TEST_IMPL(fork_signal_to_child_closed) { /* Don't run the loop. Wait for the parent to call us */ printf("Waiting on parent in child\n"); /* Wait for parent. read may fail if the parent tripped an ASSERT - and exited, so this isn't in an ASSERT. + and exited, so this ASSERT is generous. */ - read(sync_pipe2[0], sync_buf, 1); + r = read(sync_pipe2[0], sync_buf, 1); + ASSERT(-1 <= r && r <= 1); ASSERT(0 == fork_signal_cb_called); printf("Exiting child \n"); /* Note that we're deliberately not running the loop diff --git a/deps/uv/test/test-fs.c b/deps/uv/test/test-fs.c index 9c1e8bec205f5d..01f5a7b0236514 100644 --- a/deps/uv/test/test-fs.c +++ b/deps/uv/test/test-fs.c @@ -26,6 +26,7 @@ #include /* memset */ #include #include +#include /* INT_MAX, PATH_MAX, IOV_MAX */ /* FIXME we shouldn't need to branch in this file */ #if defined(__unix__) || defined(__POSIX__) || \ @@ -120,6 +121,31 @@ static char test_buf[] = "test-buffer\n"; static char test_buf2[] = "second-buffer\n"; static uv_buf_t iov; +#ifdef _WIN32 +int uv_test_getiovmax(void) { + return INT32_MAX; /* Emulated by libuv, so no real limit. */ +} +#else +int uv_test_getiovmax(void) { +#if defined(IOV_MAX) + return IOV_MAX; +#elif defined(_SC_IOV_MAX) + static int iovmax = -1; + if (iovmax == -1) { + iovmax = sysconf(_SC_IOV_MAX); + /* On some embedded devices (arm-linux-uclibc based ip camera), + * sysconf(_SC_IOV_MAX) can not get the correct value. The return + * value is -1 and the errno is EINPROGRESS. Degrade the value to 1. + */ + if (iovmax == -1) iovmax = 1; + } + return iovmax; +#else + return 1024; +#endif +} +#endif + #ifdef _WIN32 /* * This tag and guid have no special meaning, and don't conflict with @@ -2752,19 +2778,44 @@ TEST_IMPL(fs_write_multiple_bufs) { memset(buf, 0, sizeof(buf)); memset(buf2, 0, sizeof(buf2)); + /* Read the strings back to separate buffers. */ + iovs[0] = uv_buf_init(buf, sizeof(test_buf)); + iovs[1] = uv_buf_init(buf2, sizeof(test_buf2)); + ASSERT(lseek(open_req1.result, 0, SEEK_CUR) == 0); + r = uv_fs_read(NULL, &read_req, open_req1.result, iovs, 2, -1, NULL); + ASSERT(r >= 0); + ASSERT(read_req.result == sizeof(test_buf) + sizeof(test_buf2)); + ASSERT(strcmp(buf, test_buf) == 0); + ASSERT(strcmp(buf2, test_buf2) == 0); + uv_fs_req_cleanup(&read_req); + + iov = uv_buf_init(buf, sizeof(buf)); + r = uv_fs_read(NULL, &read_req, open_req1.result, &iov, 1, -1, NULL); + ASSERT(r == 0); + ASSERT(read_req.result == 0); + uv_fs_req_cleanup(&read_req); + /* Read the strings back to separate buffers. */ iovs[0] = uv_buf_init(buf, sizeof(test_buf)); iovs[1] = uv_buf_init(buf2, sizeof(test_buf2)); r = uv_fs_read(NULL, &read_req, open_req1.result, iovs, 2, 0, NULL); ASSERT(r >= 0); - ASSERT(read_req.result >= 0); + if (read_req.result == sizeof(test_buf)) { + /* Infer that preadv is not available. */ + uv_fs_req_cleanup(&read_req); + r = uv_fs_read(NULL, &read_req, open_req1.result, &iovs[1], 1, read_req.result, NULL); + ASSERT(r >= 0); + ASSERT(read_req.result == sizeof(test_buf2)); + } else { + ASSERT(read_req.result == sizeof(test_buf) + sizeof(test_buf2)); + } ASSERT(strcmp(buf, test_buf) == 0); ASSERT(strcmp(buf2, test_buf2) == 0); uv_fs_req_cleanup(&read_req); iov = uv_buf_init(buf, sizeof(buf)); r = uv_fs_read(NULL, &read_req, open_req1.result, &iov, 1, - read_req.result, NULL); + sizeof(test_buf) + sizeof(test_buf2), NULL); ASSERT(r == 0); ASSERT(read_req.result == 0); uv_fs_req_cleanup(&read_req); @@ -2783,12 +2834,15 @@ TEST_IMPL(fs_write_multiple_bufs) { TEST_IMPL(fs_write_alotof_bufs) { - const size_t iovcount = 54321; + size_t iovcount; + size_t iovmax; uv_buf_t* iovs; char* buffer; size_t index; int r; + iovcount = 54321; + /* Setup. */ unlink("test_file"); @@ -2796,6 +2850,7 @@ TEST_IMPL(fs_write_alotof_bufs) { iovs = malloc(sizeof(*iovs) * iovcount); ASSERT(iovs != NULL); + iovmax = uv_test_getiovmax(); r = uv_fs_open(NULL, &open_req1, @@ -2829,7 +2884,10 @@ TEST_IMPL(fs_write_alotof_bufs) { iovs[index] = uv_buf_init(buffer + index * sizeof(test_buf), sizeof(test_buf)); - r = uv_fs_read(NULL, &read_req, open_req1.result, iovs, iovcount, 0, NULL); + ASSERT(lseek(open_req1.result, 0, SEEK_SET) == 0); + r = uv_fs_read(NULL, &read_req, open_req1.result, iovs, iovcount, -1, NULL); + if (iovcount > iovmax) + iovcount = iovmax; ASSERT(r >= 0); ASSERT((size_t)read_req.result == sizeof(test_buf) * iovcount); @@ -2841,13 +2899,14 @@ TEST_IMPL(fs_write_alotof_bufs) { uv_fs_req_cleanup(&read_req); free(buffer); + ASSERT(lseek(open_req1.result, write_req.result, SEEK_SET) == write_req.result); iov = uv_buf_init(buf, sizeof(buf)); r = uv_fs_read(NULL, &read_req, open_req1.result, &iov, 1, - read_req.result, + -1, NULL); ASSERT(r == 0); ASSERT(read_req.result == 0); @@ -2868,14 +2927,19 @@ TEST_IMPL(fs_write_alotof_bufs) { TEST_IMPL(fs_write_alotof_bufs_with_offset) { - const size_t iovcount = 54321; + size_t iovcount; + size_t iovmax; uv_buf_t* iovs; char* buffer; size_t index; int r; int64_t offset; - char* filler = "0123456789"; - int filler_len = strlen(filler); + char* filler; + int filler_len; + + filler = "0123456789"; + filler_len = strlen(filler); + iovcount = 54321; /* Setup. */ unlink("test_file"); @@ -2884,6 +2948,7 @@ TEST_IMPL(fs_write_alotof_bufs_with_offset) { iovs = malloc(sizeof(*iovs) * iovcount); ASSERT(iovs != NULL); + iovmax = uv_test_getiovmax(); r = uv_fs_open(NULL, &open_req1, @@ -2927,6 +2992,10 @@ TEST_IMPL(fs_write_alotof_bufs_with_offset) { r = uv_fs_read(NULL, &read_req, open_req1.result, iovs, iovcount, offset, NULL); ASSERT(r >= 0); + if (r == sizeof(test_buf)) + iovcount = 1; /* Infer that preadv is not available. */ + else if (iovcount > iovmax) + iovcount = iovmax; ASSERT((size_t)read_req.result == sizeof(test_buf) * iovcount); for (index = 0; index < iovcount; ++index) @@ -2940,7 +3009,7 @@ TEST_IMPL(fs_write_alotof_bufs_with_offset) { r = uv_fs_stat(NULL, &stat_req, "test_file", NULL); ASSERT(r == 0); ASSERT((int64_t)((uv_stat_t*)stat_req.ptr)->st_size == - offset + (int64_t)(iovcount * sizeof(test_buf))); + offset + (int64_t)write_req.result); uv_fs_req_cleanup(&stat_req); iov = uv_buf_init(buf, sizeof(buf)); @@ -2949,7 +3018,7 @@ TEST_IMPL(fs_write_alotof_bufs_with_offset) { open_req1.result, &iov, 1, - read_req.result + offset, + offset + write_req.result, NULL); ASSERT(r == 0); ASSERT(read_req.result == 0); @@ -2969,6 +3038,175 @@ TEST_IMPL(fs_write_alotof_bufs_with_offset) { } +#ifdef _WIN32 + +TEST_IMPL(fs_partial_read) { + RETURN_SKIP("Test not implemented on Windows."); +} + +TEST_IMPL(fs_partial_write) { + RETURN_SKIP("Test not implemented on Windows."); +} + +#else /* !_WIN32 */ + +struct thread_ctx { + pthread_t pid; + int fd; + char* data; + int size; + int interval; + int doread; +}; + +static void thread_main(void* arg) { + const struct thread_ctx* ctx; + int size; + char* data; + + ctx = (struct thread_ctx*)arg; + size = ctx->size; + data = ctx->data; + + while (size > 0) { + ssize_t result; + int nbytes; + nbytes = size < ctx->interval ? size : ctx->interval; + if (ctx->doread) { + result = write(ctx->fd, data, nbytes); + /* Should not see EINTR (or other errors) */ + ASSERT(result == nbytes); + } else { + result = read(ctx->fd, data, nbytes); + /* Should not see EINTR (or other errors), + * but might get a partial read if we are faster than the writer + */ + ASSERT(result > 0 && result <= nbytes); + } + + pthread_kill(ctx->pid, SIGUSR1); + size -= result; + data += result; + } +} + +static void sig_func(uv_signal_t* handle, int signum) { + uv_signal_stop(handle); +} + +static size_t uv_test_fs_buf_offset(uv_buf_t* bufs, size_t size) { + size_t offset; + /* Figure out which bufs are done */ + for (offset = 0; size > 0 && bufs[offset].len <= size; ++offset) + size -= bufs[offset].len; + + /* Fix a partial read/write */ + if (size > 0) { + bufs[offset].base += size; + bufs[offset].len -= size; + } + return offset; +} + +static void test_fs_partial(int doread) { + struct thread_ctx ctx; + uv_thread_t thread; + uv_signal_t signal; + int pipe_fds[2]; + size_t iovcount; + uv_buf_t* iovs; + char* buffer; + size_t index; + + iovcount = 54321; + + iovs = malloc(sizeof(*iovs) * iovcount); + ASSERT(iovs != NULL); + + ctx.pid = pthread_self(); + ctx.doread = doread; + ctx.interval = 1000; + ctx.size = sizeof(test_buf) * iovcount; + ctx.data = malloc(ctx.size); + ASSERT(ctx.data != NULL); + buffer = malloc(ctx.size); + ASSERT(buffer != NULL); + + for (index = 0; index < iovcount; ++index) + iovs[index] = uv_buf_init(buffer + index * sizeof(test_buf), sizeof(test_buf)); + + loop = uv_default_loop(); + + ASSERT(0 == uv_signal_init(loop, &signal)); + ASSERT(0 == uv_signal_start(&signal, sig_func, SIGUSR1)); + + ASSERT(0 == pipe(pipe_fds)); + + ctx.fd = pipe_fds[doread]; + ASSERT(0 == uv_thread_create(&thread, thread_main, &ctx)); + + if (doread) { + uv_buf_t* read_iovs; + int nread; + read_iovs = iovs; + nread = 0; + while (nread < ctx.size) { + int result; + result = uv_fs_read(loop, &read_req, pipe_fds[0], read_iovs, iovcount, -1, NULL); + if (result > 0) { + size_t read_iovcount; + read_iovcount = uv_test_fs_buf_offset(read_iovs, result); + read_iovs += read_iovcount; + iovcount -= read_iovcount; + nread += result; + } else { + ASSERT(result == UV_EINTR); + } + uv_fs_req_cleanup(&read_req); + } + } else { + int result; + result = uv_fs_write(loop, &write_req, pipe_fds[1], iovs, iovcount, -1, NULL); + ASSERT(write_req.result == result); + ASSERT(result == ctx.size); + uv_fs_req_cleanup(&write_req); + } + + ASSERT(0 == memcmp(buffer, ctx.data, ctx.size)); + + ASSERT(0 == uv_thread_join(&thread)); + ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT)); + + ASSERT(0 == close(pipe_fds[1])); + uv_close((uv_handle_t*) &signal, NULL); + + { /* Make sure we read everything that we wrote. */ + int result; + result = uv_fs_read(loop, &read_req, pipe_fds[0], iovs, 1, -1, NULL); + ASSERT(result == 0); + uv_fs_req_cleanup(&read_req); + } + ASSERT(0 == close(pipe_fds[0])); + + free(iovs); + free(buffer); + free(ctx.data); + + MAKE_VALGRIND_HAPPY(); +} + +TEST_IMPL(fs_partial_read) { + test_fs_partial(1); + return 0; +} + +TEST_IMPL(fs_partial_write) { + test_fs_partial(0); + return 0; +} + +#endif/* _WIN32 */ + TEST_IMPL(fs_read_write_null_arguments) { int r; @@ -3313,7 +3551,7 @@ TEST_IMPL(fs_exclusive_sharing_mode) { int call_icacls(const char* command, ...) { char icacls_command[1024]; va_list args; - + va_start(args, command); vsnprintf(icacls_command, ARRAYSIZE(icacls_command), command, args); va_end(args); @@ -3335,7 +3573,7 @@ TEST_IMPL(fs_open_readonly_acl) { attrib -r test_file_icacls del test_file_icacls */ - + /* Setup - clear the ACL and remove the file */ loop = uv_default_loop(); r = uv_os_get_passwd(&pwd); @@ -3345,7 +3583,7 @@ TEST_IMPL(fs_open_readonly_acl) { uv_fs_chmod(loop, &req, "test_file_icacls", S_IWUSR, NULL); unlink("test_file_icacls"); - /* Create the file */ + /* Create the file */ r = uv_fs_open(loop, &open_req1, "test_file_icacls", @@ -3370,7 +3608,7 @@ TEST_IMPL(fs_open_readonly_acl) { if (r != 0) { goto acl_cleanup; } - + /* Try opening the file */ r = uv_fs_open(NULL, &open_req1, "test_file_icacls", O_RDONLY, 0, NULL); if (r < 0) { diff --git a/deps/uv/test/test-handle-fileno.c b/deps/uv/test/test-handle-fileno.c index 3fe933adebdd87..8a093e2ea46e2c 100644 --- a/deps/uv/test/test-handle-fileno.c +++ b/deps/uv/test/test-handle-fileno.c @@ -27,7 +27,7 @@ static int get_tty_fd(void) { /* Make sure we have an FD that refers to a tty */ #ifdef _WIN32 HANDLE handle; - handle = CreateFileA("conout$", + handle = CreateFileA("conin$", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, @@ -107,11 +107,15 @@ TEST_IMPL(handle_fileno) { } else { r = uv_tty_init(loop, &tty, tty_fd, 0); ASSERT(r == 0); + ASSERT(uv_is_readable((uv_stream_t*) &tty)); + ASSERT(!uv_is_writable((uv_stream_t*) &tty)); r = uv_fileno((uv_handle_t*) &tty, &fd); ASSERT(r == 0); uv_close((uv_handle_t*) &tty, NULL); r = uv_fileno((uv_handle_t*) &tty, &fd); ASSERT(r == UV_EBADF); + ASSERT(!uv_is_readable((uv_stream_t*) &tty)); + ASSERT(!uv_is_writable((uv_stream_t*) &tty)); } uv_run(loop, UV_RUN_DEFAULT); diff --git a/deps/uv/test/test-list.h b/deps/uv/test/test-list.h index b501722d4dc83b..1bd062da3d2e4b 100644 --- a/deps/uv/test/test-list.h +++ b/deps/uv/test/test-list.h @@ -37,6 +37,8 @@ TEST_DECLARE (default_loop_close) TEST_DECLARE (barrier_1) TEST_DECLARE (barrier_2) TEST_DECLARE (barrier_3) +TEST_DECLARE (barrier_serial_thread) +TEST_DECLARE (barrier_serial_thread_single) TEST_DECLARE (condvar_1) TEST_DECLARE (condvar_2) TEST_DECLARE (condvar_3) @@ -50,6 +52,7 @@ TEST_DECLARE (tty) TEST_DECLARE (tty_raw) TEST_DECLARE (tty_empty_write) TEST_DECLARE (tty_large_write) +TEST_DECLARE (tty_raw_cancel) #endif TEST_DECLARE (tty_file) TEST_DECLARE (tty_pty) @@ -339,6 +342,8 @@ TEST_DECLARE (get_osfhandle_valid_handle) TEST_DECLARE (open_osfhandle_valid_handle) TEST_DECLARE (fs_write_alotof_bufs) TEST_DECLARE (fs_write_alotof_bufs_with_offset) +TEST_DECLARE (fs_partial_read) +TEST_DECLARE (fs_partial_write) TEST_DECLARE (fs_file_pos_after_op_with_offset) TEST_DECLARE (fs_null_req) #ifdef _WIN32 @@ -456,6 +461,8 @@ TASK_LIST_START TEST_ENTRY (barrier_1) TEST_ENTRY (barrier_2) TEST_ENTRY (barrier_3) + TEST_ENTRY (barrier_serial_thread) + TEST_ENTRY (barrier_serial_thread_single) TEST_ENTRY (condvar_1) TEST_ENTRY (condvar_2) TEST_ENTRY (condvar_3) @@ -480,6 +487,7 @@ TASK_LIST_START TEST_ENTRY (tty_raw) TEST_ENTRY (tty_empty_write) TEST_ENTRY (tty_large_write) + TEST_ENTRY (tty_raw_cancel) #endif TEST_ENTRY (tty_file) TEST_ENTRY (tty_pty) @@ -884,6 +892,8 @@ TASK_LIST_START TEST_ENTRY (fs_write_multiple_bufs) TEST_ENTRY (fs_write_alotof_bufs) TEST_ENTRY (fs_write_alotof_bufs_with_offset) + TEST_ENTRY (fs_partial_read) + TEST_ENTRY (fs_partial_write) TEST_ENTRY (fs_read_write_null_arguments) TEST_ENTRY (fs_file_pos_after_op_with_offset) TEST_ENTRY (fs_null_req) diff --git a/deps/uv/test/test-pipe-close-stdout-read-stdin.c b/deps/uv/test/test-pipe-close-stdout-read-stdin.c index 4ab14789a3858b..c8804b0e189249 100644 --- a/deps/uv/test/test-pipe-close-stdout-read-stdin.c +++ b/deps/uv/test/test-pipe-close-stdout-read-stdin.c @@ -66,7 +66,8 @@ TEST_IMPL(pipe_close_stdout_read_stdin) { */ close(fd[1]); /* block until write end of pipe is closed */ - read(fd[0], &buf, 1); + r = read(fd[0], &buf, 1); + ASSERT(-1 <= r && r <= 1); close(0); r = dup(fd[0]); ASSERT(r != -1); diff --git a/deps/uv/test/test-process-priority.c b/deps/uv/test/test-process-priority.c index ebee6b90afd555..b3d0a85bdd70ec 100644 --- a/deps/uv/test/test-process-priority.c +++ b/deps/uv/test/test-process-priority.c @@ -54,8 +54,10 @@ TEST_IMPL(process_priority) { #ifndef _WIN32 ASSERT(priority == i); #else + /* On Windows, only elevated users can set UV_PRIORITY_HIGHEST. Other + users will silently be set to UV_PRIORITY_HIGH. */ if (i < UV_PRIORITY_HIGH) - ASSERT(priority == UV_PRIORITY_HIGHEST); + ASSERT(priority == UV_PRIORITY_HIGHEST || priority == UV_PRIORITY_HIGH); else if (i < UV_PRIORITY_ABOVE_NORMAL) ASSERT(priority == UV_PRIORITY_HIGH); else if (i < UV_PRIORITY_NORMAL) diff --git a/deps/uv/test/test-spawn.c b/deps/uv/test/test-spawn.c index 1ab6e78807ff5f..4fcd905eed7500 100644 --- a/deps/uv/test/test-spawn.c +++ b/deps/uv/test/test-spawn.c @@ -1733,6 +1733,7 @@ TEST_IMPL(spawn_inherit_streams) { uv_buf_t buf; unsigned int i; int r; + int bidir; uv_write_t write_req; uv_loop_t* loop; @@ -1751,6 +1752,15 @@ TEST_IMPL(spawn_inherit_streams) { ASSERT(uv_pipe_open(&pipe_stdout_child, fds_stdout[1]) == 0); ASSERT(uv_pipe_open(&pipe_stdin_parent, fds_stdin[1]) == 0); ASSERT(uv_pipe_open(&pipe_stdout_parent, fds_stdout[0]) == 0); + ASSERT(uv_is_readable((uv_stream_t*) &pipe_stdin_child)); + ASSERT(uv_is_writable((uv_stream_t*) &pipe_stdout_child)); + ASSERT(uv_is_writable((uv_stream_t*) &pipe_stdin_parent)); + ASSERT(uv_is_readable((uv_stream_t*) &pipe_stdout_parent)); + /* Some systems (SVR4) open a bidirectional pipe, most don't. */ + bidir = uv_is_writable((uv_stream_t*) &pipe_stdin_child); + ASSERT(uv_is_readable((uv_stream_t*) &pipe_stdout_child) == bidir); + ASSERT(uv_is_readable((uv_stream_t*) &pipe_stdin_parent) == bidir); + ASSERT(uv_is_writable((uv_stream_t*) &pipe_stdout_parent) == bidir); child_stdio[0].flags = UV_INHERIT_STREAM; child_stdio[0].data.stream = (uv_stream_t *)&pipe_stdin_child; diff --git a/deps/uv/test/test-tty.c b/deps/uv/test/test-tty.c index 6aaeda8f59619b..979a6ec38d7fcd 100644 --- a/deps/uv/test/test-tty.c +++ b/deps/uv/test/test-tty.c @@ -96,9 +96,13 @@ TEST_IMPL(tty) { r = uv_tty_init(uv_default_loop(), &tty_in, ttyin_fd, 1); /* Readable. */ ASSERT(r == 0); + ASSERT(uv_is_readable((uv_stream_t*) &tty_in)); + ASSERT(!uv_is_writable((uv_stream_t*) &tty_in)); r = uv_tty_init(uv_default_loop(), &tty_out, ttyout_fd, 0); /* Writable. */ ASSERT(r == 0); + ASSERT(!uv_is_readable((uv_stream_t*) &tty_out)); + ASSERT(uv_is_writable((uv_stream_t*) &tty_out)); r = uv_tty_get_winsize(&tty_out, &width, &height); ASSERT(r == 0); @@ -186,6 +190,8 @@ TEST_IMPL(tty_raw) { r = uv_tty_init(uv_default_loop(), &tty_in, ttyin_fd, 1); /* Readable. */ ASSERT(r == 0); + ASSERT(uv_is_readable((uv_stream_t*) &tty_in)); + ASSERT(!uv_is_writable((uv_stream_t*) &tty_in)); r = uv_read_start((uv_stream_t*)&tty_in, tty_raw_alloc, tty_raw_read); ASSERT(r == 0); @@ -242,6 +248,8 @@ TEST_IMPL(tty_empty_write) { r = uv_tty_init(uv_default_loop(), &tty_out, ttyout_fd, 0); /* Writable. */ ASSERT(r == 0); + ASSERT(!uv_is_readable((uv_stream_t*) &tty_out)); + ASSERT(uv_is_writable((uv_stream_t*) &tty_out)); bufs[0].len = 0; bufs[0].base = &dummy[0]; @@ -302,6 +310,41 @@ TEST_IMPL(tty_large_write) { MAKE_VALGRIND_HAPPY(); return 0; } + +TEST_IMPL(tty_raw_cancel) { + int r; + int ttyin_fd; + uv_tty_t tty_in; + uv_loop_t* loop; + HANDLE handle; + + loop = uv_default_loop(); + /* Make sure we have an FD that refers to a tty */ + handle = CreateFileA("conin$", + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL); + ASSERT(handle != INVALID_HANDLE_VALUE); + ttyin_fd = _open_osfhandle((intptr_t) handle, 0); + ASSERT(ttyin_fd >= 0); + ASSERT(UV_TTY == uv_guess_handle(ttyin_fd)); + + r = uv_tty_init(uv_default_loop(), &tty_in, ttyin_fd, 1); /* Readable. */ + ASSERT(r == 0); + r = uv_tty_set_mode(&tty_in, UV_TTY_MODE_RAW); + ASSERT(r == 0); + r = uv_read_start((uv_stream_t*)&tty_in, tty_raw_alloc, tty_raw_read); + ASSERT(r == 0); + + r = uv_read_stop((uv_stream_t*) &tty_in); + ASSERT(r == 0); + + MAKE_VALGRIND_HAPPY(); + return 0; +} #endif @@ -309,6 +352,8 @@ TEST_IMPL(tty_file) { #ifndef _WIN32 uv_loop_t loop; uv_tty_t tty; + uv_tty_t tty_ro; + uv_tty_t tty_wo; int fd; ASSERT(0 == uv_loop_init(&loop)); @@ -334,13 +379,40 @@ TEST_IMPL(tty_file) { ASSERT(0 == close(fd)); } - fd = open("/dev/tty", O_RDONLY); + fd = open("/dev/tty", O_RDWR); if (fd != -1) { ASSERT(0 == uv_tty_init(&loop, &tty, fd, 1)); - ASSERT(0 == close(fd)); + ASSERT(0 == close(fd)); /* TODO: it's indeterminate who owns fd now */ + ASSERT(uv_is_readable((uv_stream_t*) &tty)); + ASSERT(uv_is_writable((uv_stream_t*) &tty)); uv_close((uv_handle_t*) &tty, NULL); + ASSERT(!uv_is_readable((uv_stream_t*) &tty)); + ASSERT(!uv_is_writable((uv_stream_t*) &tty)); + } + + fd = open("/dev/tty", O_RDONLY); + if (fd != -1) { + ASSERT(0 == uv_tty_init(&loop, &tty_ro, fd, 1)); + ASSERT(0 == close(fd)); /* TODO: it's indeterminate who owns fd now */ + ASSERT(uv_is_readable((uv_stream_t*) &tty_ro)); + ASSERT(!uv_is_writable((uv_stream_t*) &tty_ro)); + uv_close((uv_handle_t*) &tty_ro, NULL); + ASSERT(!uv_is_readable((uv_stream_t*) &tty_ro)); + ASSERT(!uv_is_writable((uv_stream_t*) &tty_ro)); } + fd = open("/dev/tty", O_WRONLY); + if (fd != -1) { + ASSERT(0 == uv_tty_init(&loop, &tty_wo, fd, 0)); + ASSERT(0 == close(fd)); /* TODO: it's indeterminate who owns fd now */ + ASSERT(!uv_is_readable((uv_stream_t*) &tty_wo)); + ASSERT(uv_is_writable((uv_stream_t*) &tty_wo)); + uv_close((uv_handle_t*) &tty_wo, NULL); + ASSERT(!uv_is_readable((uv_stream_t*) &tty_wo)); + ASSERT(!uv_is_writable((uv_stream_t*) &tty_wo)); + } + + ASSERT(0 == uv_run(&loop, UV_RUN_DEFAULT)); ASSERT(0 == uv_loop_close(&loop)); @@ -370,6 +442,10 @@ TEST_IMPL(tty_pty) { ASSERT(0 == uv_tty_init(&loop, &slave_tty, slave_fd, 0)); ASSERT(0 == uv_tty_init(&loop, &master_tty, master_fd, 0)); + ASSERT(uv_is_readable((uv_stream_t*) &slave_tty)); + ASSERT(uv_is_writable((uv_stream_t*) &slave_tty)); + ASSERT(uv_is_readable((uv_stream_t*) &master_tty)); + ASSERT(uv_is_writable((uv_stream_t*) &master_tty)); /* Check if the file descriptor was reopened. If it is, * UV_HANDLE_BLOCKING_WRITES (value 0x100000) isn't set on flags. */ diff --git a/deps/uv/uv.gyp b/deps/uv/uv.gyp index 37dcb3604f4c72..5148a850ab4c15 100644 --- a/deps/uv/uv.gyp +++ b/deps/uv/uv.gyp @@ -116,7 +116,6 @@ 'src/win/poll.c', 'src/win/process.c', 'src/win/process-stdio.c', - 'src/win/req.c', 'src/win/req-inl.h', 'src/win/signal.c', 'src/win/snprintf.c', diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index fbb34a0b3dc14c..19ffdb38867782 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -828,6 +828,8 @@ action("postmortem-metadata") { "src/objects/js-regexp-string-iterator.h", "src/objects/map.h", "src/objects/map-inl.h", + "src/objects/name.h", + "src/objects/name-inl.h", "src/objects/scope-info.h", "src/objects/script.h", "src/objects/script-inl.h", diff --git a/deps/v8/gypfiles/features.gypi b/deps/v8/gypfiles/features.gypi index 69ff763be04ab5..35a078e8af2fd2 100644 --- a/deps/v8/gypfiles/features.gypi +++ b/deps/v8/gypfiles/features.gypi @@ -29,9 +29,16 @@ { 'variables': { - 'variables': { - 'v8_target_arch%': '<(target_arch)', - }, + 'v8_target_arch%': '<(target_arch)', + + # Emulate GN variables + 'conditions': [ + ['OS=="android"', { # GYP reverts OS to linux so use `-D OS=android` + 'is_android': 1, + }, { + 'is_android': 0, + }], + ], # Allows the embedder to add a custom suffix to the version string. 'v8_embedder_string%': '', @@ -95,6 +102,8 @@ # Enable mitigations for executing untrusted code. 'v8_untrusted_code_mitigations%': 'true', + + 'v8_enable_handle_zapping%': 1, }, 'target_defaults': { 'conditions': [ @@ -105,7 +114,7 @@ 'defines': ['ENABLE_DISASSEMBLER',], }], ['v8_promise_internal_field_count!=0', { - 'defines': ['V8_PROMISE_INTERNAL_FIELD_COUNT','v8_promise_internal_field_count'], + 'defines': ['V8_PROMISE_INTERNAL_FIELD_COUNT=<(v8_promise_internal_field_count)'], }], ['v8_enable_gdbjit==1', { 'defines': ['ENABLE_GDB_JIT_INTERFACE',], @@ -155,30 +164,10 @@ ['v8_untrusted_code_mitigations=="false"', { 'defines': ['DISABLE_UNTRUSTED_CODE_MITIGATIONS',], }], + ['v8_enable_handle_zapping==1', { + 'defines': ['ENABLE_HANDLE_ZAPPING',], + }], ], # conditions - 'configurations': { - 'DebugBaseCommon': { - 'abstract': 1, - 'variables': { - 'v8_enable_handle_zapping%': 1, - }, - 'conditions': [ - ['v8_enable_handle_zapping==1', { - 'defines': ['ENABLE_HANDLE_ZAPPING',], - }], - ], - }, # Debug - 'Release': { - 'variables': { - 'v8_enable_handle_zapping%': 1, - }, - 'conditions': [ - ['v8_enable_handle_zapping==1', { - 'defines': ['ENABLE_HANDLE_ZAPPING',], - }], - ], # conditions - }, # Release - }, # configurations 'defines': [ 'V8_GYP_BUILD', 'V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=<(v8_typed_array_max_size_in_heap)', diff --git a/deps/v8/gypfiles/inspector.gyp b/deps/v8/gypfiles/inspector.gyp deleted file mode 100644 index c0b503d9cec51f..00000000000000 --- a/deps/v8/gypfiles/inspector.gyp +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 2016 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -{ - 'variables': { - 'protocol_path': '../third_party/inspector_protocol', - 'inspector_path': '../src/inspector', - }, - 'includes': [ - 'inspector.gypi', - '../third_party/inspector_protocol/inspector_protocol.gypi', - ], - 'targets': [ - { 'target_name': 'inspector_injected_script', - 'type': 'none', - 'toolsets': ['target'], - 'actions': [ - { - 'action_name': 'convert_js_to_cpp_char_array', - 'inputs': [ - '<(inspector_path)/build/xxd.py', - '<(inspector_injected_script_source)', - ], - 'outputs': [ - '<(inspector_generated_injected_script)', - ], - 'action': [ - 'python', - '<(inspector_path)/build/xxd.py', - 'InjectedScriptSource_js', - '<(inspector_path)/injected-script-source.js', - '<@(_outputs)' - ], - }, - ], - # Since this target generates header files, it needs to be a hard dependency. - 'hard_dependency': 1, - }, - { 'target_name': 'protocol_compatibility', - 'type': 'none', - 'toolsets': ['target'], - 'actions': [ - { - 'action_name': 'protocol_compatibility', - 'inputs': [ - '<(inspector_path)/js_protocol.json', - ], - 'outputs': [ - '<@(SHARED_INTERMEDIATE_DIR)/src/js_protocol.stamp', - ], - 'action': [ - 'python', - '<(protocol_path)/CheckProtocolCompatibility.py', - '--stamp', '<@(_outputs)', - '<(inspector_path)/js_protocol.json', - ], - 'message': 'Generating inspector protocol sources from protocol json definition', - }, - ] - }, - { 'target_name': 'protocol_generated_sources', - 'type': 'none', - 'dependencies': [ 'protocol_compatibility' ], - 'toolsets': ['target'], - 'actions': [ - { - 'action_name': 'protocol_generated_sources', - 'inputs': [ - '<(inspector_path)/js_protocol.json', - '<(inspector_path)/inspector_protocol_config.json', - '<@(inspector_protocol_files)', - ], - 'outputs': [ - '<@(inspector_generated_sources)', - ], - 'action': [ - 'python', - '<(protocol_path)/CodeGenerator.py', - '--jinja_dir', '../third_party', - '--output_base', '<(SHARED_INTERMEDIATE_DIR)/src/inspector', - '--config', '<(inspector_path)/inspector_protocol_config.json', - ], - 'message': 'Generating inspector protocol sources from protocol json', - }, - ] - }, - ], -} diff --git a/deps/v8/gypfiles/inspector.gypi b/deps/v8/gypfiles/inspector.gypi index 00cbbfaecb7f28..be42ea8b783ff8 100644 --- a/deps/v8/gypfiles/inspector.gypi +++ b/deps/v8/gypfiles/inspector.gypi @@ -4,6 +4,9 @@ { 'variables': { + 'protocol_path': '../third_party/inspector_protocol', + 'inspector_path': '../src/inspector', + 'inspector_generated_sources': [ '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Forward.h', '<(SHARED_INTERMEDIATE_DIR)/src/inspector/protocol/Protocol.cpp', @@ -29,8 +32,6 @@ 'inspector_generated_injected_script': '<(SHARED_INTERMEDIATE_DIR)/src/inspector/injected-script-source.h', 'inspector_all_sources': [ - '<@(inspector_generated_sources)', - '<(inspector_generated_injected_script)', '../include/v8-inspector.h', '../include/v8-inspector-protocol.h', '../src/inspector/injected-script.cc', @@ -86,5 +87,64 @@ '../src/inspector/wasm-translation.cc', '../src/inspector/wasm-translation.h', ] - } + }, + 'includes': [ + '../third_party/inspector_protocol/inspector_protocol.gypi', + ], + 'actions': [ + { + 'action_name': 'protocol_compatibility', + 'inputs': [ + '<(inspector_path)/js_protocol.json', + ], + 'outputs': [ + '<@(SHARED_INTERMEDIATE_DIR)/src/js_protocol.stamp', + ], + 'action': [ + 'python', + '<(protocol_path)/CheckProtocolCompatibility.py', + '--stamp', '<@(_outputs)', + '<(inspector_path)/js_protocol.json', + ], + 'message': 'Checking inspector protocol compatibility', + }, + { + 'action_name': 'protocol_generated_sources', + 'inputs': [ + '<(inspector_path)/js_protocol.json', + '<(inspector_path)/inspector_protocol_config.json', + '<@(inspector_protocol_files)', + ], + 'outputs': [ + '<@(inspector_generated_sources)', + ], + 'process_outputs_as_sources': 1, + 'action': [ + 'python', + '<(protocol_path)/CodeGenerator.py', + '--jinja_dir', '../third_party', + '--output_base', '<(SHARED_INTERMEDIATE_DIR)/src/inspector', + '--config', '<(inspector_path)/inspector_protocol_config.json', + ], + 'message': 'Generating inspector protocol sources from protocol json', + }, + { + 'action_name': 'convert_js_to_cpp_char_array', + 'inputs': [ + '<(inspector_path)/build/xxd.py', + '<(inspector_injected_script_source)', + ], + 'outputs': [ + '<(inspector_generated_injected_script)', + ], + 'process_outputs_as_sources': 1, + 'action': [ + 'python', + '<(inspector_path)/build/xxd.py', + 'InjectedScriptSource_js', + '<(inspector_path)/injected-script-source.js', + '<@(_outputs)' + ], + }, + ], } diff --git a/deps/v8/gypfiles/toolchain.gypi b/deps/v8/gypfiles/toolchain.gypi index 97d2192ed828a7..7f497fac91e2b2 100644 --- a/deps/v8/gypfiles/toolchain.gypi +++ b/deps/v8/gypfiles/toolchain.gypi @@ -1425,5 +1425,24 @@ }], ], }, # configurations + 'msvs_disabled_warnings': [ + 4245, # Conversion with signed/unsigned mismatch. + 4267, # Conversion with possible loss of data. + 4324, # Padding structure due to alignment. + 4701, # Potentially uninitialized local variable. + 4702, # Unreachable code. + 4703, # Potentially uninitialized local pointer variable. + 4709, # Comma operator within array index expr (bugged). + 4714, # Function marked forceinline not inlined. + + # MSVC assumes that control can get past an exhaustive switch and then + # warns if there's no return there (see https://crbug.com/v8/7658) + 4715, # Not all control paths return a value. + + 4718, # Recursive call has no side-effect. + 4723, # https://crbug.com/v8/7771 + 4724, # https://crbug.com/v8/7771 + 4800, # Forcing value to bool. + ], }, # target_defaults } diff --git a/deps/v8/gypfiles/v8.gyp b/deps/v8/gypfiles/v8.gyp index 5417365888ef06..8c78f022551e66 100644 --- a/deps/v8/gypfiles/v8.gyp +++ b/deps/v8/gypfiles/v8.gyp @@ -7,19 +7,20 @@ 'v8_code': 1, 'v8_random_seed%': 314159265, 'v8_vector_stores%': 0, - 'embed_script%': "", - 'warmup_script%': "", + 'v8_embed_script%': "", 'v8_extra_library_files%': [], 'v8_experimental_extra_library_files%': [], 'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)', 'v8_os_page_size%': 0, + 'torque_generated_pure_headers': [ + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtin-definitions-from-dsl.h', + ], }, - 'includes': ['toolchain.gypi', 'features.gypi', 'inspector.gypi'], + 'includes': ['toolchain.gypi', 'features.gypi'], 'targets': [ { 'target_name': 'v8', - 'dependencies_traverse': 1, - 'dependencies': ['v8_maybe_snapshot', 'v8_dump_build_config#target'], + 'dependencies': [ 'v8_maybe_snapshot' ], 'conditions': [ ['want_separate_host_toolset==1', { 'toolsets': ['host', 'target'], @@ -60,11 +61,55 @@ }], ], 'direct_dependent_settings': { - 'include_dirs': [ - '../include/', - ], + 'include_dirs': [ '../include/', ], }, - }, + 'actions': [ + { + 'action_name': 'v8_dump_build_config', + 'toolsets': ['target'], + 'inputs': [ + '../tools/testrunner/utils/dump_build_config_gyp.py', + ], + 'outputs': [ + '<(PRODUCT_DIR)/v8_build_config.json', + ], + 'variables': { + 'v8_dump_build_config_args': [ + '<(PRODUCT_DIR)/v8_build_config.json', + 'dcheck_always_on=<(dcheck_always_on)', + 'is_asan=<(asan)', + 'is_cfi=<(cfi_vptr)', + 'is_component_build=<(component)', + 'is_debug=<(CONFIGURATION_NAME)', + # Not available in gyp. + 'is_gcov_coverage=0', + 'is_msan=<(msan)', + 'is_tsan=<(tsan)', + # Not available in gyp. + 'is_ubsan_vptr=0', + 'target_cpu=<(target_arch)', + 'v8_enable_i18n_support=<(v8_enable_i18n_support)', + 'v8_enable_verify_predictable=<(v8_enable_verify_predictable)', + 'v8_target_cpu=<(v8_target_arch)', + 'v8_use_snapshot=<(v8_use_snapshot)', + ] + }, + 'conditions': [ + ['v8_target_arch=="mips" or v8_target_arch=="mipsel" \ + or v8_target_arch=="mips64" or v8_target_arch=="mips64el"', { + 'v8_dump_build_config_args':[ + 'mips_arch_variant=<(mips_arch_variant)', + 'mips_use_msa=<(mips_use_msa)', + ], + }], + ], + 'action': [ + 'python', '../tools/testrunner/utils/dump_build_config_gyp.py', + '<@(v8_dump_build_config_args)', + ], + }, + ], + }, # v8 { # This rule delegates to either v8_snapshot, v8_nosnapshot, or # v8_external_snapshot, depending on the current variables. @@ -86,21 +131,9 @@ }], ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==0', { 'dependencies': ['v8_base', 'v8_external_snapshot'], - 'inputs': [ '<(PRODUCT_DIR)/snapshot_blob.bin', ], }], ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==1', { 'dependencies': ['v8_base', 'v8_external_snapshot'], - 'target_conditions': [ - ['_toolset=="host"', { - 'inputs': [ - '<(PRODUCT_DIR)/snapshot_blob_host.bin', - ], - }, { - 'inputs': [ - '<(PRODUCT_DIR)/snapshot_blob.bin', - ], - }], - ], }], ['want_separate_host_toolset==1', { 'toolsets': ['host', 'target'], @@ -108,24 +141,27 @@ 'toolsets': ['target'], }], ] - }, + }, # v8_maybe_snapshot { 'target_name': 'v8_init', 'type': 'static_library', 'dependencies': [ 'v8_initializers', - 'v8_torque#host', + # We need this transitive dependency, since it also does codegen. + 'v8_base', ], 'variables': { 'optimize': 'max', }, - 'include_dirs+': [ + 'include_dirs': [ '..', '../include/', + # This is for `gen/builtins-generated` + '<(SHARED_INTERMEDIATE_DIR)', ], 'sources': [ '../src/setup-isolate-full.cc', - '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtin-definitions-from-dsl.h', + '<@(torque_generated_pure_headers)', ], 'conditions': [ ['want_separate_host_toolset==1', { @@ -134,18 +170,17 @@ 'toolsets': ['target'], }], ], - }, + }, # v8_init { 'target_name': 'v8_initializers', 'type': 'static_library', 'dependencies': [ 'v8_base', - 'v8_torque#host', ], 'variables': { 'optimize': 'max', }, - 'include_dirs+': [ + 'include_dirs': [ '..', '../include/', ], @@ -223,6 +258,7 @@ '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-base-from-dsl-gen.h', '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.cc', '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.h', + '<@(torque_generated_pure_headers)', ], 'conditions': [ ['want_separate_host_toolset==1', { @@ -276,7 +312,7 @@ ], }], ], - }, + }, # v8_initializers { 'target_name': 'v8_snapshot', 'type': 'static_library', @@ -308,67 +344,66 @@ 'dependencies': [ 'v8_base', ], - 'include_dirs+': [ + 'include_dirs': [ '..', '<(DEPTH)', ], + 'variables': { + 'mksnapshot_flags': [ '--turbo_instruction_scheduling', ], + 'conditional_snapshot_outputs': [ ], + 'conditional_inputs': [ ], + 'conditions': [ + ['v8_random_seed != 0', { + 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], + }], + ['v8_os_page_size != 0', { + 'mksnapshot_flags': ['--v8_os_page_size', '<(v8_os_page_size)'], + }], + ['v8_use_external_startup_data !=0 ', { + 'conditional_snapshot_outputs': [ '<(INTERMEDIATE_DIR)/snapshot_blob.bin', ], + 'mksnapshot_flags': [ '--startup_blob', '<(INTERMEDIATE_DIR)/snapshot_blob.bin', ] + }, { + 'conditional_snapshot_outputs': [ "<(INTERMEDIATE_DIR)/snapshot.cc" ], + 'mksnapshot_flags': [ '--startup_src', '<(INTERMEDIATE_DIR)/snapshot.cc', ] + }], + ['v8_embed_script != ""', { + 'conditional_inputs': [ '<(v8_embed_script)' ], + 'mksnapshot_flags': [ '<(v8_embed_script)' ], + }], + ], + }, 'sources': [ - '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', - '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc', - '<(INTERMEDIATE_DIR)/snapshot.cc', + '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', + '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', '../src/setup-isolate-deserialize.cc', ], 'actions': [ { 'action_name': 'run_mksnapshot', + 'message': 'generating: >@(conditional_snapshot_outputs)', 'inputs': [ '<(mksnapshot_exec)', - ], - 'conditions': [ - ['embed_script!=""', { - 'inputs': [ - '<(embed_script)', - ], - }], - ['warmup_script!=""', { - 'inputs': [ - '<(warmup_script)', - ], - }], + '>@(conditional_inputs)', ], 'outputs': [ - '<(INTERMEDIATE_DIR)/snapshot.cc', + '>@(conditional_snapshot_outputs)', ], - 'variables': { - 'mksnapshot_flags': [], - 'conditions': [ - ['v8_random_seed!=0', { - 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], - }], - ['v8_vector_stores!=0', { - 'mksnapshot_flags': ['--vector-stores'], - }], - ], - }, + 'process_outputs_as_sources': 1, 'action': [ - '<(mksnapshot_exec)', - '<@(mksnapshot_flags)', - '--startup_src', '<@(INTERMEDIATE_DIR)/snapshot.cc', - '<(embed_script)', - '<(warmup_script)', + '>@(_inputs)', + '>@(mksnapshot_flags)', ], }, ], - }, + }, # v8_snapshot { 'target_name': 'v8_nosnapshot', 'type': 'static_library', 'dependencies': [ 'v8_base', - 'v8_torque#host', ], - 'include_dirs+': [ + 'include_dirs': [ '..', '<(DEPTH)', ], @@ -392,143 +427,27 @@ ], }], ] - }, - { - 'target_name': 'v8_external_snapshot', - 'type': 'static_library', - 'conditions': [ - [ 'v8_use_external_startup_data==1', { - 'conditions': [ - ['want_separate_host_toolset==1', { - 'toolsets': ['host', 'target'], - 'dependencies': [ - 'mksnapshot#host', - 'js2c#host', - 'natives_blob', - ]}, { - 'toolsets': ['target'], - 'dependencies': [ - 'mksnapshot', - 'js2c', - 'natives_blob', - ], - }], - ['component=="shared_library"', { - 'defines': [ - 'BUILDING_V8_SHARED', - ], - 'direct_dependent_settings': { - 'defines': [ - 'USING_V8_SHARED', - ], - }, - }], - ], - 'dependencies': [ - 'v8_base', - ], - 'include_dirs+': [ - '..', - '<(DEPTH)', - ], - 'sources': [ - '../src/setup-isolate-deserialize.cc', - '../src/snapshot/natives-external.cc', - '../src/snapshot/snapshot-external.cc', - ], - 'actions': [ - { - 'action_name': 'run_mksnapshot (external)', - 'inputs': [ - '<(mksnapshot_exec)', - ], - 'variables': { - 'mksnapshot_flags': [], - 'conditions': [ - ['v8_random_seed!=0', { - 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], - }], - ['v8_vector_stores!=0', { - 'mksnapshot_flags': ['--vector-stores'], - }], - ['v8_os_page_size!=0', { - 'mksnapshot_flags': ['--v8_os_page_size', '<(v8_os_page_size)'], - }], - ], - }, - 'conditions': [ - ['embed_script!=""', { - 'inputs': [ - '<(embed_script)', - ], - }], - ['warmup_script!=""', { - 'inputs': [ - '<(warmup_script)', - ], - }], - ['want_separate_host_toolset==1', { - 'target_conditions': [ - ['_toolset=="host"', { - 'outputs': [ - '<(PRODUCT_DIR)/snapshot_blob_host.bin', - ], - 'action': [ - '<(mksnapshot_exec)', - '<@(mksnapshot_flags)', - '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_host.bin', - '<(embed_script)', - '<(warmup_script)', - ], - }, { - 'outputs': [ - '<(PRODUCT_DIR)/snapshot_blob.bin', - ], - 'action': [ - '<(mksnapshot_exec)', - '<@(mksnapshot_flags)', - '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin', - '<(embed_script)', - '<(warmup_script)', - ], - }], - ], - }, { - 'outputs': [ - '<(PRODUCT_DIR)/snapshot_blob.bin', - ], - 'action': [ - '<(mksnapshot_exec)', - '<@(mksnapshot_flags)', - '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin', - '<(embed_script)', - '<(warmup_script)', - ], - }], - ], - }, - ], - }], - ], - }, + }, # v8_nosnapshot { 'target_name': 'v8_base', 'type': 'static_library', + # Since this target is a static-library, but as a side effect it generates + # header files, it needs to be a hard dependency. + 'hard_dependency': 1, + 'includes': [ 'inspector.gypi' ], 'dependencies': [ 'v8_libbase', 'v8_libsampler', 'v8_torque#host', - 'inspector.gyp:protocol_generated_sources#target', - 'inspector.gyp:inspector_injected_script#target', ], 'direct_dependent_settings': { - 'include_dirs+': ['<(SHARED_INTERMEDIATE_DIR)'], + 'include_dirs': ['<(SHARED_INTERMEDIATE_DIR)'], }, 'objs': ['foo.o'], 'variables': { 'optimize': 'max', }, - 'include_dirs+': [ + 'include_dirs': [ '..', '<(DEPTH)', '<(SHARED_INTERMEDIATE_DIR)' @@ -1558,7 +1477,7 @@ '../src/zone/zone-segment.h', '../src/zone/zone.cc', '../src/zone/zone.h', - '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtin-definitions-from-dsl.h', + '<@(torque_generated_pure_headers)', ], 'conditions': [ ['want_separate_host_toolset==1', { @@ -1870,9 +1789,10 @@ ], }], ['v8_postmortem_support=="true"', { + 'dependencies': [ 'postmortem-metadata#target' ], 'sources': [ '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', - ] + ], }], ['v8_enable_i18n_support==1', { 'dependencies': [ @@ -1913,7 +1833,7 @@ ], }], ], - }, + }, # v8_base { 'target_name': 'v8_libbase', 'type': '<(component)', @@ -1921,11 +1841,11 @@ 'variables': { 'optimize': 'max', }, - 'include_dirs+': [ + 'include_dirs': [ '..', ], 'direct_dependent_settings': { - 'include_dirs+': ['..'], + 'include_dirs': ['..'], }, 'sources': [ '../src/base/adapters.h', @@ -2246,7 +2166,7 @@ } ], ], - }, + }, # v8_libbase { 'target_name': 'v8_libplatform', 'type': '<(component)', @@ -2256,15 +2176,15 @@ 'dependencies': [ 'v8_libbase', ], - 'include_dirs+': [ + 'include_dirs': [ '..', '<(DEPTH)', '../include/', ], 'sources': [ - '../include//libplatform/libplatform-export.h', - '../include//libplatform/libplatform.h', - '../include//libplatform/v8-tracing.h', + '../include/libplatform/libplatform-export.h', + '../include/libplatform/libplatform.h', + '../include/libplatform/v8-tracing.h', '../src/libplatform/default-foreground-task-runner.cc', '../src/libplatform/default-foreground-task-runner.h', '../src/libplatform/default-platform.cc', @@ -2301,7 +2221,7 @@ '../include/', ], }, - }, + }, # v8_libplatform { 'target_name': 'v8_libsampler', 'type': 'static_library', @@ -2311,7 +2231,7 @@ 'dependencies': [ 'v8_libbase', ], - 'include_dirs+': [ + 'include_dirs': [ '..', '../include/', ], @@ -2331,11 +2251,16 @@ '../include/', ], }, - }, + }, # v8_libsampler { 'target_name': 'natives_blob', 'type': 'none', 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], [ 'v8_use_external_startup_data==1', { 'conditions': [ ['want_separate_host_toolset==1', { @@ -2344,51 +2269,99 @@ 'dependencies': ['js2c'], }], ], - 'actions': [{ - 'action_name': 'concatenate_natives_blob', - 'inputs': [ - '../tools//concatenate-files.py', - '<(SHARED_INTERMEDIATE_DIR)/libraries.bin', - '<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin', - '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental-extras.bin', - ], - 'conditions': [ - ['want_separate_host_toolset==1', { - 'target_conditions': [ - ['_toolset=="host"', { - 'outputs': [ - '<(PRODUCT_DIR)/natives_blob_host.bin', - ], - 'action': [ - 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin' - ], - }, { - 'outputs': [ - '<(PRODUCT_DIR)/natives_blob.bin', - ], - 'action': [ - 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' - ], - }], - ], - }, { - 'outputs': [ - '<(PRODUCT_DIR)/natives_blob.bin', - ], - 'action': [ - 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' - ], - }], - ], - }], - }], - ['want_separate_host_toolset==1', { - 'toolsets': ['host', 'target'], - }, { - 'toolsets': ['target'], + 'actions': [ + { + 'action_name': 'js2c_bin', + 'inputs': [ + '../tools/js2c.py', + '<@(library_files)', + ], + 'outputs': ['<@(libraries_bin_file)'], + 'action': [ + 'python', + '../tools/js2c.py', + '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', + 'CORE', + '<@(library_files)', + '--startup_blob', '<@(libraries_bin_file)', + '--nojs', + ], + }, + { + 'action_name': 'js2c_extras_bin', + 'inputs': [ + '../tools/js2c.py', + '<@(v8_extra_library_files)', + ], + 'outputs': ['<@(libraries_extras_bin_file)'], + 'action': [ + 'python', + '../tools/js2c.py', + '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', + 'EXTRAS', + '<@(v8_extra_library_files)', + '--startup_blob', '<@(libraries_extras_bin_file)', + '--nojs', + ], + }, + { + 'action_name': 'js2c_experimental_extras_bin', + 'inputs': [ + '../tools/js2c.py', + '<@(v8_experimental_extra_library_files)', + ], + 'outputs': ['<@(libraries_experimental_extras_bin_file)'], + 'action': [ + 'python', + '../tools/js2c.py', + '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc', + 'EXPERIMENTAL_EXTRAS', + '<@(v8_experimental_extra_library_files)', + '--startup_blob', '<@(libraries_experimental_extras_bin_file)', + '--nojs', + ], + }, + { + 'action_name': 'concatenate_natives_blob', + 'inputs': [ + '../tools/concatenate-files.py', + '<(SHARED_INTERMEDIATE_DIR)/libraries.bin', + '<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin', + '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental-extras.bin', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'target_conditions': [ + ['_toolset=="host"', { + 'outputs': [ + '<(PRODUCT_DIR)/natives_blob_host.bin', + ], + 'action': [ + 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin' + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/natives_blob.bin', + ], + 'action': [ + 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' + ], + }], + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/natives_blob.bin', + ], + 'action': [ + 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' + ], + }], + ], + }, + ], }], ] - }, + }, # natives_blob { 'target_name': 'js2c', 'type': 'none', @@ -2423,71 +2396,37 @@ { 'action_name': 'js2c', 'inputs': [ - '../tools//js2c.py', + '../tools/js2c.py', '<@(library_files)', ], 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/libraries.cc'], 'action': [ 'python', - '../tools//js2c.py', + '../tools/js2c.py', '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', 'CORE', '<@(library_files)', ], }, - { - 'action_name': 'js2c_bin', - 'inputs': [ - '../tools//js2c.py', - '<@(library_files)', - ], - 'outputs': ['<@(libraries_bin_file)'], - 'action': [ - 'python', - '../tools//js2c.py', - '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', - 'CORE', - '<@(library_files)', - '--startup_blob', '<@(libraries_bin_file)', - '--nojs', - ], - }, - { + { 'action_name': 'js2c_extras', 'inputs': [ - '../tools//js2c.py', + '../tools/js2c.py', '<@(v8_extra_library_files)', ], 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc'], 'action': [ 'python', - '../tools//js2c.py', - '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', - 'EXTRAS', - '<@(v8_extra_library_files)', - ], - }, - { - 'action_name': 'js2c_extras_bin', - 'inputs': [ - '../tools//js2c.py', - '<@(v8_extra_library_files)', - ], - 'outputs': ['<@(libraries_extras_bin_file)'], - 'action': [ - 'python', - '../tools//js2c.py', + '../tools/js2c.py', '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', 'EXTRAS', '<@(v8_extra_library_files)', - '--startup_blob', '<@(libraries_extras_bin_file)', - '--nojs', ], }, { 'action_name': 'js2c_experimental_extras', 'inputs': [ - '../tools//js2c.py', + '../tools/js2c.py', '<@(v8_experimental_extra_library_files)', ], 'outputs': [ @@ -2495,31 +2434,14 @@ ], 'action': [ 'python', - '../tools//js2c.py', + '../tools/js2c.py', '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc', 'EXPERIMENTAL_EXTRAS', '<@(v8_experimental_extra_library_files)', ], }, - { - 'action_name': 'js2c_experimental_extras_bin', - 'inputs': [ - '../tools//js2c.py', - '<@(v8_experimental_extra_library_files)', - ], - 'outputs': ['<@(libraries_experimental_extras_bin_file)'], - 'action': [ - 'python', - '../tools//js2c.py', - '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc', - 'EXPERIMENTAL_EXTRAS', - '<@(v8_experimental_extra_library_files)', - '--startup_blob', '<@(libraries_experimental_extras_bin_file)', - '--nojs', - ], - }, ], - }, + }, # js2c { 'target_name': 'torque', 'type': 'executable', @@ -2896,7 +2818,7 @@ '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp', '../third_party/antlr4/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h', ], - }, + }, # torque_base { 'target_name': 'v8_torque', 'type': 'none', @@ -2926,7 +2848,7 @@ 'action': ['<@(_inputs)', '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated'], }, ], - }, + }, # torque { 'target_name': 'postmortem-metadata', 'type': 'none', @@ -2948,6 +2870,8 @@ '../src/objects/js-regexp-string-iterator.h', '../src/objects/map.h', '../src/objects/map-inl.h', + '../src/objects/name.h', + '../src/objects/name-inl.h', '../src/objects/scope-info.h', '../src/objects/script.h', '../src/objects/script-inl.h', @@ -2958,24 +2882,24 @@ ], }, 'actions': [ - { - 'action_name': 'gen-postmortem-metadata', - 'inputs': [ - '../tools//gen-postmortem-metadata.py', - '<@(heapobject_files)', - ], - 'outputs': [ - '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', - ], - 'action': [ - 'python', - '../tools//gen-postmortem-metadata.py', - '<@(_outputs)', - '<@(heapobject_files)' - ] - } - ] - }, + { + 'action_name': 'gen-postmortem-metadata', + 'inputs': [ + '../tools/gen-postmortem-metadata.py', + '<@(heapobject_files)', + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', + ], + 'action': [ + 'python', + '../tools/gen-postmortem-metadata.py', + '<@(_outputs)', + '<@(heapobject_files)' + ], + }, + ], + }, # postmortem-metadata { 'target_name': 'mksnapshot', 'type': 'executable', @@ -2986,7 +2910,7 @@ 'v8_libplatform', 'v8_nosnapshot', ], - 'include_dirs+': [ + 'include_dirs': [ '..', '<(DEPTH)', ], @@ -3006,53 +2930,9 @@ 'toolsets': ['target'], }], ], - }, + }, # mksnapshot { - 'target_name': 'v8_dump_build_config', - 'type': 'none', - 'variables': { - }, - 'actions': [ - { - 'action_name': 'v8_dump_build_config', - 'inputs': [ - '../tools//testrunner/utils/dump_build_config_gyp.py', - ], - 'outputs': [ - '<(PRODUCT_DIR)/v8_build_config.json', - ], - 'action': [ - 'python', - '../tools//testrunner/utils/dump_build_config_gyp.py', - '<(PRODUCT_DIR)/v8_build_config.json', - 'dcheck_always_on=<(dcheck_always_on)', - 'is_asan=<(asan)', - 'is_cfi=<(cfi_vptr)', - 'is_component_build=<(component)', - 'is_debug=<(CONFIGURATION_NAME)', - # Not available in gyp. - 'is_gcov_coverage=0', - 'is_msan=<(msan)', - 'is_tsan=<(tsan)', - # Not available in gyp. - 'is_ubsan_vptr=0', - 'target_cpu=<(target_arch)', - 'v8_enable_i18n_support=<(v8_enable_i18n_support)', - 'v8_enable_verify_predictable=<(v8_enable_verify_predictable)', - 'v8_target_cpu=<(v8_target_arch)', - 'v8_use_snapshot=<(v8_use_snapshot)', - ], - 'conditions': [ - ['v8_target_arch=="mips" or v8_target_arch=="mipsel" \ - or v8_target_arch=="mips64" or v8_target_arch=="mips64el"', { - 'action':[ - 'mips_arch_variant=<(mips_arch_variant)', - 'mips_use_msa=<(mips_use_msa)', - ], - }], - ], - }, - ], - }, + 'includes': [ 'v8_external_snapshot.gypi' ], + }, # v8_external_snapshot ], } diff --git a/deps/v8/gypfiles/v8_external_snapshot.gypi b/deps/v8/gypfiles/v8_external_snapshot.gypi new file mode 100644 index 00000000000000..47fc911bae675c --- /dev/null +++ b/deps/v8/gypfiles/v8_external_snapshot.gypi @@ -0,0 +1,119 @@ +# Keeping this separate since Node.js does use it +{ + 'target_name': 'v8_external_snapshot', + 'type': 'static_library', + 'conditions': [ + [ 'v8_use_external_startup_data==1', { + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + 'dependencies': [ + 'mksnapshot#host', + 'js2c#host', + 'natives_blob', + ]}, { + 'toolsets': ['target'], + 'dependencies': [ + 'mksnapshot', + 'js2c', + 'natives_blob', + ], + }], + ['component=="shared_library"', { + 'defines': [ + 'BUILDING_V8_SHARED', + ], + 'direct_dependent_settings': { + 'defines': [ + 'USING_V8_SHARED', + ], + }, + }], + ], + 'dependencies': [ + 'v8_base', + ], + 'include_dirs+': [ + '..', + '<(DEPTH)', + ], + 'sources': [ + '../src/setup-isolate-deserialize.cc', + '../src/snapshot/natives-external.cc', + '../src/snapshot/snapshot-external.cc', + ], + 'actions': [ + { + 'action_name': 'run_mksnapshot (external)', + 'inputs': [ + '<(mksnapshot_exec)', + ], + 'variables': { + 'mksnapshot_flags': [], + 'conditions': [ + ['v8_random_seed!=0', { + 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], + }], + ['v8_vector_stores!=0', { + 'mksnapshot_flags': ['--vector-stores'], + }], + ['v8_os_page_size!=0', { + 'mksnapshot_flags': ['--v8_os_page_size', '<(v8_os_page_size)'], + }], + ], + }, + 'conditions': [ + ['embed_script!=""', { + 'inputs': [ + '<(embed_script)', + ], + }], + ['warmup_script!=""', { + 'inputs': [ + '<(warmup_script)', + ], + }], + ['want_separate_host_toolset==1', { + 'target_conditions': [ + ['_toolset=="host"', { + 'outputs': [ + '<(PRODUCT_DIR)/snapshot_blob_host.bin', + ], + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_host.bin', + '<(embed_script)', + '<(warmup_script)', + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/snapshot_blob.bin', + ], + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin', + '<(embed_script)', + '<(warmup_script)', + ], + }], + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/snapshot_blob.bin', + ], + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin', + '<(embed_script)', + '<(warmup_script)', + ], + }], + ], + }, + ], + }], + ], +} diff --git a/deps/v8/include/libplatform/libplatform.h b/deps/v8/include/libplatform/libplatform.h index 2c830bf834b786..d001514f9883be 100644 --- a/deps/v8/include/libplatform/libplatform.h +++ b/deps/v8/include/libplatform/libplatform.h @@ -41,7 +41,7 @@ V8_PLATFORM_EXPORT std::unique_ptr NewDefaultPlatform( InProcessStackDumping::kDisabled, std::unique_ptr tracing_controller = {}); -V8_PLATFORM_EXPORT V8_DEPRECATE_SOON( +V8_PLATFORM_EXPORT V8_DEPRECATED( "Use NewDefaultPlatform instead", v8::Platform* CreateDefaultPlatform( int thread_pool_size = 0, diff --git a/deps/v8/include/v8-inspector.h b/deps/v8/include/v8-inspector.h index 6de8234fb83bcf..cb5ceff037b131 100644 --- a/deps/v8/include/v8-inspector.h +++ b/deps/v8/include/v8-inspector.h @@ -214,6 +214,11 @@ class V8_EXPORT V8InspectorClient { virtual bool canExecuteScripts(int contextGroupId) { return true; } virtual void maxAsyncCallStackDepthChanged(int depth) {} + + virtual std::unique_ptr resourceNameToUrl( + const StringView& resourceName) { + return nullptr; + } }; // These stack trace ids are intended to be passed between debuggers and be diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 05ab9b05210ab4..55ad7c8cf220cc 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -1019,8 +1019,12 @@ class V8_EXPORT PrimitiveArray { public: static Local New(Isolate* isolate, int length); int Length() const; - void Set(int index, Local item); - Local Get(int index); + V8_DEPRECATED("Use Isolate* version", + void Set(int index, Local item)); + V8_DEPRECATED("Use Isolate* version", + Local Get(int index)); + void Set(Isolate* isolate, int index, Local item); + Local Get(Isolate* isolate, int index); }; /** @@ -1735,8 +1739,8 @@ class V8_EXPORT StackTrace { /** * Returns a StackFrame at a particular index. */ - V8_DEPRECATE_SOON("Use Isolate version", - Local GetFrame(uint32_t index) const); + V8_DEPRECATED("Use Isolate version", + Local GetFrame(uint32_t index) const); Local GetFrame(Isolate* isolate, uint32_t index) const; /** @@ -2432,25 +2436,25 @@ class V8_EXPORT Value : public Data { Local context) const; V8_WARN_UNUSED_RESULT MaybeLocal ToInt32(Local context) const; - V8_DEPRECATE_SOON("Use maybe version", - Local ToBoolean(Isolate* isolate) const); - V8_DEPRECATE_SOON("Use maybe version", - Local ToNumber(Isolate* isolate) const); - V8_DEPRECATE_SOON("Use maybe version", - Local ToString(Isolate* isolate) const); - V8_DEPRECATE_SOON("Use maybe version", - Local ToObject(Isolate* isolate) const); - V8_DEPRECATE_SOON("Use maybe version", - Local ToInteger(Isolate* isolate) const); - V8_DEPRECATE_SOON("Use maybe version", - Local ToInt32(Isolate* isolate) const); - - inline V8_DEPRECATE_SOON("Use maybe version", - Local ToBoolean() const); - inline V8_DEPRECATE_SOON("Use maybe version", Local ToString() const); - inline V8_DEPRECATE_SOON("Use maybe version", Local ToObject() const); - inline V8_DEPRECATE_SOON("Use maybe version", - Local ToInteger() const); + V8_DEPRECATED("Use maybe version", + Local ToBoolean(Isolate* isolate) const); + V8_DEPRECATED("Use maybe version", + Local ToNumber(Isolate* isolate) const); + V8_DEPRECATED("Use maybe version", + Local ToString(Isolate* isolate) const); + V8_DEPRECATED("Use maybe version", + Local ToObject(Isolate* isolate) const); + V8_DEPRECATED("Use maybe version", + Local ToInteger(Isolate* isolate) const); + V8_DEPRECATED("Use maybe version", + Local ToInt32(Isolate* isolate) const); + + inline V8_DEPRECATED("Use maybe version", + Local ToBoolean() const); + inline V8_DEPRECATED("Use maybe version", Local ToString() const); + inline V8_DEPRECATED("Use maybe version", Local ToObject() const); + inline V8_DEPRECATED("Use maybe version", + Local ToInteger() const); /** * Attempts to convert a string to an array index. @@ -2467,14 +2471,14 @@ class V8_EXPORT Value : public Data { Local context) const; V8_WARN_UNUSED_RESULT Maybe Int32Value(Local context) const; - V8_DEPRECATE_SOON("Use maybe version", bool BooleanValue() const); - V8_DEPRECATE_SOON("Use maybe version", double NumberValue() const); - V8_DEPRECATE_SOON("Use maybe version", int64_t IntegerValue() const); - V8_DEPRECATE_SOON("Use maybe version", uint32_t Uint32Value() const); - V8_DEPRECATE_SOON("Use maybe version", int32_t Int32Value() const); + V8_DEPRECATED("Use maybe version", bool BooleanValue() const); + V8_DEPRECATED("Use maybe version", double NumberValue() const); + V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const); + V8_DEPRECATED("Use maybe version", uint32_t Uint32Value() const); + V8_DEPRECATED("Use maybe version", int32_t Int32Value() const); /** JS == */ - V8_DEPRECATE_SOON("Use maybe version", bool Equals(Local that) const); + V8_DEPRECATED("Use maybe version", bool Equals(Local that) const); V8_WARN_UNUSED_RESULT Maybe Equals(Local context, Local that) const; bool StrictEquals(Local that) const; @@ -2580,7 +2584,7 @@ class V8_EXPORT String : public Name { * Returns the number of bytes in the UTF-8 encoded * representation of this string. */ - V8_DEPRECATE_SOON("Use Isolate version instead", int Utf8Length() const); + V8_DEPRECATED("Use Isolate version instead", int Utf8Length() const); int Utf8Length(Isolate* isolate) const; @@ -2638,23 +2642,23 @@ class V8_EXPORT String : public Name { // 16-bit character codes. int Write(Isolate* isolate, uint16_t* buffer, int start = 0, int length = -1, int options = NO_OPTIONS) const; - V8_DEPRECATE_SOON("Use Isolate* version", - int Write(uint16_t* buffer, int start = 0, int length = -1, - int options = NO_OPTIONS) const); + V8_DEPRECATED("Use Isolate* version", + int Write(uint16_t* buffer, int start = 0, int length = -1, + int options = NO_OPTIONS) const); // One byte characters. int WriteOneByte(Isolate* isolate, uint8_t* buffer, int start = 0, int length = -1, int options = NO_OPTIONS) const; - V8_DEPRECATE_SOON("Use Isolate* version", - int WriteOneByte(uint8_t* buffer, int start = 0, - int length = -1, int options = NO_OPTIONS) - const); + V8_DEPRECATED("Use Isolate* version", + int WriteOneByte(uint8_t* buffer, int start = 0, + int length = -1, int options = NO_OPTIONS) + const); // UTF-8 encoded characters. int WriteUtf8(Isolate* isolate, char* buffer, int length = -1, int* nchars_ref = NULL, int options = NO_OPTIONS) const; - V8_DEPRECATE_SOON("Use Isolate* version", - int WriteUtf8(char* buffer, int length = -1, - int* nchars_ref = NULL, - int options = NO_OPTIONS) const); + V8_DEPRECATED("Use Isolate* version", + int WriteUtf8(char* buffer, int length = -1, + int* nchars_ref = NULL, + int options = NO_OPTIONS) const); /** * A zero length string. @@ -2818,9 +2822,9 @@ class V8_EXPORT String : public Name { */ static Local Concat(Isolate* isolate, Local left, Local right); - static V8_DEPRECATE_SOON("Use Isolate* version", - Local Concat(Local left, - Local right)); + static V8_DEPRECATED("Use Isolate* version", + Local Concat(Local left, + Local right)); /** * Creates a new external string using the data defined in the given @@ -5044,7 +5048,9 @@ class V8_EXPORT BooleanObject : public Object { */ class V8_EXPORT StringObject : public Object { public: - static Local New(Local value); + static Local New(Isolate* isolate, Local value); + V8_DEPRECATED("Use Isolate* version", + static Local New(Local value)); Local ValueOf() const; diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 09b2ae92dc8b1b..f68759f33bb16e 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -2227,6 +2227,10 @@ int PrimitiveArray::Length() const { return array->length(); } +void PrimitiveArray::Set(Isolate* isolate, int index, Local item) { + return Set(index, item); +} + void PrimitiveArray::Set(int index, Local item) { i::Handle array = Utils::OpenHandle(this); i::Isolate* isolate = array->GetIsolate(); @@ -2239,6 +2243,10 @@ void PrimitiveArray::Set(int index, Local item) { array->set(index, *i_item); } +Local PrimitiveArray::Get(Isolate* isolate, int index) { + return Get(index); +} + Local PrimitiveArray::Get(int index) { i::Handle array = Utils::OpenHandle(this); i::Isolate* isolate = array->GetIsolate(); @@ -6880,6 +6888,11 @@ bool v8::BooleanObject::ValueOf() const { } +Local v8::StringObject::New(Isolate* isolate, Local value) { + return New(value); +} + + Local v8::StringObject::New(Local value) { i::Handle string = Utils::OpenHandle(*value); i::Isolate* isolate = string->GetIsolate(); diff --git a/deps/v8/src/ast/ast-value-factory.cc b/deps/v8/src/ast/ast-value-factory.cc index 5efecc5375a33d..fc8be819f6cf93 100644 --- a/deps/v8/src/ast/ast-value-factory.cc +++ b/deps/v8/src/ast/ast-value-factory.cc @@ -182,7 +182,7 @@ std::forward_list AstConsString::ToRawStrings() const { return result; } -AstStringConstants::AstStringConstants(Isolate* isolate, uint32_t hash_seed) +AstStringConstants::AstStringConstants(Isolate* isolate, uint64_t hash_seed) : zone_(isolate->allocator(), ZONE_NAME), string_table_(AstRawString::Compare), hash_seed_(hash_seed) { diff --git a/deps/v8/src/ast/ast-value-factory.h b/deps/v8/src/ast/ast-value-factory.h index a453455dd015b3..e85b0675bf6fed 100644 --- a/deps/v8/src/ast/ast-value-factory.h +++ b/deps/v8/src/ast/ast-value-factory.h @@ -240,14 +240,14 @@ class AstBigInt { class AstStringConstants final { public: - AstStringConstants(Isolate* isolate, uint32_t hash_seed); + AstStringConstants(Isolate* isolate, uint64_t hash_seed); #define F(name, str) \ const AstRawString* name##_string() const { return name##_string_; } AST_STRING_CONSTANTS(F) #undef F - uint32_t hash_seed() const { return hash_seed_; } + uint64_t hash_seed() const { return hash_seed_; } const base::CustomMatcherHashMap* string_table() const { return &string_table_; } @@ -255,7 +255,7 @@ class AstStringConstants final { private: Zone zone_; base::CustomMatcherHashMap string_table_; - uint32_t hash_seed_; + uint64_t hash_seed_; #define F(name, str) AstRawString* name##_string_; AST_STRING_CONSTANTS(F) @@ -267,7 +267,7 @@ class AstStringConstants final { class AstValueFactory { public: AstValueFactory(Zone* zone, const AstStringConstants* string_constants, - uint32_t hash_seed) + uint64_t hash_seed) : string_table_(string_constants->string_table()), strings_(nullptr), strings_end_(&strings_), @@ -354,7 +354,7 @@ class AstValueFactory { Zone* zone_; - uint32_t hash_seed_; + uint64_t hash_seed_; }; } // namespace internal } // namespace v8 diff --git a/deps/v8/src/base/platform/platform-posix.cc b/deps/v8/src/base/platform/platform-posix.cc index d21107d6f785f6..8b9e85c0e88e06 100644 --- a/deps/v8/src/base/platform/platform-posix.cc +++ b/deps/v8/src/base/platform/platform-posix.cc @@ -246,11 +246,11 @@ void* OS::GetRandomMmapAddr() { // Use extra address space to isolate the mmap regions. raw_addr += uint64_t{0x400000000000}; #elif V8_TARGET_BIG_ENDIAN - // Big-endian Linux: 44 bits of virtual addressing. + // Big-endian Linux: 42 bits of virtual addressing. raw_addr &= uint64_t{0x03FFFFFFF000}; #else - // Little-endian Linux: 48 bits of virtual addressing. - raw_addr &= uint64_t{0x3FFFFFFFF000}; + // Little-endian Linux: 46 bits of virtual addressing. + raw_addr &= uint64_t{0x3FFFFFFF0000}; #endif #elif V8_TARGET_ARCH_MIPS64 // We allocate code in 256 MB aligned segments because of optimizations using diff --git a/deps/v8/src/builtins/array.tq b/deps/v8/src/builtins/array.tq index 69aea57f5a9846..e882f052c6e775 100644 --- a/deps/v8/src/builtins/array.tq +++ b/deps/v8/src/builtins/array.tq @@ -300,20 +300,21 @@ module array { macro ArrayForEachTorqueContinuation( context: Context, o: Object, len: Number, callbackfn: Callable, - thisArg: Object, initial_k: Smi): Object { + thisArg: Object, initial_k: Number): Object { // 5. Let k be 0. // 6. Repeat, while k < len - for (let k: Smi = initial_k; k < len; k = k + 1) { + for (let k: Number = initial_k; k < len; k = k + 1) { // 6a. Let Pk be ! ToString(k). - let pK: String = ToString_Inline(context, k); + // k is guaranteed to be a positive integer, hence ToString is + // side-effect free and HasProperty/GetProperty do the conversion inline. // 6b. Let kPresent be ? HasProperty(O, Pk). - let kPresent: Oddball = HasPropertyObject(o, pK, context, kHasProperty); + let kPresent: Oddball = HasPropertyObject(o, k, context, kHasProperty); // 6c. If kPresent is true, then if (kPresent == True) { // 6c. i. Let kValue be ? Get(O, Pk). - let kValue: Object = GetProperty(context, o, pK); + let kValue: Object = GetProperty(context, o, k); // 6c. ii. Perform ? Call(callbackfn, T, ). Call(context, callbackfn, thisArg, kValue, k, o); @@ -346,7 +347,7 @@ module array { to: Object): Object { try { let callbackfn: Callable = cast(callback) otherwise Unexpected; - let k: Smi = cast(initialK) otherwise Unexpected; + let k: Number = cast(initialK) otherwise Unexpected; let number_length: Number = cast(length) otherwise Unexpected; return ArrayForEachTorqueContinuation( @@ -446,7 +447,7 @@ module array { let thisArg: Object = arguments.length > 1 ? arguments[1] : Undefined; // Special cases. - let k: Smi = 0; + let k: Number = 0; try { return FastArrayForEach(context, o, len, callbackfn, thisArg) otherwise Bailout; diff --git a/deps/v8/src/builtins/builtins-collections-gen.cc b/deps/v8/src/builtins/builtins-collections-gen.cc index edbfb26a7132f2..e9791c164995ac 100644 --- a/deps/v8/src/builtins/builtins-collections-gen.cc +++ b/deps/v8/src/builtins/builtins-collections-gen.cc @@ -684,7 +684,7 @@ class CollectionsBuiltinsAssembler : public BaseCollectionsAssembler { Node* key_tagged, Variable* result, Label* entry_found, Label* not_found); - Node* ComputeIntegerHashForString(Node* context, Node* string_key); + Node* ComputeStringHash(Node* context, Node* string_key); void SameValueZeroString(Node* context, Node* key_string, Node* candidate_key, Label* if_same, Label* if_not_same); @@ -828,8 +828,7 @@ void CollectionsBuiltinsAssembler::FindOrderedHashTableEntryForSmiKey( Node* table, Node* smi_key, Variable* result, Label* entry_found, Label* not_found) { Node* const key_untagged = SmiUntag(smi_key); - Node* const hash = - ChangeInt32ToIntPtr(ComputeIntegerHash(key_untagged, Int32Constant(0))); + Node* const hash = ChangeInt32ToIntPtr(ComputeUnseededHash(key_untagged)); CSA_ASSERT(this, IntPtrGreaterThanOrEqual(hash, IntPtrConstant(0))); result->Bind(hash); FindOrderedHashTableEntry( @@ -844,7 +843,7 @@ template void CollectionsBuiltinsAssembler::FindOrderedHashTableEntryForStringKey( Node* context, Node* table, Node* key_tagged, Variable* result, Label* entry_found, Label* not_found) { - Node* const hash = ComputeIntegerHashForString(context, key_tagged); + Node* const hash = ComputeStringHash(context, key_tagged); CSA_ASSERT(this, IntPtrGreaterThanOrEqual(hash, IntPtrConstant(0))); result->Bind(hash); FindOrderedHashTableEntry( @@ -902,8 +901,8 @@ void CollectionsBuiltinsAssembler::FindOrderedHashTableEntryForOtherKey( result, entry_found, not_found); } -Node* CollectionsBuiltinsAssembler::ComputeIntegerHashForString( - Node* context, Node* string_key) { +Node* CollectionsBuiltinsAssembler::ComputeStringHash(Node* context, + Node* string_key) { VARIABLE(var_result, MachineType::PointerRepresentation()); Label hash_not_computed(this), done(this, &var_result); diff --git a/deps/v8/src/code-stub-assembler.cc b/deps/v8/src/code-stub-assembler.cc index 9a51017899dc97..01b73bcf405e4e 100644 --- a/deps/v8/src/code-stub-assembler.cc +++ b/deps/v8/src/code-stub-assembler.cc @@ -230,10 +230,6 @@ HEAP_CONSTANT_LIST(HEAP_CONSTANT_ACCESSOR); HEAP_CONSTANT_LIST(HEAP_CONSTANT_TEST); #undef HEAP_CONSTANT_TEST -TNode CodeStubAssembler::HashSeed() { - return LoadAndUntagToWord32Root(Heap::kHashSeedRootIndex); -} - Node* CodeStubAssembler::IntPtrOrSmiConstant(int value, ParameterMode mode) { if (mode == SMI_PARAMETERS) { return SmiConstant(value); @@ -7094,14 +7090,9 @@ template void CodeStubAssembler::NameDictionaryLookup( TNode, TNode, Label*, TVariable*, Label*, int, LookupMode); -Node* CodeStubAssembler::ComputeIntegerHash(Node* key) { - return ComputeIntegerHash(key, IntPtrConstant(kZeroHashSeed)); -} - -Node* CodeStubAssembler::ComputeIntegerHash(Node* key, Node* seed) { - // See v8::internal::ComputeIntegerHash() +Node* CodeStubAssembler::ComputeUnseededHash(Node* key) { + // See v8::internal::ComputeUnseededHash() Node* hash = TruncateIntPtrToInt32(key); - hash = Word32Xor(hash, seed); hash = Int32Add(Word32Xor(hash, Int32Constant(0xFFFFFFFF)), Word32Shl(hash, Int32Constant(15))); hash = Word32Xor(hash, Word32Shr(hash, Int32Constant(12))); @@ -7112,6 +7103,21 @@ Node* CodeStubAssembler::ComputeIntegerHash(Node* key, Node* seed) { return Word32And(hash, Int32Constant(0x3FFFFFFF)); } +Node* CodeStubAssembler::ComputeSeededHash(Node* key) { + Node* const function_addr = + ExternalConstant(ExternalReference::compute_integer_hash()); + Node* const isolate_ptr = + ExternalConstant(ExternalReference::isolate_address(isolate())); + + MachineType type_ptr = MachineType::Pointer(); + MachineType type_uint32 = MachineType::Uint32(); + + Node* const result = + CallCFunction2(type_uint32, type_ptr, type_uint32, function_addr, + isolate_ptr, TruncateIntPtrToInt32(key)); + return result; +} + void CodeStubAssembler::NumberDictionaryLookup( TNode dictionary, TNode intptr_index, Label* if_found, TVariable* var_entry, Label* if_not_found) { @@ -7122,9 +7128,7 @@ void CodeStubAssembler::NumberDictionaryLookup( TNode capacity = SmiUntag(GetCapacity(dictionary)); TNode mask = IntPtrSub(capacity, IntPtrConstant(1)); - TNode int32_seed = HashSeed(); - TNode hash = - ChangeUint32ToWord(ComputeIntegerHash(intptr_index, int32_seed)); + TNode hash = ChangeUint32ToWord(ComputeSeededHash(intptr_index)); Node* key_as_float64 = RoundIntPtrToFloat64(intptr_index); // See Dictionary::FirstProbe(). diff --git a/deps/v8/src/code-stub-assembler.h b/deps/v8/src/code-stub-assembler.h index 35341b65d53e66..cbfc3dce38f536 100644 --- a/deps/v8/src/code-stub-assembler.h +++ b/deps/v8/src/code-stub-assembler.h @@ -221,8 +221,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { HEAP_CONSTANT_LIST(HEAP_CONSTANT_TEST) #undef HEAP_CONSTANT_TEST - TNode HashSeed(); - Node* IntPtrOrSmiConstant(int value, ParameterMode mode); TNode BoolConstant(bool value) { return value ? Int32TrueConstant() : Int32FalseConstant(); @@ -1883,8 +1881,8 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler { int inlined_probes = kInlinedDictionaryProbes, LookupMode mode = kFindExisting); - Node* ComputeIntegerHash(Node* key); - Node* ComputeIntegerHash(Node* key, Node* seed); + Node* ComputeUnseededHash(Node* key); + Node* ComputeSeededHash(Node* key); void NumberDictionaryLookup(TNode dictionary, TNode intptr_index, Label* if_found, diff --git a/deps/v8/src/compiler/effect-control-linearizer.cc b/deps/v8/src/compiler/effect-control-linearizer.cc index 921bfd7852a770..d9554c06b5d785 100644 --- a/deps/v8/src/compiler/effect-control-linearizer.cc +++ b/deps/v8/src/compiler/effect-control-linearizer.cc @@ -4583,8 +4583,8 @@ Node* EffectControlLinearizer::LowerFindOrderedHashMapEntry(Node* node) { } } -Node* EffectControlLinearizer::ComputeIntegerHash(Node* value) { - // See v8::internal::ComputeIntegerHash() +Node* EffectControlLinearizer::ComputeUnseededHash(Node* value) { + // See v8::internal::ComputeUnseededHash() value = __ Int32Add(__ Word32Xor(value, __ Int32Constant(0xFFFFFFFF)), __ Word32Shl(value, __ Int32Constant(15))); value = __ Word32Xor(value, __ Word32Shr(value, __ Int32Constant(12))); @@ -4602,7 +4602,7 @@ Node* EffectControlLinearizer::LowerFindOrderedHashMapEntryForInt32Key( Node* key = NodeProperties::GetValueInput(node, 1); // Compute the integer hash code. - Node* hash = ChangeUint32ToUintPtr(ComputeIntegerHash(key)); + Node* hash = ChangeUint32ToUintPtr(ComputeUnseededHash(key)); Node* number_of_buckets = ChangeSmiToIntPtr(__ LoadField( AccessBuilder::ForOrderedHashTableBaseNumberOfBuckets(), table)); diff --git a/deps/v8/src/compiler/effect-control-linearizer.h b/deps/v8/src/compiler/effect-control-linearizer.h index 7f297f6a12a4af..870208dbea97c4 100644 --- a/deps/v8/src/compiler/effect-control-linearizer.h +++ b/deps/v8/src/compiler/effect-control-linearizer.h @@ -178,7 +178,7 @@ class V8_EXPORT_PRIVATE EffectControlLinearizer { Node* frame_state); Node* BuildFloat64RoundDown(Node* value); Node* BuildFloat64RoundTruncate(Node* input); - Node* ComputeIntegerHash(Node* value); + Node* ComputeUnseededHash(Node* value); Node* LowerStringComparison(Callable const& callable, Node* node); Node* IsElementsKindGreaterThan(Node* kind, ElementsKind reference_kind); diff --git a/deps/v8/src/external-reference.cc b/deps/v8/src/external-reference.cc index 8b09c67ccceca9..856ff6d54eb7fc 100644 --- a/deps/v8/src/external-reference.cc +++ b/deps/v8/src/external-reference.cc @@ -778,6 +778,15 @@ ExternalReference ExternalReference::jsreceiver_create_identity_hash( return ExternalReference(Redirect(FUNCTION_ADDR(f))); } +static uint32_t ComputeSeededIntegerHash(Isolate* isolate, uint32_t key) { + DisallowHeapAllocation no_gc; + return ComputeSeededHash(key, isolate->heap()->HashSeed()); +} + +ExternalReference ExternalReference::compute_integer_hash() { + return ExternalReference(Redirect(FUNCTION_ADDR(ComputeSeededIntegerHash))); +} + ExternalReference ExternalReference::copy_fast_number_jsarray_elements_to_typed_array() { return ExternalReference( diff --git a/deps/v8/src/external-reference.h b/deps/v8/src/external-reference.h index 0332c519747741..373485d6a91530 100644 --- a/deps/v8/src/external-reference.h +++ b/deps/v8/src/external-reference.h @@ -81,6 +81,7 @@ class StatsCounter; V(address_of_uint32_bias, "uint32_bias") \ V(bytecode_size_table_address, "Bytecodes::bytecode_size_table_address") \ V(check_object_type, "check_object_type") \ + V(compute_integer_hash, "ComputeSeededHash") \ V(compute_output_frames_function, "Deoptimizer::ComputeOutputFrames()") \ V(copy_fast_number_jsarray_elements_to_typed_array, \ "copy_fast_number_jsarray_elements_to_typed_array") \ diff --git a/deps/v8/src/flag-definitions.h b/deps/v8/src/flag-definitions.h index e8226006df48b0..980362a09d697e 100644 --- a/deps/v8/src/flag-definitions.h +++ b/deps/v8/src/flag-definitions.h @@ -162,6 +162,7 @@ struct MaybeBoolFlag { FLAG(MAYBE_BOOL, MaybeBoolFlag, nam, {false COMMA false}, cmt) #define DEFINE_INT(nam, def, cmt) FLAG(INT, int, nam, def, cmt) #define DEFINE_UINT(nam, def, cmt) FLAG(UINT, unsigned int, nam, def, cmt) +#define DEFINE_UINT64(nam, def, cmt) FLAG(UINT64, uint64_t, nam, def, cmt) #define DEFINE_FLOAT(nam, def, cmt) FLAG(FLOAT, double, nam, def, cmt) #define DEFINE_SIZE_T(nam, def, cmt) FLAG(SIZE_T, size_t, nam, def, cmt) #define DEFINE_STRING(nam, def, cmt) FLAG(STRING, const char*, nam, def, cmt) @@ -1019,9 +1020,9 @@ DEFINE_BOOL(randomize_hashes, true, "(with snapshots this option cannot override the baked-in seed)") DEFINE_BOOL(rehash_snapshot, true, "rehash strings from the snapshot to override the baked-in seed") -DEFINE_INT(hash_seed, 0, - "Fixed seed to use to hash property keys (0 means random)" - "(with snapshots this option cannot override the baked-in seed)") +DEFINE_UINT64(hash_seed, 0, + "Fixed seed to use to hash property keys (0 means random)" + "(with snapshots this option cannot override the baked-in seed)") DEFINE_INT(random_seed, 0, "Default seed for initializing random generator " "(0, the default, means to use system random).") diff --git a/deps/v8/src/flags.cc b/deps/v8/src/flags.cc index ef5772dce4d3d9..e003f09a03b5f5 100644 --- a/deps/v8/src/flags.cc +++ b/deps/v8/src/flags.cc @@ -39,6 +39,7 @@ struct Flag { TYPE_MAYBE_BOOL, TYPE_INT, TYPE_UINT, + TYPE_UINT64, TYPE_FLOAT, TYPE_SIZE_T, TYPE_STRING, @@ -78,6 +79,11 @@ struct Flag { return reinterpret_cast(valptr_); } + uint64_t* uint64_variable() const { + DCHECK(type_ == TYPE_UINT64); + return reinterpret_cast(valptr_); + } + double* float_variable() const { DCHECK(type_ == TYPE_FLOAT); return reinterpret_cast(valptr_); @@ -121,6 +127,11 @@ struct Flag { return *reinterpret_cast(defptr_); } + uint64_t uint64_default() const { + DCHECK(type_ == TYPE_UINT64); + return *reinterpret_cast(defptr_); + } + double float_default() const { DCHECK(type_ == TYPE_FLOAT); return *reinterpret_cast(defptr_); @@ -152,6 +163,8 @@ struct Flag { return *int_variable() == int_default(); case TYPE_UINT: return *uint_variable() == uint_default(); + case TYPE_UINT64: + return *uint64_variable() == uint64_default(); case TYPE_FLOAT: return *float_variable() == float_default(); case TYPE_SIZE_T: @@ -184,6 +197,9 @@ struct Flag { case TYPE_UINT: *uint_variable() = uint_default(); break; + case TYPE_UINT64: + *uint64_variable() = uint64_default(); + break; case TYPE_FLOAT: *float_variable() = float_default(); break; @@ -217,6 +233,8 @@ static const char* Type2String(Flag::FlagType type) { case Flag::TYPE_INT: return "int"; case Flag::TYPE_UINT: return "uint"; + case Flag::TYPE_UINT64: + return "uint64"; case Flag::TYPE_FLOAT: return "float"; case Flag::TYPE_SIZE_T: return "size_t"; @@ -243,6 +261,9 @@ std::ostream& operator<<(std::ostream& os, const Flag& flag) { // NOLINT case Flag::TYPE_UINT: os << *flag.uint_variable(); break; + case Flag::TYPE_UINT64: + os << *flag.uint64_variable(); + break; case Flag::TYPE_FLOAT: os << *flag.float_variable(); break; @@ -464,6 +485,12 @@ int FlagList::SetFlagsFromCommandLine(int* argc, return_code = j; } break; + case Flag::TYPE_UINT64: + if (!TryParseUnsigned(flag, arg, value, &endp, + flag->uint64_variable())) { + return_code = j; + } + break; case Flag::TYPE_FLOAT: *flag->float_variable() = strtod(value, &endp); break; diff --git a/deps/v8/src/frames.cc b/deps/v8/src/frames.cc index 2ba38e6b66d504..46adfcfd0bc4cb 100644 --- a/deps/v8/src/frames.cc +++ b/deps/v8/src/frames.cc @@ -2146,7 +2146,7 @@ InnerPointerToCodeCache::InnerPointerToCodeCacheEntry* InnerPointerToCodeCache::GetCacheEntry(Address inner_pointer) { isolate_->counters()->pc_to_code()->Increment(); DCHECK(base::bits::IsPowerOfTwo(kInnerPointerToCodeCacheSize)); - uint32_t hash = ComputeIntegerHash( + uint32_t hash = ComputeUnseededHash( ObjectAddressForHashing(reinterpret_cast(inner_pointer))); uint32_t index = hash & (kInnerPointerToCodeCacheSize - 1); InnerPointerToCodeCacheEntry* entry = cache(index); diff --git a/deps/v8/src/heap/heap-inl.h b/deps/v8/src/heap/heap-inl.h index 836923f31a29cc..f4e008a19c0fb8 100644 --- a/deps/v8/src/heap/heap-inl.h +++ b/deps/v8/src/heap/heap-inl.h @@ -529,13 +529,13 @@ Oddball* Heap::ToBoolean(bool condition) { return condition ? true_value() : false_value(); } -uint32_t Heap::HashSeed() { - uint32_t seed = static_cast(hash_seed()->value()); +uint64_t Heap::HashSeed() { + uint64_t seed; + hash_seed()->copy_out(0, reinterpret_cast(&seed), kInt64Size); DCHECK(FLAG_randomize_hashes || seed == 0); return seed; } - int Heap::NextScriptId() { int last_id = last_script_id()->value(); if (last_id == Smi::kMaxValue) last_id = v8::UnboundScript::kNoScriptId; diff --git a/deps/v8/src/heap/heap.cc b/deps/v8/src/heap/heap.cc index d8fad6dd6ff8c0..2afa50b75e857f 100644 --- a/deps/v8/src/heap/heap.cc +++ b/deps/v8/src/heap/heap.cc @@ -4693,10 +4693,6 @@ bool Heap::SetUp() { new ReadOnlySpace(this, RO_SPACE, NOT_EXECUTABLE); if (!read_only_space_->SetUp()) return false; - // Set up the seed that is used to randomize the string hash function. - DCHECK_EQ(Smi::kZero, hash_seed()); - if (FLAG_randomize_hashes) InitializeHashSeed(); - for (int i = 0; i < static_cast(v8::Isolate::kUseCounterFeatureCount); i++) { deferred_counters_[i] = 0; @@ -4756,12 +4752,14 @@ bool Heap::SetUp() { } void Heap::InitializeHashSeed() { + uint64_t new_hash_seed; if (FLAG_hash_seed == 0) { - int rnd = isolate()->random_number_generator()->NextInt(); - set_hash_seed(Smi::FromInt(rnd & Name::kHashBitMask)); + int64_t rnd = isolate()->random_number_generator()->NextInt64(); + new_hash_seed = static_cast(rnd); } else { - set_hash_seed(Smi::FromInt(FLAG_hash_seed)); + new_hash_seed = static_cast(FLAG_hash_seed); } + hash_seed()->copy_in(0, reinterpret_cast(&new_hash_seed), kInt64Size); } void Heap::SetStackLimits() { diff --git a/deps/v8/src/heap/heap.h b/deps/v8/src/heap/heap.h index a051d7262ebb02..a5038b254d9b6c 100644 --- a/deps/v8/src/heap/heap.h +++ b/deps/v8/src/heap/heap.h @@ -280,6 +280,8 @@ using v8::MemoryPressureLevel; V(Object, deserialize_lazy_handler_wide, DeserializeLazyHandlerWide) \ V(Object, deserialize_lazy_handler_extra_wide, \ DeserializeLazyHandlerExtraWide) \ + /* Hash seed */ \ + V(ByteArray, hash_seed, HashSeed) \ /* JS Entries */ \ V(Code, js_entry_code, JsEntryCode) \ V(Code, js_construct_entry_code, JsConstructEntryCode) \ @@ -291,7 +293,6 @@ using v8::MemoryPressureLevel; V(Smi, real_stack_limit, RealStackLimit) \ V(Smi, last_script_id, LastScriptId) \ V(Smi, last_debugging_id, LastDebuggingId) \ - V(Smi, hash_seed, HashSeed) \ /* To distinguish the function templates, so that we can find them in the */ \ /* function cache of the native context. */ \ V(Smi, next_template_serial_number, NextTemplateSerialNumber) \ @@ -917,7 +918,7 @@ class Heap { void IncrementDeferredCount(v8::Isolate::UseCounterFeature feature); - inline uint32_t HashSeed(); + inline uint64_t HashSeed(); inline int NextScriptId(); inline int NextDebuggingId(); diff --git a/deps/v8/src/heap/setup-heap-internal.cc b/deps/v8/src/heap/setup-heap-internal.cc index 3b232ba310dd55..4b38fb4a6ac537 100644 --- a/deps/v8/src/heap/setup-heap-internal.cc +++ b/deps/v8/src/heap/setup-heap-internal.cc @@ -591,6 +591,9 @@ void Heap::CreateInitialObjects() { set_minus_infinity_value( *factory->NewHeapNumber(-V8_INFINITY, IMMUTABLE, TENURED_READ_ONLY)); + set_hash_seed(*factory->NewByteArray(kInt64Size, TENURED)); + InitializeHashSeed(); + // Allocate cache for single character one byte strings. set_single_character_string_cache( *factory->NewFixedArray(String::kMaxOneByteCharCode + 1, TENURED)); diff --git a/deps/v8/src/inspector/v8-debugger-agent-impl.cc b/deps/v8/src/inspector/v8-debugger-agent-impl.cc index 6b3c0ab88708b7..6edf59445f92c4 100644 --- a/deps/v8/src/inspector/v8-debugger-agent-impl.cc +++ b/deps/v8/src/inspector/v8-debugger-agent-impl.cc @@ -1444,7 +1444,7 @@ void V8DebuggerAgentImpl::didParseSource( protocol::StringUtil::parseJSON(inspected->auxData())); } bool isLiveEdit = script->isLiveEdit(); - bool hasSourceURL = script->hasSourceURL(); + bool hasSourceURLComment = script->hasSourceURLComment(); bool isModule = script->isModule(); String16 scriptId = script->scriptId(); String16 scriptURL = script->sourceURL(); @@ -1464,7 +1464,8 @@ void V8DebuggerAgentImpl::didParseSource( Maybe executionContextAuxDataParam( std::move(executionContextAuxData)); const bool* isLiveEditParam = isLiveEdit ? &isLiveEdit : nullptr; - const bool* hasSourceURLParam = hasSourceURL ? &hasSourceURL : nullptr; + const bool* hasSourceURLParam = + hasSourceURLComment ? &hasSourceURLComment : nullptr; const bool* isModuleParam = isModule ? &isModule : nullptr; std::unique_ptr stack = V8StackTraceImpl::capture(m_inspector->debugger(), contextGroupId, 1); diff --git a/deps/v8/src/inspector/v8-debugger-script.cc b/deps/v8/src/inspector/v8-debugger-script.cc index d632df3f66c747..3ceb2af65202c8 100644 --- a/deps/v8/src/inspector/v8-debugger-script.cc +++ b/deps/v8/src/inspector/v8-debugger-script.cc @@ -6,6 +6,7 @@ #include "src/inspector/inspected-context.h" #include "src/inspector/string-util.h" +#include "src/inspector/v8-inspector-impl.h" #include "src/inspector/wasm-translation.h" #include "src/utils.h" @@ -110,41 +111,11 @@ class ActualScript : public V8DebuggerScript { public: ActualScript(v8::Isolate* isolate, v8::Local script, - bool isLiveEdit) + bool isLiveEdit, V8InspectorClient* client) : V8DebuggerScript(isolate, String16::fromInteger(script->Id()), - GetNameOrSourceUrl(script)), + GetScriptURL(script, client)), m_isLiveEdit(isLiveEdit) { - v8::Local tmp; - if (script->SourceURL().ToLocal(&tmp)) m_sourceURL = toProtocolString(tmp); - if (script->SourceMappingURL().ToLocal(&tmp)) - m_sourceMappingURL = toProtocolString(tmp); - m_startLine = script->LineOffset(); - m_startColumn = script->ColumnOffset(); - std::vector lineEnds = script->LineEnds(); - CHECK(lineEnds.size()); - int source_length = lineEnds[lineEnds.size() - 1]; - if (lineEnds.size()) { - m_endLine = static_cast(lineEnds.size()) + m_startLine - 1; - if (lineEnds.size() > 1) { - m_endColumn = source_length - lineEnds[lineEnds.size() - 2] - 1; - } else { - m_endColumn = source_length + m_startColumn; - } - } else { - m_endLine = m_startLine; - m_endColumn = m_startColumn; - } - - USE(script->ContextId().To(&m_executionContextId)); - - if (script->Source().ToLocal(&tmp)) { - m_source = toProtocolString(tmp); - } - - m_isModule = script->IsModule(); - - m_script.Reset(m_isolate, script); - m_script.AnnotateStrongRetainer(kGlobalDebuggerScriptHandleLabel); + Initialize(script); } bool isLiveEdit() const override { return m_isLiveEdit; } @@ -248,10 +219,18 @@ class ActualScript : public V8DebuggerScript { } private: - String16 GetNameOrSourceUrl(v8::Local script) { - v8::Local name; - if (script->Name().ToLocal(&name) || script->SourceURL().ToLocal(&name)) - return toProtocolString(name); + String16 GetScriptURL(v8::Local script, + V8InspectorClient* client) { + v8::Local sourceURL; + if (script->SourceURL().ToLocal(&sourceURL) && sourceURL->Length() > 0) + return toProtocolString(sourceURL); + v8::Local v8Name; + if (script->Name().ToLocal(&v8Name) && v8Name->Length() > 0) { + String16 name = toProtocolString(v8Name); + std::unique_ptr url = + client->resourceNameToUrl(toStringView(name)); + return url ? toString16(url->string()) : name; + } return String16(); } @@ -259,6 +238,41 @@ class ActualScript : public V8DebuggerScript { return m_script.Get(m_isolate); } + void Initialize(v8::Local script) { + v8::Local tmp; + m_hasSourceURLComment = + script->SourceURL().ToLocal(&tmp) && tmp->Length() > 0; + if (script->SourceMappingURL().ToLocal(&tmp)) + m_sourceMappingURL = toProtocolString(tmp); + m_startLine = script->LineOffset(); + m_startColumn = script->ColumnOffset(); + std::vector lineEnds = script->LineEnds(); + CHECK(lineEnds.size()); + int source_length = lineEnds[lineEnds.size() - 1]; + if (lineEnds.size()) { + m_endLine = static_cast(lineEnds.size()) + m_startLine - 1; + if (lineEnds.size() > 1) { + m_endColumn = source_length - lineEnds[lineEnds.size() - 2] - 1; + } else { + m_endColumn = source_length + m_startColumn; + } + } else { + m_endLine = m_startLine; + m_endColumn = m_startColumn; + } + + USE(script->ContextId().To(&m_executionContextId)); + + if (script->Source().ToLocal(&tmp)) { + m_source = toProtocolString(tmp); + } + + m_isModule = script->IsModule(); + + m_script.Reset(m_isolate, script); + m_script.AnnotateStrongRetainer(kGlobalDebuggerScriptHandleLabel); + } + String16 m_sourceMappingURL; bool m_isLiveEdit = false; bool m_isModule = false; @@ -392,9 +406,9 @@ class WasmVirtualScript : public V8DebuggerScript { std::unique_ptr V8DebuggerScript::Create( v8::Isolate* isolate, v8::Local scriptObj, - bool isLiveEdit) { + bool isLiveEdit, V8InspectorClient* client) { return std::unique_ptr( - new ActualScript(isolate, scriptObj, isLiveEdit)); + new ActualScript(isolate, scriptObj, isLiveEdit, client)); } std::unique_ptr V8DebuggerScript::CreateWasm( @@ -412,12 +426,11 @@ V8DebuggerScript::V8DebuggerScript(v8::Isolate* isolate, String16 id, V8DebuggerScript::~V8DebuggerScript() {} -const String16& V8DebuggerScript::sourceURL() const { - return m_sourceURL.isEmpty() ? m_url : m_sourceURL; -} - void V8DebuggerScript::setSourceURL(const String16& sourceURL) { - m_sourceURL = sourceURL; + if (sourceURL.length() > 0) { + m_hasSourceURLComment = true; + m_url = sourceURL; + } } bool V8DebuggerScript::setBreakpoint(const String16& condition, @@ -425,5 +438,4 @@ bool V8DebuggerScript::setBreakpoint(const String16& condition, v8::HandleScope scope(m_isolate); return script()->SetBreakpoint(toV8String(m_isolate, condition), loc, id); } - } // namespace v8_inspector diff --git a/deps/v8/src/inspector/v8-debugger-script.h b/deps/v8/src/inspector/v8-debugger-script.h index 3e3885ed52e1fd..ceaa5076c79bba 100644 --- a/deps/v8/src/inspector/v8-debugger-script.h +++ b/deps/v8/src/inspector/v8-debugger-script.h @@ -40,13 +40,14 @@ namespace v8_inspector { // Forward declaration. +class V8InspectorClient; class WasmTranslation; class V8DebuggerScript { public: static std::unique_ptr Create( v8::Isolate* isolate, v8::Local script, - bool isLiveEdit); + bool isLiveEdit, V8InspectorClient* client); static std::unique_ptr CreateWasm( v8::Isolate* isolate, WasmTranslation* wasmTranslation, v8::Local underlyingScript, String16 id, @@ -55,9 +56,9 @@ class V8DebuggerScript { virtual ~V8DebuggerScript(); const String16& scriptId() const { return m_id; } - const String16& url() const { return m_url; } - bool hasSourceURL() const { return !m_sourceURL.isEmpty(); } - const String16& sourceURL() const; + bool hasSourceURLComment() const { return m_hasSourceURLComment; } + const String16& sourceURL() const { return m_url; } + virtual const String16& sourceMappingURL() const = 0; virtual const String16& source() const = 0; virtual const String16& hash() const = 0; @@ -95,7 +96,7 @@ class V8DebuggerScript { String16 m_id; String16 m_url; - String16 m_sourceURL; + bool m_hasSourceURLComment = false; int m_executionContextId = 0; v8::Isolate* m_isolate; diff --git a/deps/v8/src/inspector/v8-debugger.cc b/deps/v8/src/inspector/v8-debugger.cc index 28212a19938629..6e4e6a1752e3ab 100644 --- a/deps/v8/src/inspector/v8-debugger.cc +++ b/deps/v8/src/inspector/v8-debugger.cc @@ -227,13 +227,15 @@ void V8Debugger::getCompiledScripts( v8::Local script = scripts.Get(i); if (!script->WasCompiled()) continue; if (script->IsEmbedded()) { - result.push_back(V8DebuggerScript::Create(m_isolate, script, false)); + result.push_back(V8DebuggerScript::Create(m_isolate, script, false, + m_inspector->client())); continue; } int contextId; if (!script->ContextId().To(&contextId)) continue; if (m_inspector->contextGroupId(contextId) != contextGroupId) continue; - result.push_back(V8DebuggerScript::Create(m_isolate, script, false)); + result.push_back(V8DebuggerScript::Create(m_isolate, script, false, + m_inspector->client())); } } @@ -542,13 +544,14 @@ void V8Debugger::ScriptCompiled(v8::Local script, }); } else if (m_ignoreScriptParsedEventsCounter == 0) { v8::Isolate* isolate = m_isolate; + V8InspectorClient* client = m_inspector->client(); m_inspector->forEachSession( m_inspector->contextGroupId(contextId), - [&isolate, &script, &has_compile_error, - &is_live_edited](V8InspectorSessionImpl* session) { + [&isolate, &script, &has_compile_error, &is_live_edited, + &client](V8InspectorSessionImpl* session) { if (!session->debuggerAgent()->enabled()) return; session->debuggerAgent()->didParseSource( - V8DebuggerScript::Create(isolate, script, is_live_edited), + V8DebuggerScript::Create(isolate, script, is_live_edited, client), !has_compile_error); }); } diff --git a/deps/v8/src/inspector/v8-profiler-agent-impl.cc b/deps/v8/src/inspector/v8-profiler-agent-impl.cc index 59a99d79d54c2f..f14815fdc4b031 100644 --- a/deps/v8/src/inspector/v8-profiler-agent-impl.cc +++ b/deps/v8/src/inspector/v8-profiler-agent-impl.cc @@ -7,6 +7,7 @@ #include #include "src/base/atomicops.h" +#include "src/debug/debug-interface.h" #include "src/flags.h" // TODO(jgruber): Remove include and DEPS entry. #include "src/inspector/protocol/Protocol.h" #include "src/inspector/string-util.h" @@ -31,6 +32,15 @@ static const char typeProfileStarted[] = "typeProfileStarted"; namespace { +String16 resourceNameToUrl(V8InspectorImpl* inspector, + v8::Local v8Name) { + String16 name = toProtocolString(v8Name); + if (!inspector) return name; + std::unique_ptr url = + inspector->client()->resourceNameToUrl(toStringView(name)); + return url ? toString16(url->string()) : name; +} + std::unique_ptr> buildInspectorObjectForPositionTicks(const v8::CpuProfileNode* node) { unsigned lineCount = node->GetHitLineCount(); @@ -51,13 +61,14 @@ buildInspectorObjectForPositionTicks(const v8::CpuProfileNode* node) { } std::unique_ptr buildInspectorObjectFor( - v8::Isolate* isolate, const v8::CpuProfileNode* node) { + V8InspectorImpl* inspector, const v8::CpuProfileNode* node) { + v8::Isolate* isolate = inspector->isolate(); v8::HandleScope handleScope(isolate); auto callFrame = protocol::Runtime::CallFrame::create() .setFunctionName(toProtocolString(node->GetFunctionName())) .setScriptId(String16::fromInteger(node->GetScriptId())) - .setUrl(toProtocolString(node->GetScriptResourceName())) + .setUrl(resourceNameToUrl(inspector, node->GetScriptResourceName())) .setLineNumber(node->GetLineNumber() - 1) .setColumnNumber(node->GetColumnNumber() - 1) .build(); @@ -107,18 +118,19 @@ std::unique_ptr> buildInspectorObjectForTimestamps( return array; } -void flattenNodesTree(v8::Isolate* isolate, const v8::CpuProfileNode* node, +void flattenNodesTree(V8InspectorImpl* inspector, + const v8::CpuProfileNode* node, protocol::Array* list) { - list->addItem(buildInspectorObjectFor(isolate, node)); + list->addItem(buildInspectorObjectFor(inspector, node)); const int childrenCount = node->GetChildrenCount(); for (int i = 0; i < childrenCount; i++) - flattenNodesTree(isolate, node->GetChild(i), list); + flattenNodesTree(inspector, node->GetChild(i), list); } std::unique_ptr createCPUProfile( - v8::Isolate* isolate, v8::CpuProfile* v8profile) { + V8InspectorImpl* inspector, v8::CpuProfile* v8profile) { auto nodes = protocol::Array::create(); - flattenNodesTree(isolate, v8profile->GetTopDownRoot(), nodes.get()); + flattenNodesTree(inspector, v8profile->GetTopDownRoot(), nodes.get()); return protocol::Profiler::Profile::create() .setNodes(std::move(nodes)) .setStartTime(static_cast(v8profile->GetStartTime())) @@ -320,7 +332,7 @@ std::unique_ptr createCoverageRange( } Response coverageToProtocol( - v8::Isolate* isolate, const v8::debug::Coverage& coverage, + V8InspectorImpl* inspector, const v8::debug::Coverage& coverage, std::unique_ptr>* out_result) { std::unique_ptr> result = @@ -361,8 +373,10 @@ Response coverageToProtocol( } String16 url; v8::Local name; - if (script->Name().ToLocal(&name) || script->SourceURL().ToLocal(&name)) { + if (script->SourceURL().ToLocal(&name) && name->Length()) { url = toProtocolString(name); + } else if (script->Name().ToLocal(&name) && name->Length()) { + url = resourceNameToUrl(inspector, name); } result->addItem(protocol::Profiler::ScriptCoverage::create() .setScriptId(String16::fromInteger(script->Id())) @@ -384,7 +398,7 @@ Response V8ProfilerAgentImpl::takePreciseCoverage( } v8::HandleScope handle_scope(m_isolate); v8::debug::Coverage coverage = v8::debug::Coverage::CollectPrecise(m_isolate); - return coverageToProtocol(m_isolate, coverage, out_result); + return coverageToProtocol(m_session->inspector(), coverage, out_result); } Response V8ProfilerAgentImpl::getBestEffortCoverage( @@ -393,12 +407,12 @@ Response V8ProfilerAgentImpl::getBestEffortCoverage( v8::HandleScope handle_scope(m_isolate); v8::debug::Coverage coverage = v8::debug::Coverage::CollectBestEffort(m_isolate); - return coverageToProtocol(m_isolate, coverage, out_result); + return coverageToProtocol(m_session->inspector(), coverage, out_result); } namespace { std::unique_ptr> -typeProfileToProtocol(v8::Isolate* isolate, +typeProfileToProtocol(V8InspectorImpl* inspector, const v8::debug::TypeProfile& type_profile) { std::unique_ptr> result = protocol::Array::create(); @@ -426,8 +440,10 @@ typeProfileToProtocol(v8::Isolate* isolate, } String16 url; v8::Local name; - if (script->Name().ToLocal(&name) || script->SourceURL().ToLocal(&name)) { + if (script->SourceURL().ToLocal(&name) && name->Length()) { url = toProtocolString(name); + } else if (script->Name().ToLocal(&name) && name->Length()) { + url = resourceNameToUrl(inspector, name); } result->addItem(protocol::Profiler::ScriptTypeProfile::create() .setScriptId(String16::fromInteger(script->Id())) @@ -462,7 +478,7 @@ Response V8ProfilerAgentImpl::takeTypeProfile( v8::HandleScope handle_scope(m_isolate); v8::debug::TypeProfile type_profile = v8::debug::TypeProfile::Collect(m_isolate); - *out_result = typeProfileToProtocol(m_isolate, type_profile); + *out_result = typeProfileToProtocol(m_session->inspector(), type_profile); return Response::OK(); } @@ -491,7 +507,7 @@ std::unique_ptr V8ProfilerAgentImpl::stopProfiling( m_profiler->StopProfiling(toV8String(m_isolate, title)); std::unique_ptr result; if (profile) { - if (serialize) result = createCPUProfile(m_isolate, profile); + if (serialize) result = createCPUProfile(m_session->inspector(), profile); profile->Delete(); } --m_startedProfilesCount; diff --git a/deps/v8/src/inspector/v8-stack-trace-impl.cc b/deps/v8/src/inspector/v8-stack-trace-impl.cc index 8c208aaf8a26c2..8d385d0d6d8ad7 100644 --- a/deps/v8/src/inspector/v8-stack-trace-impl.cc +++ b/deps/v8/src/inspector/v8-stack-trace-impl.cc @@ -7,6 +7,7 @@ #include #include "src/inspector/v8-debugger.h" +#include "src/inspector/v8-inspector-impl.h" #include "src/inspector/wasm-translation.h" namespace v8_inspector { @@ -71,7 +72,10 @@ std::unique_ptr buildInspectorObjectCommon( std::unique_ptr> inspectorFrames = protocol::Array::create(); for (size_t i = 0; i < frames.size(); i++) { - inspectorFrames->addItem(frames[i]->buildInspectorObject()); + V8InspectorClient* client = nullptr; + if (debugger && debugger->inspector()) + client = debugger->inspector()->client(); + inspectorFrames->addItem(frames[i]->buildInspectorObject(client)); } std::unique_ptr stackTrace = protocol::Runtime::StackTrace::create() @@ -115,7 +119,9 @@ StackFrame::StackFrame(v8::Local v8Frame) m_scriptId(String16::fromInteger(v8Frame->GetScriptId())), m_sourceURL(toProtocolString(v8Frame->GetScriptNameOrSourceURL())), m_lineNumber(v8Frame->GetLineNumber() - 1), - m_columnNumber(v8Frame->GetColumn() - 1) { + m_columnNumber(v8Frame->GetColumn() - 1), + m_hasSourceURLComment(v8Frame->GetScriptName() != + v8Frame->GetScriptNameOrSourceURL()) { DCHECK_NE(v8::Message::kNoLineNumberInfo, m_lineNumber + 1); DCHECK_NE(v8::Message::kNoColumnInfo, m_columnNumber + 1); } @@ -135,12 +141,20 @@ int StackFrame::lineNumber() const { return m_lineNumber; } int StackFrame::columnNumber() const { return m_columnNumber; } -std::unique_ptr StackFrame::buildInspectorObject() - const { +std::unique_ptr StackFrame::buildInspectorObject( + V8InspectorClient* client) const { + String16 frameUrl = m_sourceURL; + if (client && !m_hasSourceURLComment && frameUrl.length() > 0) { + std::unique_ptr url = + client->resourceNameToUrl(toStringView(m_sourceURL)); + if (url) { + frameUrl = toString16(url->string()); + } + } return protocol::Runtime::CallFrame::create() .setFunctionName(m_functionName) .setScriptId(m_scriptId) - .setUrl(m_sourceURL) + .setUrl(frameUrl) .setLineNumber(m_lineNumber) .setColumnNumber(m_columnNumber) .build(); diff --git a/deps/v8/src/inspector/v8-stack-trace-impl.h b/deps/v8/src/inspector/v8-stack-trace-impl.h index 87d2b0f0270823..513aa41b909c52 100644 --- a/deps/v8/src/inspector/v8-stack-trace-impl.h +++ b/deps/v8/src/inspector/v8-stack-trace-impl.h @@ -33,7 +33,8 @@ class StackFrame { const String16& sourceURL() const; int lineNumber() const; // 0-based. int columnNumber() const; // 0-based. - std::unique_ptr buildInspectorObject() const; + std::unique_ptr buildInspectorObject( + V8InspectorClient* client) const; bool isEqual(StackFrame* frame) const; private: @@ -42,6 +43,7 @@ class StackFrame { String16 m_sourceURL; int m_lineNumber; // 0-based. int m_columnNumber; // 0-based. + bool m_hasSourceURLComment; }; class V8StackTraceImpl : public V8StackTrace { diff --git a/deps/v8/src/json-parser.cc b/deps/v8/src/json-parser.cc index 7da11db9cfe5b6..7323b714a53031 100644 --- a/deps/v8/src/json-parser.cc +++ b/deps/v8/src/json-parser.cc @@ -831,7 +831,8 @@ Handle JsonParser::ScanJsonString() { int position = position_; uc32 c0 = c0_; - uint32_t running_hash = isolate()->heap()->HashSeed(); + uint32_t running_hash = + static_cast(isolate()->heap()->HashSeed()); uint32_t index = 0; bool is_array_index = true; diff --git a/deps/v8/src/objects-inl.h b/deps/v8/src/objects-inl.h index edf48fecf56c0e..97a5463bc7f8fd 100644 --- a/deps/v8/src/objects-inl.h +++ b/deps/v8/src/objects-inl.h @@ -3137,14 +3137,14 @@ bool NumberDictionaryBaseShape::IsMatch(uint32_t key, Object* other) { } uint32_t NumberDictionaryBaseShape::Hash(Isolate* isolate, uint32_t key) { - return ComputeIntegerHash(key, isolate->heap()->HashSeed()); + return ComputeSeededHash(key, isolate->heap()->HashSeed()); } uint32_t NumberDictionaryBaseShape::HashForObject(Isolate* isolate, Object* other) { DCHECK(other->IsNumber()); - return ComputeIntegerHash(static_cast(other->Number()), - isolate->heap()->HashSeed()); + return ComputeSeededHash(static_cast(other->Number()), + isolate->heap()->HashSeed()); } Handle NumberDictionaryBaseShape::AsHandle(Isolate* isolate, @@ -3226,18 +3226,18 @@ uint32_t ObjectHashTableShape::HashForObject(Isolate* isolate, Object* other) { Object* Object::GetSimpleHash(Object* object) { DisallowHeapAllocation no_gc; if (object->IsSmi()) { - uint32_t hash = ComputeIntegerHash(Smi::ToInt(object)); + uint32_t hash = ComputeUnseededHash(Smi::ToInt(object)); return Smi::FromInt(hash & Smi::kMaxValue); } if (object->IsHeapNumber()) { double num = HeapNumber::cast(object)->value(); if (std::isnan(num)) return Smi::FromInt(Smi::kMaxValue); - // Use ComputeIntegerHash for all values in Signed32 range, including -0, + // Use ComputeUnseededHash for all values in Signed32 range, including -0, // which is considered equal to 0 because collections use SameValueZero. uint32_t hash; // Check range before conversion to avoid undefined behavior. if (num >= kMinInt && num <= kMaxInt && FastI2D(FastD2I(num)) == num) { - hash = ComputeIntegerHash(FastD2I(num)); + hash = ComputeUnseededHash(FastD2I(num)); } else { hash = ComputeLongHash(double_to_uint64(num)); } diff --git a/deps/v8/src/objects.cc b/deps/v8/src/objects.cc index 80442d5bd89ba1..d778ca799fbf77 100644 --- a/deps/v8/src/objects.cc +++ b/deps/v8/src/objects.cc @@ -12120,9 +12120,7 @@ uint32_t StringHasher::GetHashField() { } } - -uint32_t StringHasher::ComputeUtf8Hash(Vector chars, - uint32_t seed, +uint32_t StringHasher::ComputeUtf8Hash(Vector chars, uint64_t seed, int* utf16_length_out) { int vector_length = chars.length(); // Handle some edge cases @@ -16960,7 +16958,7 @@ Handle JSGlobalObject::EnsureEmptyPropertyCell( // algorithm. class TwoCharHashTableKey : public StringTableKey { public: - TwoCharHashTableKey(uint16_t c1, uint16_t c2, uint32_t seed) + TwoCharHashTableKey(uint16_t c1, uint16_t c2, uint64_t seed) : StringTableKey(ComputeHashField(c1, c2, seed)), c1_(c1), c2_(c2) {} bool IsMatch(Object* o) override { @@ -16977,9 +16975,9 @@ class TwoCharHashTableKey : public StringTableKey { } private: - uint32_t ComputeHashField(uint16_t c1, uint16_t c2, uint32_t seed) { + uint32_t ComputeHashField(uint16_t c1, uint16_t c2, uint64_t seed) { // Char 1. - uint32_t hash = seed; + uint32_t hash = static_cast(seed); hash += c1; hash += hash << 10; hash ^= hash >> 6; @@ -17177,7 +17175,7 @@ namespace { class StringTableNoAllocateKey : public StringTableKey { public: - StringTableNoAllocateKey(String* string, uint32_t seed) + StringTableNoAllocateKey(String* string, uint64_t seed) : StringTableKey(0), string_(string) { StringShape shape(string); one_byte_ = shape.HasOnlyOneByteChars(); diff --git a/deps/v8/src/objects/bigint.h b/deps/v8/src/objects/bigint.h index e6547389343c69..e350a4d0b7dcd6 100644 --- a/deps/v8/src/objects/bigint.h +++ b/deps/v8/src/objects/bigint.h @@ -129,7 +129,7 @@ class V8_EXPORT_PRIVATE BigInt : public BigIntBase { bool ToBoolean() { return !is_zero(); } uint32_t Hash() { // TODO(jkummerow): Improve this. At least use length and sign. - return is_zero() ? 0 : ComputeIntegerHash(static_cast(digit(0))); + return is_zero() ? 0 : ComputeLongHash(static_cast(digit(0))); } static bool EqualToString(Handle x, Handle y); diff --git a/deps/v8/src/objects/ordered-hash-table.h b/deps/v8/src/objects/ordered-hash-table.h index a1129d105d2025..f5313f900627b6 100644 --- a/deps/v8/src/objects/ordered-hash-table.h +++ b/deps/v8/src/objects/ordered-hash-table.h @@ -143,7 +143,7 @@ class OrderedHashTable : public OrderedHashTableBase { // This special cases for Smi, so that we avoid the HandleScope // creation below. if (key->IsSmi()) { - uint32_t hash = ComputeIntegerHash(Smi::ToInt(key)); + uint32_t hash = ComputeUnseededHash(Smi::ToInt(key)); return HashToEntry(hash & Smi::kMaxValue); } HandleScope scope(isolate); diff --git a/deps/v8/src/objects/string-inl.h b/deps/v8/src/objects/string-inl.h index a5d02aec80a45b..7eef12352414f6 100644 --- a/deps/v8/src/objects/string-inl.h +++ b/deps/v8/src/objects/string-inl.h @@ -195,7 +195,7 @@ Char FlatStringReader::Get(int index) { template class SequentialStringKey : public StringTableKey { public: - explicit SequentialStringKey(Vector string, uint32_t seed) + explicit SequentialStringKey(Vector string, uint64_t seed) : StringTableKey(StringHasher::HashSequentialString( string.start(), string.length(), seed)), string_(string) {} @@ -205,7 +205,7 @@ class SequentialStringKey : public StringTableKey { class OneByteStringKey : public SequentialStringKey { public: - OneByteStringKey(Vector str, uint32_t seed) + OneByteStringKey(Vector str, uint64_t seed) : SequentialStringKey(str, seed) {} bool IsMatch(Object* string) override { @@ -250,7 +250,7 @@ class SeqOneByteSubStringKey : public StringTableKey { class TwoByteStringKey : public SequentialStringKey { public: - explicit TwoByteStringKey(Vector str, uint32_t seed) + explicit TwoByteStringKey(Vector str, uint64_t seed) : SequentialStringKey(str, seed) {} bool IsMatch(Object* string) override { @@ -263,7 +263,7 @@ class TwoByteStringKey : public SequentialStringKey { // Utf8StringKey carries a vector of chars as key. class Utf8StringKey : public StringTableKey { public: - explicit Utf8StringKey(Vector string, uint32_t seed) + explicit Utf8StringKey(Vector string, uint64_t seed) : StringTableKey(StringHasher::ComputeUtf8Hash(string, seed, &chars_)), string_(string) {} diff --git a/deps/v8/src/parsing/parse-info.h b/deps/v8/src/parsing/parse-info.h index 08f15c865c97db..e2414199a96448 100644 --- a/deps/v8/src/parsing/parse-info.h +++ b/deps/v8/src/parsing/parse-info.h @@ -139,8 +139,8 @@ class V8_EXPORT_PRIVATE ParseInfo { uintptr_t stack_limit() const { return stack_limit_; } void set_stack_limit(uintptr_t stack_limit) { stack_limit_ = stack_limit; } - uint32_t hash_seed() const { return hash_seed_; } - void set_hash_seed(uint32_t hash_seed) { hash_seed_ = hash_seed; } + uint64_t hash_seed() const { return hash_seed_; } + void set_hash_seed(uint64_t hash_seed) { hash_seed_ = hash_seed; } int function_flags() const { return function_flags_; } void set_function_flags(int function_flags) { @@ -264,7 +264,7 @@ class V8_EXPORT_PRIVATE ParseInfo { DeclarationScope* script_scope_; UnicodeCache* unicode_cache_; uintptr_t stack_limit_; - uint32_t hash_seed_; + uint64_t hash_seed_; // TODO(leszeks): Move any remaining flags used here either to the flags_ // field or to other fields. int function_flags_; diff --git a/deps/v8/src/profiler/allocation-tracker.cc b/deps/v8/src/profiler/allocation-tracker.cc index cf672f920ccfa7..078c70e8dd8337 100644 --- a/deps/v8/src/profiler/allocation-tracker.cc +++ b/deps/v8/src/profiler/allocation-tracker.cc @@ -239,7 +239,7 @@ void AllocationTracker::AllocationEvent(Address addr, int size) { static uint32_t SnapshotObjectIdHash(SnapshotObjectId id) { - return ComputeIntegerHash(static_cast(id)); + return ComputeUnseededHash(static_cast(id)); } diff --git a/deps/v8/src/profiler/heap-profiler.cc b/deps/v8/src/profiler/heap-profiler.cc index 10645ad16161f8..02b80c21d6e7e7 100644 --- a/deps/v8/src/profiler/heap-profiler.cc +++ b/deps/v8/src/profiler/heap-profiler.cc @@ -16,14 +16,14 @@ namespace internal { HeapProfiler::HeapProfiler(Heap* heap) : ids_(new HeapObjectsMap(heap)), - names_(new StringsStorage(heap->HashSeed())), + names_(new StringsStorage()), is_tracking_object_moves_(false) {} HeapProfiler::~HeapProfiler() = default; void HeapProfiler::DeleteAllSnapshots() { snapshots_.clear(); - names_.reset(new StringsStorage(heap()->HashSeed())); + names_.reset(new StringsStorage()); } diff --git a/deps/v8/src/profiler/heap-snapshot-generator.cc b/deps/v8/src/profiler/heap-snapshot-generator.cc index 841d4e16e57209..082cb864ce6249 100644 --- a/deps/v8/src/profiler/heap-snapshot-generator.cc +++ b/deps/v8/src/profiler/heap-snapshot-generator.cc @@ -525,7 +525,7 @@ SnapshotObjectId HeapObjectsMap::GenerateId(v8::RetainedObjectInfo* info) { heap_->HashSeed()); intptr_t element_count = info->GetElementCount(); if (element_count != -1) { - id ^= ComputeIntegerHash(static_cast(element_count)); + id ^= ComputeUnseededHash(static_cast(element_count)); } return id << 1; } diff --git a/deps/v8/src/profiler/heap-snapshot-generator.h b/deps/v8/src/profiler/heap-snapshot-generator.h index d0e17edf03aa50..899fd89a9c66d8 100644 --- a/deps/v8/src/profiler/heap-snapshot-generator.h +++ b/deps/v8/src/profiler/heap-snapshot-generator.h @@ -296,7 +296,7 @@ class HeapEntriesMap { private: static uint32_t Hash(HeapThing thing) { - return ComputeIntegerHash( + return ComputeUnseededHash( static_cast(reinterpret_cast(thing))); } @@ -509,7 +509,7 @@ class NativeObjectsExplorer { struct RetainedInfoHasher { std::size_t operator()(v8::RetainedObjectInfo* info) const { - return ComputeIntegerHash(static_cast(info->GetHash())); + return ComputeUnseededHash(static_cast(info->GetHash())); } }; struct RetainedInfoEquals { diff --git a/deps/v8/src/profiler/profile-generator.cc b/deps/v8/src/profiler/profile-generator.cc index 4273234dd23d86..261d9f0eaf376f 100644 --- a/deps/v8/src/profiler/profile-generator.cc +++ b/deps/v8/src/profiler/profile-generator.cc @@ -83,16 +83,16 @@ CodeEntry* CodeEntry::UnresolvedEntryCreateTrait::Create() { } uint32_t CodeEntry::GetHash() const { - uint32_t hash = ComputeIntegerHash(tag()); + uint32_t hash = ComputeUnseededHash(tag()); if (script_id_ != v8::UnboundScript::kNoScriptId) { - hash ^= ComputeIntegerHash(static_cast(script_id_)); - hash ^= ComputeIntegerHash(static_cast(position_)); + hash ^= ComputeUnseededHash(static_cast(script_id_)); + hash ^= ComputeUnseededHash(static_cast(position_)); } else { - hash ^= ComputeIntegerHash( + hash ^= ComputeUnseededHash( static_cast(reinterpret_cast(name_))); - hash ^= ComputeIntegerHash( + hash ^= ComputeUnseededHash( static_cast(reinterpret_cast(resource_name_))); - hash ^= ComputeIntegerHash(line_number_); + hash ^= ComputeUnseededHash(line_number_); } return hash; } @@ -597,9 +597,7 @@ void CodeMap::Print() { } CpuProfilesCollection::CpuProfilesCollection(Isolate* isolate) - : resource_names_(isolate->heap()->HashSeed()), - profiler_(nullptr), - current_profiles_semaphore_(1) {} + : profiler_(nullptr), current_profiles_semaphore_(1) {} bool CpuProfilesCollection::StartProfiling(const char* title, bool record_samples, diff --git a/deps/v8/src/profiler/profile-generator.h b/deps/v8/src/profiler/profile-generator.h index e575a786481d51..135365939a01ca 100644 --- a/deps/v8/src/profiler/profile-generator.h +++ b/deps/v8/src/profiler/profile-generator.h @@ -241,7 +241,7 @@ class ProfileNode { }; struct Hasher { std::size_t operator()(CodeEntryAndLineNumber pair) const { - return pair.code_entry->GetHash() ^ ComputeIntegerHash(pair.line_number); + return pair.code_entry->GetHash() ^ ComputeUnseededHash(pair.line_number); } }; diff --git a/deps/v8/src/profiler/profiler-listener.cc b/deps/v8/src/profiler/profiler-listener.cc index e3c2c140fb619f..5711c1e0add943 100644 --- a/deps/v8/src/profiler/profiler-listener.cc +++ b/deps/v8/src/profiler/profiler-listener.cc @@ -17,9 +17,7 @@ namespace internal { ProfilerListener::ProfilerListener(Isolate* isolate, CodeEventObserver* observer) - : isolate_(isolate), - observer_(observer), - function_and_resource_names_(isolate->heap()->HashSeed()) {} + : isolate_(isolate), observer_(observer) {} ProfilerListener::~ProfilerListener() = default; diff --git a/deps/v8/src/profiler/strings-storage.cc b/deps/v8/src/profiler/strings-storage.cc index e48d054df63ea2..543b277ad3b976 100644 --- a/deps/v8/src/profiler/strings-storage.cc +++ b/deps/v8/src/profiler/strings-storage.cc @@ -17,8 +17,7 @@ bool StringsStorage::StringsMatch(void* key1, void* key2) { 0; } -StringsStorage::StringsStorage(uint32_t hash_seed) - : hash_seed_(hash_seed), names_(StringsMatch) {} +StringsStorage::StringsStorage() : names_(StringsMatch) {} StringsStorage::~StringsStorage() { for (base::HashMap::Entry* p = names_.Start(); p != nullptr; @@ -116,7 +115,7 @@ const char* StringsStorage::GetFunctionName(const char* name) { } base::HashMap::Entry* StringsStorage::GetEntry(const char* str, int len) { - uint32_t hash = StringHasher::HashSequentialString(str, len, hash_seed_); + uint32_t hash = StringHasher::HashSequentialString(str, len, kZeroHashSeed); return names_.LookupOrInsert(const_cast(str), hash); } diff --git a/deps/v8/src/profiler/strings-storage.h b/deps/v8/src/profiler/strings-storage.h index cdc22e48f22a58..589113be833d88 100644 --- a/deps/v8/src/profiler/strings-storage.h +++ b/deps/v8/src/profiler/strings-storage.h @@ -20,7 +20,7 @@ class Name; // forever, even if they disappear from JS heap or external storage. class V8_EXPORT_PRIVATE StringsStorage { public: - explicit StringsStorage(uint32_t hash_seed); + StringsStorage(); ~StringsStorage(); // Copies the given c-string and stores it, returning the stored copy, or just @@ -49,7 +49,6 @@ class V8_EXPORT_PRIVATE StringsStorage { PRINTF_FORMAT(2, 0) const char* GetVFormatted(const char* format, va_list args); - uint32_t hash_seed_; base::CustomMatcherHashMap names_; DISALLOW_COPY_AND_ASSIGN(StringsStorage); diff --git a/deps/v8/src/string-hasher-inl.h b/deps/v8/src/string-hasher-inl.h index c742c651642e2e..caf0e082bab474 100644 --- a/deps/v8/src/string-hasher-inl.h +++ b/deps/v8/src/string-hasher-inl.h @@ -12,9 +12,9 @@ namespace v8 { namespace internal { -StringHasher::StringHasher(int length, uint32_t seed) +StringHasher::StringHasher(int length, uint64_t seed) : length_(length), - raw_running_hash_(seed), + raw_running_hash_(static_cast(seed)), array_index_(0), is_array_index_(0 < length_ && length_ <= String::kMaxArrayIndexSize), is_first_char_(true) { @@ -113,16 +113,16 @@ inline void StringHasher::AddCharacters(const Char* chars, int length) { template uint32_t StringHasher::HashSequentialString(const schar* chars, int length, - uint32_t seed) { + uint64_t seed) { StringHasher hasher(length, seed); if (!hasher.has_trivial_hash()) hasher.AddCharacters(chars, length); return hasher.GetHashField(); } -IteratingStringHasher::IteratingStringHasher(int len, uint32_t seed) +IteratingStringHasher::IteratingStringHasher(int len, uint64_t seed) : StringHasher(len, seed) {} -uint32_t IteratingStringHasher::Hash(String* string, uint32_t seed) { +uint32_t IteratingStringHasher::Hash(String* string, uint64_t seed) { IteratingStringHasher hasher(string->length(), seed); // Nothing to do. if (hasher.has_trivial_hash()) return hasher.GetHashField(); diff --git a/deps/v8/src/string-hasher.h b/deps/v8/src/string-hasher.h index 62bb9750c6a1ca..573b9bb1c6c080 100644 --- a/deps/v8/src/string-hasher.h +++ b/deps/v8/src/string-hasher.h @@ -18,14 +18,14 @@ class Vector; class V8_EXPORT_PRIVATE StringHasher { public: - explicit inline StringHasher(int length, uint32_t seed); + explicit inline StringHasher(int length, uint64_t seed); template static inline uint32_t HashSequentialString(const schar* chars, int length, - uint32_t seed); + uint64_t seed); // Reads all the data, even for long strings and computes the utf16 length. - static uint32_t ComputeUtf8Hash(Vector chars, uint32_t seed, + static uint32_t ComputeUtf8Hash(Vector chars, uint64_t seed, int* utf16_length_out); // Calculated hash value for a string consisting of 1 to @@ -74,22 +74,22 @@ class V8_EXPORT_PRIVATE StringHasher { class IteratingStringHasher : public StringHasher { public: - static inline uint32_t Hash(String* string, uint32_t seed); + static inline uint32_t Hash(String* string, uint64_t seed); inline void VisitOneByteString(const uint8_t* chars, int length); inline void VisitTwoByteString(const uint16_t* chars, int length); private: - inline IteratingStringHasher(int len, uint32_t seed); + inline IteratingStringHasher(int len, uint64_t seed); void VisitConsString(ConsString* cons_string); DISALLOW_COPY_AND_ASSIGN(IteratingStringHasher); }; // Useful for std containers that require something ()'able. struct SeededStringHasher { - explicit SeededStringHasher(uint32_t hashseed) : hashseed_(hashseed) {} + explicit SeededStringHasher(uint64_t hashseed) : hashseed_(hashseed) {} inline std::size_t operator()(const char* name) const; - uint32_t hashseed_; + uint64_t hashseed_; }; // Useful for std containers that require something ()'able. diff --git a/deps/v8/src/utils.h b/deps/v8/src/utils.h index 31c1c157242110..a1f193bcc9d292 100644 --- a/deps/v8/src/utils.h +++ b/deps/v8/src/utils.h @@ -473,13 +473,12 @@ class BitSetComputer { // ---------------------------------------------------------------------------- // Hash function. -static const uint32_t kZeroHashSeed = 0; +static const uint64_t kZeroHashSeed = 0; // Thomas Wang, Integer Hash Functions. -// http://www.concentric.net/~Ttwang/tech/inthash.htm -inline uint32_t ComputeIntegerHash(uint32_t key, uint32_t seed) { +// http://www.concentric.net/~Ttwang/tech/inthash.htm` +inline uint32_t ComputeUnseededHash(uint32_t key) { uint32_t hash = key; - hash = hash ^ seed; hash = ~hash + (hash << 15); // hash = (hash << 15) - hash - 1; hash = hash ^ (hash >> 12); hash = hash + (hash << 2); @@ -489,10 +488,6 @@ inline uint32_t ComputeIntegerHash(uint32_t key, uint32_t seed) { return hash & 0x3fffffff; } -inline uint32_t ComputeIntegerHash(uint32_t key) { - return ComputeIntegerHash(key, kZeroHashSeed); -} - inline uint32_t ComputeLongHash(uint64_t key) { uint64_t hash = key; hash = ~hash + (hash << 18); // hash = (hash << 18) - hash - 1; @@ -501,17 +496,20 @@ inline uint32_t ComputeLongHash(uint64_t key) { hash = hash ^ (hash >> 11); hash = hash + (hash << 6); hash = hash ^ (hash >> 22); - return static_cast(hash); + return static_cast(hash & 0x3fffffff); } +inline uint32_t ComputeSeededHash(uint32_t key, uint64_t seed) { + return ComputeLongHash(static_cast(key) ^ seed); +} inline uint32_t ComputePointerHash(void* ptr) { - return ComputeIntegerHash( + return ComputeUnseededHash( static_cast(reinterpret_cast(ptr))); } inline uint32_t ComputeAddressHash(Address address) { - return ComputeIntegerHash(static_cast(address & 0xFFFFFFFFul)); + return ComputeUnseededHash(static_cast(address & 0xFFFFFFFFul)); } // ---------------------------------------------------------------------------- diff --git a/deps/v8/test/cctest/heap/test-heap.cc b/deps/v8/test/cctest/heap/test-heap.cc index d8a475cfc4df9a..2fea45410e4061 100644 --- a/deps/v8/test/cctest/heap/test-heap.cc +++ b/deps/v8/test/cctest/heap/test-heap.cc @@ -5914,7 +5914,7 @@ UNINITIALIZED_TEST(ReinitializeStringHashSeed) { v8::Isolate* isolate = v8::Isolate::New(create_params); { v8::Isolate::Scope isolate_scope(isolate); - CHECK_EQ(1337 * i, + CHECK_EQ(static_cast(1337 * i), reinterpret_cast(isolate)->heap()->HashSeed()); v8::HandleScope handle_scope(isolate); v8::Local context = v8::Context::New(isolate); diff --git a/deps/v8/test/cctest/test-code-stub-assembler.cc b/deps/v8/test/cctest/test-code-stub-assembler.cc index 13ebf7ab869563..7ad6352b8e95c4 100644 --- a/deps/v8/test/cctest/test-code-stub-assembler.cc +++ b/deps/v8/test/cctest/test-code-stub-assembler.cc @@ -324,15 +324,13 @@ TEST(JSFunction) { TEST(ComputeIntegerHash) { Isolate* isolate(CcTest::InitIsolateOnce()); - const int kNumParams = 2; + const int kNumParams = 1; CodeAssemblerTester asm_tester(isolate, kNumParams); CodeStubAssembler m(asm_tester.state()); - m.Return(m.SmiFromInt32(m.ComputeIntegerHash(m.SmiUntag(m.Parameter(0)), - m.SmiToInt32(m.Parameter(1))))); - FunctionTester ft(asm_tester.GenerateCode(), kNumParams); + m.Return(m.SmiFromInt32(m.ComputeSeededHash(m.SmiUntag(m.Parameter(0))))); - Handle hash_seed = isolate->factory()->hash_seed(); + FunctionTester ft(asm_tester.GenerateCode(), kNumParams); base::RandomNumberGenerator rand_gen(FLAG_random_seed); @@ -340,9 +338,9 @@ TEST(ComputeIntegerHash) { int k = rand_gen.NextInt(Smi::kMaxValue); Handle key(Smi::FromInt(k), isolate); - Handle result = ft.Call(key, hash_seed).ToHandleChecked(); + Handle result = ft.Call(key).ToHandleChecked(); - uint32_t hash = ComputeIntegerHash(k, hash_seed->value()); + uint32_t hash = ComputeSeededHash(k, isolate->heap()->HashSeed()); Smi* expected = Smi::FromInt(hash & Smi::kMaxValue); CHECK_EQ(expected, Smi::cast(*result)); } diff --git a/deps/v8/test/cctest/test-serialize.cc b/deps/v8/test/cctest/test-serialize.cc index c26a7e734811a0..68f47f61b0ed50 100644 --- a/deps/v8/test/cctest/test-serialize.cc +++ b/deps/v8/test/cctest/test-serialize.cc @@ -3370,7 +3370,8 @@ UNINITIALIZED_TEST(ReinitializeHashSeedNotRehashable) { v8::Isolate* isolate = v8::Isolate::New(create_params); { // Check that no rehashing has been performed. - CHECK_EQ(42, reinterpret_cast(isolate)->heap()->HashSeed()); + CHECK_EQ(static_cast(42), + reinterpret_cast(isolate)->heap()->HashSeed()); v8::Isolate::Scope isolate_scope(isolate); v8::HandleScope handle_scope(isolate); v8::Local context = v8::Context::New(isolate); @@ -3432,7 +3433,8 @@ UNINITIALIZED_TEST(ReinitializeHashSeedRehashable) { v8::Isolate* isolate = v8::Isolate::New(create_params); { // Check that rehashing has been performed. - CHECK_EQ(1337, reinterpret_cast(isolate)->heap()->HashSeed()); + CHECK_EQ(static_cast(1337), + reinterpret_cast(isolate)->heap()->HashSeed()); v8::Isolate::Scope isolate_scope(isolate); v8::HandleScope handle_scope(isolate); v8::Local context = v8::Context::New(isolate); diff --git a/deps/v8/test/inspector/debugger/resource-name-to-url-expected.txt b/deps/v8/test/inspector/debugger/resource-name-to-url-expected.txt new file mode 100644 index 00000000000000..2e6e589b2517d3 --- /dev/null +++ b/deps/v8/test/inspector/debugger/resource-name-to-url-expected.txt @@ -0,0 +1,122 @@ +Tests V8InspectorClient::resourceNameToUrl. +Check script with url: +{ + method : Debugger.scriptParsed + params : { + endColumn : 16 + endLine : 0 + executionContextId : + hasSourceURL : false + hash : 033b33d191ed51ed823355d865eb871d811403e2 + isLiveEdit : false + isModule : false + length : 16 + scriptId : + sourceMapURL : + startColumn : 0 + startLine : 0 + url : prefix://url + } +} +Check script with sourceURL comment: +{ + method : Debugger.scriptParsed + params : { + endColumn : 37 + endLine : 0 + executionContextId : + hasSourceURL : true + hash : 06c136ce206c5f505f32af524e6ec71b5baa0bbb + isLiveEdit : false + isModule : false + length : 37 + scriptId : + sourceMapURL : + startColumn : 0 + startLine : 0 + url : foo.js + } +} +Check script failed to parse: +{ + method : Debugger.scriptFailedToParse + params : { + endColumn : 15 + endLine : 0 + executionContextId : + hasSourceURL : false + hash : 033b33d191ed51ed1f44cd0465eb871d811403e2 + isModule : false + length : 15 + scriptId : + sourceMapURL : + startColumn : 0 + startLine : 0 + url : prefix://url + } +} +Check script failed to parse with sourceURL comment: +{ + method : Debugger.scriptFailedToParse + params : { + endColumn : 36 + endLine : 0 + executionContextId : + hasSourceURL : true + hash : 23a2885951475580023e2a742563d78876d8f05e + isModule : false + length : 36 + scriptId : + sourceMapURL : + startColumn : 0 + startLine : 0 + url : foo.js + } +} +Test runtime stack trace: +{ + method : Runtime.consoleAPICalled + params : { + args : [ + [0] : { + description : 42 + type : number + value : 42 + } + ] + executionContextId : + stackTrace : { + callFrames : [ + [0] : { + columnNumber : 14 + functionName : foo + lineNumber : 2 + scriptId : + url : prefix://url + } + [1] : { + columnNumber : 0 + functionName : + lineNumber : 0 + scriptId : + url : boo.js + } + [2] : { + columnNumber : 4 + functionName : + lineNumber : 4 + scriptId : + url : prefix://url + } + ] + } + timestamp : + type : log + } +} +Test debugger stack trace: +[ + [0] : prefix://url + [1] : boo.js + [2] : prefix://url +] diff --git a/deps/v8/test/inspector/debugger/resource-name-to-url.js b/deps/v8/test/inspector/debugger/resource-name-to-url.js new file mode 100644 index 00000000000000..620c7a2864b406 --- /dev/null +++ b/deps/v8/test/inspector/debugger/resource-name-to-url.js @@ -0,0 +1,49 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +let {session, contextGroup, Protocol} = InspectorTest.start( + 'Tests V8InspectorClient::resourceNameToUrl.'); + +(async function test(){ + Protocol.Runtime.enable(); + await Protocol.Debugger.enable(); + contextGroup.addScript(`inspector.setResourceNamePrefix('prefix://')`); + await Protocol.Debugger.onceScriptParsed(); + + InspectorTest.log('Check script with url:'); + contextGroup.addScript('function foo(){}', 0, 0, 'url'); + InspectorTest.logMessage(await Protocol.Debugger.onceScriptParsed()); + + InspectorTest.log('Check script with sourceURL comment:'); + contextGroup.addScript('function foo(){} //# sourceURL=foo.js', 0, 0, 'url'); + InspectorTest.logMessage(await Protocol.Debugger.onceScriptParsed()); + + InspectorTest.log('Check script failed to parse:'); + contextGroup.addScript('function foo(){', 0, 0, 'url'); + InspectorTest.logMessage(await Protocol.Debugger.onceScriptFailedToParse()); + + InspectorTest.log('Check script failed to parse with sourceURL comment:'); + contextGroup.addScript('function foo(){ //# sourceURL=foo.js', 0, 0, 'url'); + InspectorTest.logMessage(await Protocol.Debugger.onceScriptFailedToParse()); + + InspectorTest.log('Test runtime stack trace:'); + contextGroup.addScript(` + function foo() { + console.log(42); + } + eval('foo(); //# sourceURL=boo.js'); + `, 0, 0, 'url'); + InspectorTest.logMessage(await Protocol.Runtime.onceConsoleAPICalled()); + + InspectorTest.log('Test debugger stack trace:'); + contextGroup.addScript(` + function foo() { + debugger; + } + eval('foo(); //# sourceURL=boo.js'); + `, 0, 0, 'url'); + const {params:{callFrames}} = await Protocol.Debugger.oncePaused(); + InspectorTest.logMessage(callFrames.map(frame => frame.url)); + InspectorTest.completeTest(); +})(); diff --git a/deps/v8/test/inspector/inspector-test.cc b/deps/v8/test/inspector/inspector-test.cc index 668a9463d5b9cf..93a8b1d3f21880 100644 --- a/deps/v8/test/inspector/inspector-test.cc +++ b/deps/v8/test/inspector/inspector-test.cc @@ -712,6 +712,9 @@ class InspectorExtension : public IsolateData::SetupGlobalTask { ToV8String(isolate, "setAllowCodeGenerationFromStrings"), v8::FunctionTemplate::New( isolate, &InspectorExtension::SetAllowCodeGenerationFromStrings)); + inspector->Set(ToV8String(isolate, "setResourceNamePrefix"), + v8::FunctionTemplate::New( + isolate, &InspectorExtension::SetResourceNamePrefix)); global->Set(ToV8String(isolate, "inspector"), inspector); } @@ -973,6 +976,18 @@ class InspectorExtension : public IsolateData::SetupGlobalTask { args.GetIsolate()->GetCurrentContext()->AllowCodeGenerationFromStrings( args[0].As()->Value()); } + + static void SetResourceNamePrefix( + const v8::FunctionCallbackInfo& args) { + if (args.Length() != 1 || !args[0]->IsString()) { + fprintf(stderr, "Internal error: setResourceNamePrefix('prefix')."); + Exit(); + } + v8::Isolate* isolate = args.GetIsolate(); + v8::Local context = isolate->GetCurrentContext(); + IsolateData* data = IsolateData::FromContext(context); + data->SetResourceNamePrefix(v8::Local::Cast(args[0])); + } }; bool RunExtraCode(v8::Isolate* isolate, v8::Local context, diff --git a/deps/v8/test/inspector/isolate-data.cc b/deps/v8/test/inspector/isolate-data.cc index a18ef90ca04b98..04c449927eb767 100644 --- a/deps/v8/test/inspector/isolate-data.cc +++ b/deps/v8/test/inspector/isolate-data.cc @@ -422,3 +422,32 @@ void IsolateData::maxAsyncCallStackDepthChanged(int depth) { if (!log_max_async_call_stack_depth_changed_) return; fprintf(stdout, "maxAsyncCallStackDepthChanged: %d\n", depth); } + +void IsolateData::SetResourceNamePrefix(v8::Local prefix) { + resource_name_prefix_.Reset(v8::Isolate::GetCurrent(), prefix); +} + +namespace { +class StringBufferImpl : public v8_inspector::StringBuffer { + public: + StringBufferImpl(v8::Isolate* isolate, v8::Local string) + : data_(ToVector(string)), + view_(data_.start(), data_.length()) {} + const v8_inspector::StringView& string() override { return view_; } + + private: + v8::internal::Vector data_; + v8_inspector::StringView view_; +}; +} // anonymous namespace + +std::unique_ptr IsolateData::resourceNameToUrl( + const v8_inspector::StringView& resourceName) { + if (resource_name_prefix_.IsEmpty()) return nullptr; + v8::Isolate* isolate = v8::Isolate::GetCurrent(); + v8::HandleScope handle_scope(isolate); + v8::Local name = ToString(isolate, resourceName); + v8::Local prefix = resource_name_prefix_.Get(isolate); + v8::Local url = v8::String::Concat(prefix, name); + return std::unique_ptr(new StringBufferImpl(isolate, url)); +} diff --git a/deps/v8/test/inspector/isolate-data.h b/deps/v8/test/inspector/isolate-data.h index 5eb9803a7416fb..d0a263e573827c 100644 --- a/deps/v8/test/inspector/isolate-data.h +++ b/deps/v8/test/inspector/isolate-data.h @@ -76,6 +76,7 @@ class IsolateData : public v8_inspector::V8InspectorClient { void FireContextCreated(v8::Local context, int context_group_id); void FireContextDestroyed(v8::Local context); void FreeContext(v8::Local context); + void SetResourceNamePrefix(v8::Local prefix); private: struct VectorCompare { @@ -114,6 +115,8 @@ class IsolateData : public v8_inspector::V8InspectorClient { v8_inspector::V8StackTrace*) override; bool isInspectableHeapObject(v8::Local) override; void maxAsyncCallStackDepthChanged(int depth) override; + std::unique_ptr resourceNameToUrl( + const v8_inspector::StringView& resourceName) override; // The isolate gets deleted by its {Dispose} method, not by the default // deleter. Therefore we have to define a custom deleter for the unique_ptr to @@ -141,6 +144,7 @@ class IsolateData : public v8_inspector::V8InspectorClient { bool log_console_api_message_calls_ = false; bool log_max_async_call_stack_depth_changed_ = false; v8::Global not_inspectable_private_; + v8::Global resource_name_prefix_; DISALLOW_COPY_AND_ASSIGN(IsolateData); }; diff --git a/deps/v8/test/unittests/strings-storage-unittest.cc b/deps/v8/test/unittests/strings-storage-unittest.cc index de410e8e260e0f..263d2492401d3d 100644 --- a/deps/v8/test/unittests/strings-storage-unittest.cc +++ b/deps/v8/test/unittests/strings-storage-unittest.cc @@ -19,7 +19,7 @@ bool StringEq(const char* left, const char* right) { } TEST_F(StringsStorageWithIsolate, GetNameFromString) { - StringsStorage storage(isolate()->heap()->HashSeed()); + StringsStorage storage; // One char strings are canonical on the v8 heap so use a 2 char string here. Handle str = isolate()->factory()->NewStringFromAsciiChecked("xy"); @@ -40,7 +40,7 @@ TEST_F(StringsStorageWithIsolate, GetNameFromString) { } TEST_F(StringsStorageWithIsolate, GetNameFromSymbol) { - StringsStorage storage(isolate()->heap()->HashSeed()); + StringsStorage storage; Handle symbol = isolate()->factory()->NewSymbol(); const char* stored_symbol = storage.GetName(*symbol); @@ -53,7 +53,7 @@ TEST_F(StringsStorageWithIsolate, GetNameFromSymbol) { } TEST_F(StringsStorageWithIsolate, GetConsName) { - StringsStorage storage(isolate()->heap()->HashSeed()); + StringsStorage storage; Handle str = isolate()->factory()->NewStringFromAsciiChecked("xy"); @@ -65,7 +65,7 @@ TEST_F(StringsStorageWithIsolate, GetConsName) { } TEST_F(StringsStorageWithIsolate, GetNameFromInt) { - StringsStorage storage(isolate()->heap()->HashSeed()); + StringsStorage storage; const char* stored_str = storage.GetName(0); CHECK(StringEq("0", stored_str)); @@ -81,7 +81,7 @@ TEST_F(StringsStorageWithIsolate, GetNameFromInt) { } TEST_F(StringsStorageWithIsolate, GetFunctionNameFromString) { - StringsStorage storage(isolate()->heap()->HashSeed()); + StringsStorage storage; Handle str = isolate()->factory()->NewStringFromAsciiChecked("xy"); const char* stored_str = storage.GetFunctionName(*str); @@ -93,7 +93,7 @@ TEST_F(StringsStorageWithIsolate, GetFunctionNameFromString) { } TEST_F(StringsStorageWithIsolate, GetFunctionNameFromCString) { - StringsStorage storage(isolate()->heap()->HashSeed()); + StringsStorage storage; const char* xy = "xy"; const char* stored_str = storage.GetFunctionName("xy"); @@ -103,7 +103,7 @@ TEST_F(StringsStorageWithIsolate, GetFunctionNameFromCString) { } TEST_F(StringsStorageWithIsolate, Format) { - StringsStorage storage(isolate()->heap()->HashSeed()); + StringsStorage storage; const char* xy = "xy"; const char* stored_str = storage.GetFormatted("%s", xy); @@ -121,7 +121,7 @@ TEST_F(StringsStorageWithIsolate, Format) { } TEST_F(StringsStorageWithIsolate, FormatAndGetShareStorage) { - StringsStorage storage(isolate()->heap()->HashSeed()); + StringsStorage storage; Handle str = isolate()->factory()->NewStringFromAsciiChecked("xy"); const char* stored_str = storage.GetName(*str); diff --git a/deps/v8/tools/gen-postmortem-metadata.py b/deps/v8/tools/gen-postmortem-metadata.py index 9a788199430b6d..de98c66c1cde91 100644 --- a/deps/v8/tools/gen-postmortem-metadata.py +++ b/deps/v8/tools/gen-postmortem-metadata.py @@ -422,15 +422,10 @@ def load_objects_from_file(objfilename, checktypes): # way around. # for type in types: - # - # Symbols and Strings are implemented using the same classes. - # - usetype = re.sub('SYMBOL_', 'STRING_', type); - # # REGEXP behaves like REG_EXP, as in JS_REGEXP_TYPE => JSRegExp. # - usetype = re.sub('_REGEXP_', '_REG_EXP_', usetype); + usetype = re.sub('_REGEXP_', '_REG_EXP_', type); # # Remove the "_TYPE" suffix and then convert to camel case, diff --git a/doc/api/addons.md b/doc/api/addons.md index 5e06336a85a4a0..b2c52d5128b5bc 100644 --- a/doc/api/addons.md +++ b/doc/api/addons.md @@ -635,6 +635,7 @@ functions and returning those back to JavaScript: namespace demo { +using v8::Context; using v8::Function; using v8::FunctionCallbackInfo; using v8::FunctionTemplate; @@ -652,8 +653,9 @@ void MyFunction(const FunctionCallbackInfo& args) { void CreateFunction(const FunctionCallbackInfo& args) { Isolate* isolate = args.GetIsolate(); + Local context = isolate->GetCurrentContext(); Local tpl = FunctionTemplate::New(isolate, MyFunction); - Local fn = tpl->GetFunction(); + Local fn = tpl->GetFunction(context).ToLocalChecked(); // omit this to make it anonymous fn->SetName(String::NewFromUtf8(isolate, "theFunction")); @@ -777,9 +779,10 @@ void MyObject::Init(Local exports) { // Prototype NODE_SET_PROTOTYPE_METHOD(tpl, "plusOne", PlusOne); - constructor.Reset(isolate, tpl->GetFunction()); + Local context = isolate->GetCurrentContext(); + constructor.Reset(isolate, tpl->GetFunction(context).ToLocalChecked()); exports->Set(String::NewFromUtf8(isolate, "MyObject"), - tpl->GetFunction()); + tpl->GetFunction(context).ToLocalChecked()); } void MyObject::New(const FunctionCallbackInfo& args) { @@ -969,7 +972,8 @@ void MyObject::Init(Isolate* isolate) { // Prototype NODE_SET_PROTOTYPE_METHOD(tpl, "plusOne", PlusOne); - constructor.Reset(isolate, tpl->GetFunction()); + Local context = isolate->GetCurrentContext(); + constructor.Reset(isolate, tpl->GetFunction(context).ToLocalChecked()); } void MyObject::New(const FunctionCallbackInfo& args) { @@ -1177,7 +1181,8 @@ void MyObject::Init(Isolate* isolate) { tpl->SetClassName(String::NewFromUtf8(isolate, "MyObject")); tpl->InstanceTemplate()->SetInternalFieldCount(1); - constructor.Reset(isolate, tpl->GetFunction()); + Local context = isolate->GetCurrentContext(); + constructor.Reset(isolate, tpl->GetFunction(context).ToLocalChecked()); } void MyObject::New(const FunctionCallbackInfo& args) { diff --git a/doc/api/cli.md b/doc/api/cli.md index 8adb33efb7b06e..a99190c0b47170 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -21,6 +21,18 @@ Execute without arguments to start the [REPL][]. _For more info about `node inspect`, please see the [debugger][] documentation._ ## Options + + +All options, including V8 options, allow words to be separated by both +dashes (`-`) or underscores (`_`). + +For example, `--pending-deprecation` is equivalent to `--pending_deprecation`. ### `-` + +Print source-able bash completion script for Node.js. +```console +$ node --completion-bash > node_bash_completion +$ source node_bash_completion +``` + ### `--enable-fips` +* `type`: {string} Must be `'rsa'`, `'dsa'` or `'ec'`. +* `options`: {Object} + - `modulusLength`: {number} Key size in bits (RSA, DSA). + - `publicExponent`: {number} Public exponent (RSA). **Default:** `0x10001`. + - `divisorLength`: {number} Size of `q` in bits (DSA). + - `namedCurve`: {string} Name of the curve to use (EC). + - `publicKeyEncoding`: {Object} + - `type`: {string} Must be one of `'pkcs1'` (RSA only) or `'spki'`. + - `format`: {string} Must be `'pem'` or `'der'`. + - `privateKeyEncoding`: {Object} + - `type`: {string} Must be one of `'pkcs1'` (RSA only), `'pkcs8'` or + `'sec1'` (EC only). + - `format`: {string} Must be `'pem'` or `'der'`. + - `cipher`: {string} If specified, the private key will be encrypted with + the given `cipher` and `passphrase` using PKCS#5 v2.0 password based + encryption. + - `passphrase`: {string} The passphrase to use for encryption, see `cipher`. +* `callback`: {Function} + - `err`: {Error} + - `publicKey`: {string|Buffer} + - `privateKey`: {string|Buffer} + +Generates a new asymmetric key pair of the given `type`. Only RSA, DSA and EC +are currently supported. + +It is recommended to encode public keys as `'spki'` and private keys as +`'pkcs8'` with encryption: + +```js +const { generateKeyPair } = require('crypto'); +generateKeyPair('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem', + cipher: 'aes-256-cbc', + passphrase: 'top secret' + } +}, (err, publicKey, privateKey) => { + // Handle errors and use the generated key pair. +}); +``` + +On completion, `callback` will be called with `err` set to `undefined` and +`publicKey` / `privateKey` representing the generated key pair. When PEM +encoding was selected, the result will be a string, otherwise it will be a +buffer containing the data encoded as DER. Note that Node.js itself does not +accept DER, it is supported for interoperability with other libraries such as +WebCrypto only. + +If this method is invoked as its [`util.promisify()`][]ed version, it returns +a `Promise` for an `Object` with `publicKey` and `privateKey` properties. + +### crypto.generateKeyPairSync(type, options) + +* `type`: {string} Must be `'rsa'`, `'dsa'` or `'ec'`. +* `options`: {Object} + - `modulusLength`: {number} Key size in bits (RSA, DSA). + - `publicExponent`: {number} Public exponent (RSA). **Default:** `0x10001`. + - `divisorLength`: {number} Size of `q` in bits (DSA). + - `namedCurve`: {string} Name of the curve to use (EC). + - `publicKeyEncoding`: {Object} + - `type`: {string} Must be one of `'pkcs1'` (RSA only) or `'spki'`. + - `format`: {string} Must be `'pem'` or `'der'`. + - `privateKeyEncoding`: {Object} + - `type`: {string} Must be one of `'pkcs1'` (RSA only), `'pkcs8'` or + `'sec1'` (EC only). + - `format`: {string} Must be `'pem'` or `'der'`. + - `cipher`: {string} If specified, the private key will be encrypted with + the given `cipher` and `passphrase` using PKCS#5 v2.0 password based + encryption. + - `passphrase`: {string} The passphrase to use for encryption, see `cipher`. +* Returns: {Object} + - `publicKey`: {string|Buffer} + - `privateKey`: {string|Buffer} + +Generates a new asymmetric key pair of the given `type`. Only RSA, DSA and EC +are currently supported. + +It is recommended to encode public keys as `'spki'` and private keys as +`'pkcs8'` with encryption: + +```js +const { generateKeyPairSync } = require('crypto'); +const { publicKey, privateKey } = generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem', + cipher: 'aes-256-cbc', + passphrase: 'top secret' + } +}); +``` + +The return value `{ publicKey, privateKey }` represents the generated key pair. +When PEM encoding was selected, the respective key will be a string, otherwise +it will be a buffer containing the data encoded as DER. + ### crypto.getCiphers() -Type: Runtime +Type: End-of-Life. The `ecdhCurve` option to `tls.createSecureContext()` and `tls.TLSSocket` could -be set to `false` to disable ECDH entirely on the server only. This mode is +be set to `false` to disable ECDH entirely on the server only. This mode was deprecated in preparation for migrating to OpenSSL 1.1.0 and consistency with -the client. Use the `ciphers` parameter instead. +the client and is now unsupported. Use the `ciphers` parameter instead. ### DEP0084: requiring bundled internal dependencies diff --git a/doc/api/dns.md b/doc/api/dns.md index cbe0e8628d71f7..afbd7e253cde4c 100644 --- a/doc/api/dns.md +++ b/doc/api/dns.md @@ -130,6 +130,9 @@ section if a custom port is used. + +An attempt was made to close the `process.stderr` stream. By design, Node.js +does not allow `stdout` or `stderr` streams to be closed by user code. + + +### ERR_STDOUT_CLOSE + + +An attempt was made to close the `process.stdout` stream. By design, Node.js +does not allow `stdout` or `stderr` streams to be closed by user code. + ### ERR_STREAM_READ_NOT_IMPLEMENTED The path to the file the stream is writing to as specified in the first -argument to `fs.createWriteStream()`. If `path` is passed as a string, then +argument to [`fs.createWriteStream()`][]. If `path` is passed as a string, then `writeStream.path` will be a string. If `path` is passed as a `Buffer`, then `writeStream.path` will be a `Buffer`. @@ -2139,10 +2139,14 @@ changes: Synchronous lstat(2). -## fs.mkdir(path[, mode], callback) +## fs.mkdir(path[, options], callback) * `path` {string|Buffer|URL} -* `mode` {integer} Not supported on Windows. **Default:** `0o777`. +* `options` {Object|integer} + * `recursive` {boolean} **Default:** `false` + * `mode` {integer} Not supported on Windows. **Default:** `0o777`. * `callback` {Function} * `err` {Error} Asynchronously creates a directory. No arguments other than a possible exception are given to the completion callback. +The optional `options` argument can be an integer specifying mode (permission +and sticky bits), or an object with a `mode` property and a `recursive` +property indicating whether parent folders should be created. + +```js +// Creates /tmp/a/apple, regardless of whether `/tmp` and /tmp/a exist. +fs.mkdir('/tmp/a/apple', { recursive: true }, (err) => { + if (err) throw err; +}); +``` + See also: mkdir(2). -## fs.mkdirSync(path[, mode]) +## fs.mkdirSync(path[, options]) * `path` {string|Buffer|URL} -* `mode` {integer} Not supported on Windows. **Default:** `0o777`. +* `options` {Object|integer} + * `recursive` {boolean} **Default:** `false` + * `mode` {integer} Not supported on Windows. **Default:** `0o777`. Synchronously creates a directory. Returns `undefined`. This is the synchronous version of [`fs.mkdir()`][]. @@ -3405,7 +3428,8 @@ If this method is invoked as its [`util.promisify()`][]ed version, it returns a `Promise` for an `Object` with `bytesWritten` and `buffer` properties. It is unsafe to use `fs.write()` multiple times on the same file without waiting -for the callback. For this scenario, `fs.createWriteStream()` is recommended. +for the callback. For this scenario, [`fs.createWriteStream()`][] is +recommended. On Linux, positional writes don't work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to @@ -3452,7 +3476,8 @@ written is not necessarily the same as string characters written. See [`Buffer.byteLength`][]. It is unsafe to use `fs.write()` multiple times on the same file without waiting -for the callback. For this scenario, `fs.createWriteStream()` is recommended. +for the callback. For this scenario, [`fs.createWriteStream()`][] is +recommended. On Linux, positional writes don't work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to @@ -3513,7 +3538,7 @@ fs.writeFile('message.txt', 'Hello Node.js', 'utf8', callback); Any specified file descriptor has to support writing. It is unsafe to use `fs.writeFile()` multiple times on the same file without -waiting for the callback. For this scenario, `fs.createWriteStream()` is +waiting for the callback. For this scenario, [`fs.createWriteStream()`][] is recommended. If a file descriptor is specified as the `file`, it will not be closed @@ -3882,7 +3907,7 @@ at the current position. See pwrite(2). It is unsafe to use `filehandle.write()` multiple times on the same file without waiting for the `Promise` to be resolved (or rejected). For this -scenario, `fs.createWriteStream` is strongly recommended. +scenario, [`fs.createWriteStream()`][] is strongly recommended. On Linux, positional writes do not work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to @@ -4106,18 +4131,24 @@ changes: Asynchronous lstat(2). The `Promise` is resolved with the [`fs.Stats`][] object for the given symbolic link `path`. -### fsPromises.mkdir(path[, mode]) +### fsPromises.mkdir(path[, options]) * `path` {string|Buffer|URL} -* `mode` {integer} **Default:** `0o777` +* `options` {Object|integer} + * `recursive` {boolean} **Default:** `false` + * `mode` {integer} Not supported on Windows. **Default:** `0o777`. * Returns: {Promise} Asynchronously creates a directory then resolves the `Promise` with no arguments upon success. +The optional `options` argument can be an integer specifying mode (permission +and sticky bits), or an object with a `mode` property and a `recursive` +property indicating whether parent folders should be created. + ### fsPromises.mkdtemp(prefix[, options]) + +* `payload` {Buffer} The `PING` frame 8-byte payload + +The `'ping'` event is emitted whenever a `PING` frame is received from the +connected peer. + #### Event: 'remoteSettings' + +* `origins` { string | URL | Object } One or more URL Strings passed as + separate arguments. + +Submits an `ORIGIN` frame (as defined by [RFC 8336][]) to the connected client +to advertise the set of origins for which the server is capable of providing +authoritative responses. + +```js +const http2 = require('http2'); +const options = getSecureOptionsSomehow(); +const server = http2.createSecureServer(options); +server.on('stream', (stream) => { + stream.respond(); + stream.end('ok'); +}); +server.on('session', (session) => { + session.origin('https://example.com', 'https://example.org'); +}); +``` + +When a string is passed as an `origin`, it will be parsed as a URL and the +origin will be derived. For instance, the origin for the HTTP URL +`'https://example.org/foo/bar'` is the ASCII string +`'https://example.org'`. An error will be thrown if either the given string +cannot be parsed as a URL or if a valid origin cannot be derived. + +A `URL` object, or any object with an `origin` property, may be passed as +an `origin`, in which case the value of the `origin` property will be +used. The value of the `origin` property *must* be a properly serialized +ASCII origin. + +Alternatively, the `origins` option may be used when creating a new HTTP/2 +server using the `http2.createSecureServer()` method: + +```js +const http2 = require('http2'); +const options = getSecureOptionsSomehow(); +options.origins = ['https://example.com', 'https://example.org']; +const server = http2.createSecureServer(options); +server.on('stream', (stream) => { + stream.respond(); + stream.end('ok'); +}); +``` + ### Class: ClientHttp2Session + +* `origins` {string[]} + +The `'origin'` event is emitted whenever an `ORIGIN` frame is received by +the client. The event is emitted with an array of `origin` strings. The +`http2session.originSet` will be updated to include the received +origins. + +```js +const http2 = require('http2'); +const client = http2.connect('https://example.org'); + +client.on('origin', (origins) => { + for (let n = 0; n < origins.length; n++) + console.log(origins[n]); +}); +``` + +The `'origin'` event is only emitted when using a secure TLS connection. + #### clienthttp2session.request(headers[, options]) + +* `filename` {string} Filename to be used to construct the relative require + function. +* Returns: {[`require`][]} Require function + +```js +const { createRequireFromPath } = require('module'); +const requireUtil = createRequireFromPath('../src/utils'); + +// require `../src/utils/some-tool` +requireUtil('./some-tool'); +``` + [`__dirname`]: #modules_dirname [`__filename`]: #modules_filename [`Error`]: errors.html#errors_class_error [`module` object]: #modules_the_module_object [`path.dirname()`]: path.html#path_path_dirname_path [GLOBAL_FOLDERS]: #modules_loading_from_the_global_folders +[`require`]: #modules_require [exports shortcut]: #modules_exports_shortcut [module resolution]: #modules_all_together [module wrapper]: #modules_the_module_wrapper diff --git a/doc/api/n-api.md b/doc/api/n-api.md index 3bee50b7f6d4ca..c976c5e8f060f0 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -11,8 +11,8 @@ the underlying JavaScript runtime (ex V8) and is maintained as part of Node.js itself. This API will be Application Binary Interface (ABI) stable across versions of Node.js. It is intended to insulate Addons from changes in the underlying JavaScript engine and allow modules -compiled for one version to run on later versions of Node.js without -recompilation. +compiled for one major version to run on later major versions of Node.js without +recompilation. The [ABI Stability][] guide provides a more in-depth explanation. Addons are built/packaged with the same approach/tools outlined in the section titled [C++ Addons](addons.html). @@ -571,7 +571,7 @@ NAPI_EXTERN napi_status napi_is_error(napi_env env, bool* result); ``` - `[in] env`: The environment that the API is invoked under. -- `[in] msg`: The `napi_value` to be checked. +- `[in] value`: The `napi_value` to be checked. - `[out] result`: Boolean value that is set to true if `napi_value` represents an error, false otherwise. @@ -1757,7 +1757,7 @@ added: v10.7.0 ```C napi_status napi_create_bigint_uint64(napi_env env, - uint64_t vaue, + uint64_t value, napi_value* result); ``` @@ -4447,8 +4447,8 @@ by the `async_hooks` API. - `[in] max_queue_size`: Maximum size of the queue. `0` for no limit. - `[in] initial_thread_count`: The initial number of threads, including the main thread, which will be making use of this function. -- `[in] thread_finalize_data`: Data to be passed to `thread_finalize_cb`. -- `[in] thread_finalize_cb`: Function to call when the +- `[in] thread_finalize_data`: Optional data to be passed to `thread_finalize_cb`. +- `[in] thread_finalize_cb`: Optional function to call when the `napi_threadsafe_function` is being destroyed. - `[in] context`: Optional data to attach to the resulting `napi_threadsafe_function`. @@ -4596,6 +4596,7 @@ idempotent. This API may only be called from the main thread. +[ABI Stability]: https://nodejs.org/en/docs/guides/abi-stability/ [ECMAScript Language Specification]: https://tc39.github.io/ecma262/ [Error Handling]: #n_api_error_handling [Native Abstractions for Node.js]: https://github.com/nodejs/nan diff --git a/doc/api/process.md b/doc/api/process.md index a2e052e4779d97..5139ad95d88d21 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -97,6 +97,59 @@ the child process. The message goes through serialization and parsing. The resulting message might not be the same as what is originally sent. +### Event: 'multipleResolves' + + +* `type` {string} The error type. One of `'resolve'` or `'reject'`. +* `promise` {Promise} The promise that resolved or rejected more than once. +* `value` {any} The value with which the promise was either resolved or + rejected after the original resolve. + +The `'multipleResolves'` event is emitted whenever a `Promise` has been either: + +* Resolved more than once. +* Rejected more than once. +* Rejected after resolve. +* Resolved after reject. + +This is useful for tracking errors in your application while using the promise +constructor. Otherwise such mistakes are silently swallowed due to being in a +dead zone. + +It is recommended to end the process on such errors, since the process could be +in an undefined state. While using the promise constructor make sure that it is +guaranteed to trigger the `resolve()` or `reject()` functions exactly once per +call and never call both functions in the same call. + +```js +process.on('multipleResolves', (type, promise, reason) => { + console.error(type, promise, reason); + setImmediate(() => process.exit(1)); +}); + +async function main() { + try { + return await new Promise((resolve, reject) => { + resolve('First call'); + resolve('Swallowed resolve'); + reject(new Error('Swallowed reject')); + }); + } catch { + throw new Error('Failed'); + } +} + +main().then(console.log); +// resolve: Promise { 'First call' } 'Swallowed resolve' +// reject: Promise { 'First call' } Error: Swallowed reject +// at Promise (*) +// at new Promise () +// at main (*) +// First call +``` + ### Event: 'rejectionHandled' -In versions of Node.js prior to v0.10, the `Readable` stream interface was -simpler, but also less powerful and less useful. +Prior to Node.js 0.10, the `Readable` stream interface was simpler, but also +less powerful and less useful. -* Rather than waiting for calls the [`stream.read()`][stream-read] method, +* Rather than waiting for calls to the [`stream.read()`][stream-read] method, [`'data'`][] events would begin emitting immediately. Applications that would need to perform some amount of work to decide how to handle data were required to store read data into buffers so the data would not be lost. @@ -2323,7 +2326,7 @@ simpler, but also less powerful and less useful. guaranteed. This meant that it was still necessary to be prepared to receive [`'data'`][] events *even when the stream was in a paused state*. -In Node.js v0.10, the [`Readable`][] class was added. For backwards +In Node.js 0.10, the [`Readable`][] class was added. For backwards compatibility with older Node.js programs, `Readable` streams switch into "flowing mode" when a [`'data'`][] event handler is added, or when the [`stream.resume()`][stream-resume] method is called. The effect is that, even @@ -2353,9 +2356,8 @@ net.createServer((socket) => { }).listen(1337); ``` -In versions of Node.js prior to v0.10, the incoming message data would be -simply discarded. However, in Node.js v0.10 and beyond, the socket remains -paused forever. +Prior to Node.js 0.10, the incoming message data would be simply discarded. +However, in Node.js 0.10 and beyond, the socket remains paused forever. The workaround in this situation is to call the [`stream.resume()`][stream-resume] method to begin the flow of data: @@ -2373,7 +2375,7 @@ net.createServer((socket) => { ``` In addition to new `Readable` streams switching into flowing mode, -pre-v0.10 style streams can be wrapped in a `Readable` class using the +pre-0.10 style streams can be wrapped in a `Readable` class using the [`readable.wrap()`][`stream.wrap()`] method. ### `readable.read(0)` diff --git a/doc/api/synopsis.md b/doc/api/synopsis.md index ad14fae7b8d791..d22d684bfb0b8f 100644 --- a/doc/api/synopsis.md +++ b/doc/api/synopsis.md @@ -10,7 +10,7 @@ different options and ways to run scripts with Node.js. ## Example An example of a [web server][] written with Node.js which responds with -`'Hello World!'`: +`'Hello, World!'`: Commands displayed in this document are shown starting with `$` or `>` to replicate how they would appear in a user's terminal. @@ -71,7 +71,7 @@ const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World!\n'); + res.end('Hello, World!\n'); }); server.listen(port, hostname, () => { @@ -94,7 +94,7 @@ Server running at http://127.0.0.1:3000/ Now, open any preferred web browser and visit `http://127.0.0.1:3000`. -If the browser displays the string `Hello, world!`, that indicates +If the browser displays the string `Hello, World!`, that indicates the server is working. Many of the examples in the documentation can be run similarly. diff --git a/doc/api/tls.md b/doc/api/tls.md index 417449c097385a..fe8bfa27ef6ca2 100644 --- a/doc/api/tls.md +++ b/doc/api/tls.md @@ -918,9 +918,12 @@ The `callback` function, if specified, will be added as a listener for the `tls.connect()` returns a [`tls.TLSSocket`][] object. -The following implements a simple "echo server" example: +Here is an example of a client of echo server as described in +[`tls.createServer()`][]: ```js +// This example assumes that you have created an echo server that is +// listening on port 8000. const tls = require('tls'); const fs = require('fs'); @@ -944,13 +947,15 @@ socket.on('data', (data) => { console.log(data); }); socket.on('end', () => { - server.close(); + console.log('client ends'); }); ``` Or ```js +// This example assumes that you have created an echo server that is +// listening on port 8000. const tls = require('tls'); const fs = require('fs'); @@ -969,7 +974,7 @@ socket.on('data', (data) => { console.log(data); }); socket.on('end', () => { - server.close(); + console.log('client ends'); }); ``` @@ -1007,6 +1012,10 @@ argument. -A `number` specifying the number of columns the TTY currently has. This property -is updated whenever the `'resize'` event is emitted. +* `dir` {number} + * `-1` - to the left from cursor + * `1` - to the right from cursor + * `0` - the entire line -### writeStream.isTTY +`writeStream.clearLine()` clears the current line of this `WriteStream` in a +direction identified by `dir`. + +### writeStream.clearScreenDown() -A `boolean` that is always `true`. +`writeStream.clearScreenDown()` clears this `WriteStream` from the current +cursor down. -### writeStream.rows +### writeStream.columns -A `number` specifying the number of rows the TTY currently has. This property +A `number` specifying the number of columns the TTY currently has. This property is updated whenever the `'resize'` event is emitted. +### writeStream.cursorTo(x, y) + + +* `x` {number} +* `y` {number} + +`writeStream.cursorTo()` moves this `WriteStream`'s cursor to the specified +position. + ### writeStream.getColorDepth([env]) +* Returns: {number[]} + +`writeStream.getWindowSize()` returns the size of the [TTY](tty.html) +corresponding to this `WriteStream`. The array is of the type +`[numColumns, numRows]` where `numColumns` and `numRows` represent the number +of columns and rows in the corresponding [TTY](tty.html). + +### writeStream.isTTY + + +A `boolean` that is always `true`. + +### writeStream.moveCursor(dx, dy) + + +* `dx` {number} +* `dy` {number} + +`writeStream.moveCursor()` moves this `WriteStream`'s cursor *relative* to its +current position. + +### writeStream.rows + + +A `number` specifying the number of rows the TTY currently has. This property +is updated whenever the `'resize'` event is emitted. + ## tty.isatty(fd) -Objects may also define their own `[util.inspect.custom](depth, opts)` -(or the equivalent but deprecated `inspect(depth, opts)`) function that -`util.inspect()` will invoke and use the result of when inspecting the object: +Objects may also define their own +[`[util.inspect.custom](depth, opts)`][util.inspect.custom] (or the equivalent +but deprecated `inspect(depth, opts)`) function, which `util.inspect()` will +invoke and use the result of when inspecting the object: ```js const util = require('util'); @@ -626,10 +662,41 @@ util.inspect(obj); ### util.inspect.custom -A {symbol} that can be used to declare custom inspect functions, see -[Custom inspection functions on Objects][]. +* {symbol} that can be used to declare custom inspect functions. + +In addition to being accessible through `util.inspect.custom`, this +symbol is [registered globally][global symbol registry] and can be +accessed in any environment as `Symbol.for('nodejs.util.inspect.custom')`. + +```js +const inspect = Symbol.for('nodejs.util.inspect.custom'); + +class Password { + constructor(value) { + this.value = value; + } + + toString() { + return 'xxxxxxxx'; + } + + [inspect]() { + return `Password <${this.toString()}>`; + } +} + +const password = new Password('r0sebud'); +console.log(password); +// Prints Password +``` + +See [Custom inspection functions on Objects][] for more details. ### util.inspect.defaultOptions The `vm` module provides APIs for compiling and running code within V8 Virtual -Machine contexts. +Machine contexts. **Note that the `vm` module is not a security mechanism. Do +not use it to run untrusted code**. The term "sandbox" is used throughout these +docs simply to refer to a separate context, and does not confer any security +guarantees. JavaScript code can be compiled and run immediately or compiled, saved, and run later. @@ -40,9 +43,6 @@ console.log(sandbox.y); // 17 console.log(x); // 1; y is not defined. ``` -**The vm module is not a security mechanism. Do not use it to run untrusted -code**. - ## Class: vm.SourceTextModule * `callback` {Function} + * `err` {Error} + * `exitCode` {integer} Stop all JavaScript execution in the worker thread as soon as possible. `callback` is an optional function that is invoked once this operation is known diff --git a/doc/changelogs/CHANGELOG_V10.md b/doc/changelogs/CHANGELOG_V10.md index 04b836a947bddf..5b69c7c4e52a64 100644 --- a/doc/changelogs/CHANGELOG_V10.md +++ b/doc/changelogs/CHANGELOG_V10.md @@ -9,6 +9,7 @@ +10.12.0
10.11.0
10.10.0
10.9.0
@@ -39,6 +40,323 @@ * [io.js](CHANGELOG_IOJS.md) * [Archive](CHANGELOG_ARCHIVE.md) + +## 2018-10-10, Version 10.12.0 (Current), @targos + +### Notable changes + +* **assert** + * The diff output is now a tiny bit improved by sorting object properties when + inspecting the values that are compared with each other. [#22788](https://github.com/nodejs/node/pull/22788) +* **cli** + * The options parser now normalizes `_` to `-` in all multi-word command-line + flags, e.g. `--no_warnings` has the same effect as `--no-warnings`. [#23020](https://github.com/nodejs/node/pull/23020) + * Added bash completion for the `node` binary. To generate a bash completion + script, run `node --completion-bash`. The output can be saved to a file + which can be sourced to enable completion. [#20713](https://github.com/nodejs/node/pull/20713) +* **crypto** + * Added support for PEM-level encryption. [#23151](https://github.com/nodejs/node/pull/23151) + * Added an API asymmetric key pair generation. The new methods + `crypto.generateKeyPair` and `crypto.generateKeyPairSync` can be used to + generate public and private key pairs. The API supports RSA, DSA and EC and + a variety of key encodings (both PEM and DER). [#22660](https://github.com/nodejs/node/pull/22660) +* **fs** + * Added a `recursive` option to `fs.mkdir` and `fs.mkdirSync`. If this option + is set to true, non-existing parent folders will be automatically created. [#21875](https://github.com/nodejs/node/pull/21875) +* **http2** + * Added a `'ping'` event to `Http2Session` that is emitted whenever a non-ack + `PING` is received. [#23009](https://github.com/nodejs/node/pull/23009) + * Added support for the `ORIGIN` frame. [#22956](https://github.com/nodejs/node/pull/22956) + * Updated nghttp2 to 1.34.0. This adds RFC 8441 extended connect protocol + support to allow use of WebSockets over HTTP/2. [#23284](https://github.com/nodejs/node/pull/23284) +* **module** + * Added `module.createRequireFromPath(filename)`. This new method can be used + to create a custom require function that will resolve modules relative to + the filename path. [#19360](https://github.com/nodejs/node/pull/19360) +* **process** + * Added a `'multipleResolves'` process event that is emitted whenever a + `Promise` is attempted to be resolved multiple times, e.g. if the `resolve` + and `reject` functions are both called in a `Promise` executor. [#22218](https://github.com/nodejs/node/pull/22218) +* **url** + * Added `url.fileURLToPath(url)` and `url.pathToFileURL(path)`. These methods + can be used to correctly convert between file: URLs and absolute paths. [#22506](https://github.com/nodejs/node/pull/22506) +* **util** + * Added the `sorted` option to `util.inspect()`. If set to `true`, all + properties of an object and Set and Map entries will be sorted in the + returned string. If set to a function, it is used as a compare function. [#22788](https://github.com/nodejs/node/pull/22788) + * The `util.instpect.custom` symbol is now defined in the global symbol + registry as `Symbol.for('nodejs.util.inspect.custom')`. [#20857](https://github.com/nodejs/node/pull/20857) + * Added support for `BigInt` numbers in `util.format()`. [#22097](https://github.com/nodejs/node/pull/22097) +* **V8 API** + * A number of V8 C++ APIs have been marked as deprecated since they have been + removed in the upstream repository. Replacement APIs are added where + necessary. [#23159](https://github.com/nodejs/node/pull/23159) +* **Windows** + * The Windows msi installer now provides an option to automatically install + the tools required to build native modules. [#22645](https://github.com/nodejs/node/pull/22645) +* **Workers** + * Debugging support for Workers using the DevTools protocol has been + implemented. [#21364](https://github.com/nodejs/node/pull/21364) + * The public `inspector` module is now enabled in Workers. [#22769](https://github.com/nodejs/node/pull/22769) +* **Added new collaborators**: + * [digitalinfinity](https://github.com/digitalinfinity) - Hitesh Kanwathirtha + +### Commits + +* [[`12ff395e35`](https://github.com/nodejs/node/commit/12ff395e35)] - **assert**: remove internal errorCache property (Rich Trott) [#23304](https://github.com/nodejs/node/pull/23304) +* [[`efdb32603c`](https://github.com/nodejs/node/commit/efdb32603c)] - **(SEMVER-MINOR)** **assert**: improve diff output (Ruben Bridgewater) [#22788](https://github.com/nodejs/node/pull/22788) +* [[`9749d48729`](https://github.com/nodejs/node/commit/9749d48729)] - **benchmark**: increase lint compliance (Rich Trott) [#23305](https://github.com/nodejs/node/pull/23305) +* [[`90bbab6f71`](https://github.com/nodejs/node/commit/90bbab6f71)] - **benchmark**: refactor util benchmarks (Ruben Bridgewater) [#22503](https://github.com/nodejs/node/pull/22503) +* [[`2d7e4e0116`](https://github.com/nodejs/node/commit/2d7e4e0116)] - **benchmark,doc,lib,src,test,tools**: fix typos (Brandon Smith) [#23302](https://github.com/nodejs/node/pull/23302) +* [[`e6484c2c11`](https://github.com/nodejs/node/commit/e6484c2c11)] - **build**: restore js2c direct dependency on config.gypi (Refael Ackermann) [#23355](https://github.com/nodejs/node/pull/23355) +* [[`c4aa0331c1`](https://github.com/nodejs/node/commit/c4aa0331c1)] - **build**: make configure script verbose by default (Michaël Zasso) [#23408](https://github.com/nodejs/node/pull/23408) +* [[`cf17759113`](https://github.com/nodejs/node/commit/cf17759113)] - **build**: toggle lint-cpp using verbose (V) variable (Daniel Bevenius) [#23217](https://github.com/nodejs/node/pull/23217) +* [[`b0dc0ca9a9`](https://github.com/nodejs/node/commit/b0dc0ca9a9)] - **build**: make lint-addon-docs quiet (Daniel Bevenius) [#23217](https://github.com/nodejs/node/pull/23217) +* [[`0f236c8d42`](https://github.com/nodejs/node/commit/0f236c8d42)] - **build**: add pgo specific variables to common.gypi (Denys Otrishko) [#23102](https://github.com/nodejs/node/pull/23102) +* [[`de4d688d1f`](https://github.com/nodejs/node/commit/de4d688d1f)] - **build**: cleanup in .gitignore (Refael Ackermann) [#23180](https://github.com/nodejs/node/pull/23180) +* [[`49b0ec4fe7`](https://github.com/nodejs/node/commit/49b0ec4fe7)] - **build**: add loader path to rpath for cctest (Sam Ruby) [#23168](https://github.com/nodejs/node/pull/23168) +* [[`7d21cc2177`](https://github.com/nodejs/node/commit/7d21cc2177)] - **build**: reduce chance of unneeded rebuild (Refael Ackermann) [#23156](https://github.com/nodejs/node/pull/23156) +* [[`aae0eceea0`](https://github.com/nodejs/node/commit/aae0eceea0)] - **build**: encapsulate node/inspector gyp scafolding (Refael Ackermann) [#23156](https://github.com/nodejs/node/pull/23156) +* [[`180099a5ac`](https://github.com/nodejs/node/commit/180099a5ac)] - **build**: enabling pgo at configure (Octavian Soldea) [#21596](https://github.com/nodejs/node/pull/21596) +* [[`f4cffffc96`](https://github.com/nodejs/node/commit/f4cffffc96)] - **build**: add --quiet to lint-cpp (Daniel Bevenius) [#23075](https://github.com/nodejs/node/pull/23075) +* [[`d572f6001a`](https://github.com/nodejs/node/commit/d572f6001a)] - **build**: remove unnecessary Makefile output (Rich Trott) [#23129](https://github.com/nodejs/node/pull/23129) +* [[`fb03faa835`](https://github.com/nodejs/node/commit/fb03faa835)] - **build**: move addons message in Makefile (Rich Trott) [#23114](https://github.com/nodejs/node/pull/23114) +* [[`948dc71664`](https://github.com/nodejs/node/commit/948dc71664)] - **build**: make config verbose on CI (Refael Ackermann) [#22935](https://github.com/nodejs/node/pull/22935) +* [[`b69ed9c80c`](https://github.com/nodejs/node/commit/b69ed9c80c)] - **build**: stop printing execution of lint-md command (Ruben Bridgewater) [#22904](https://github.com/nodejs/node/pull/22904) +* [[`2b8f569388`](https://github.com/nodejs/node/commit/2b8f569388)] - **build,deps**: refactor and fix v8.gyp (Refael Ackermann) [#23182](https://github.com/nodejs/node/pull/23182) +* [[`4db9e36b57`](https://github.com/nodejs/node/commit/4db9e36b57)] - **build,doc**: remove outdated `lint-md-build` (Michaël Zasso) [#22991](https://github.com/nodejs/node/pull/22991) +* [[`c29e5ac5be`](https://github.com/nodejs/node/commit/c29e5ac5be)] - **(SEMVER-MINOR)** **cli**: normalize `\_` → `-` when parsing options (Anna Henningsen) [#23020](https://github.com/nodejs/node/pull/23020) +* [[`54ca0e159f`](https://github.com/nodejs/node/commit/54ca0e159f)] - **cluster**: move handle tracking out of utils (cjihrig) [#23131](https://github.com/nodejs/node/pull/23131) +* [[`cb0d8239b7`](https://github.com/nodejs/node/commit/cb0d8239b7)] - **cluster**: use Map to track handles in master (cjihrig) [#23125](https://github.com/nodejs/node/pull/23125) +* [[`0f133eb5a3`](https://github.com/nodejs/node/commit/0f133eb5a3)] - **cluster**: use Map to track handles in cluster child (cjihrig) [#23125](https://github.com/nodejs/node/pull/23125) +* [[`2dd157fbf3`](https://github.com/nodejs/node/commit/2dd157fbf3)] - **cluster**: use Map to track indexes (cjihrig) [#23125](https://github.com/nodejs/node/pull/23125) +* [[`64f840a767`](https://github.com/nodejs/node/commit/64f840a767)] - **cluster**: use Map to track round robin workers (cjihrig) [#23125](https://github.com/nodejs/node/pull/23125) +* [[`22f51a6a83`](https://github.com/nodejs/node/commit/22f51a6a83)] - **cluster**: use Map to track callbacks (cjihrig) [#23125](https://github.com/nodejs/node/pull/23125) +* [[`26c36efa2f`](https://github.com/nodejs/node/commit/26c36efa2f)] - **crypto**: remove node::crypto::CheckResult (Tobias Nießen) [#23225](https://github.com/nodejs/node/pull/23225) +* [[`5f450f3f92`](https://github.com/nodejs/node/commit/5f450f3f92)] - **crypto**: replace goto SSL\_CTX\_use\_certificate\_chain (Daniel Bevenius) [#23113](https://github.com/nodejs/node/pull/23113) +* [[`db8d99dbc2`](https://github.com/nodejs/node/commit/db8d99dbc2)] - **crypto**: add virtual dtor to KeyPairGenerationConfig (Daniel Bevenius) [#23215](https://github.com/nodejs/node/pull/23215) +* [[`f98d441461`](https://github.com/nodejs/node/commit/f98d441461)] - **crypto**: extract throwInvalidArgType function (Daniel Bevenius) [#22947](https://github.com/nodejs/node/pull/22947) +* [[`1a21cf13cb`](https://github.com/nodejs/node/commit/1a21cf13cb)] - **crypto**: make PEM parsing RFC7468-compliant (Tobias Nießen) [#23164](https://github.com/nodejs/node/pull/23164) +* [[`9c96573124`](https://github.com/nodejs/node/commit/9c96573124)] - **(SEMVER-MINOR)** **crypto**: add support for PEM-level encryption (Tobias Nießen) [#23151](https://github.com/nodejs/node/pull/23151) +* [[`398c0e03e4`](https://github.com/nodejs/node/commit/398c0e03e4)] - **crypto**: replace gotos (Tobias Nießen) [#23132](https://github.com/nodejs/node/pull/23132) +* [[`a51d839a31`](https://github.com/nodejs/node/commit/a51d839a31)] - **crypto**: remove unnecessary calls to TLS\_method() (Daniel Bevenius) [#23077](https://github.com/nodejs/node/pull/23077) +* [[`074b7af7ef`](https://github.com/nodejs/node/commit/074b7af7ef)] - **crypto**: enable auto cert chaining for BoringSSL (Jeremy Apthorp) [#22110](https://github.com/nodejs/node/pull/22110) +* [[`2888f809e3`](https://github.com/nodejs/node/commit/2888f809e3)] - **crypto**: deduplicate cipher initialization code (Tobias Nießen) [#23011](https://github.com/nodejs/node/pull/23011) +* [[`0bc4529a07`](https://github.com/nodejs/node/commit/0bc4529a07)] - **crypto**: remove unnecessary usage of goto (Tobias Nießen) [#23018](https://github.com/nodejs/node/pull/23018) +* [[`cc8219433c`](https://github.com/nodejs/node/commit/cc8219433c)] - **(SEMVER-MINOR)** **crypto**: allow promisifying generateKeyPair (Tobias Nießen) [#22660](https://github.com/nodejs/node/pull/22660) +* [[`421909394c`](https://github.com/nodejs/node/commit/421909394c)] - **(SEMVER-MINOR)** **crypto**: add API for key pair generation (Tobias Nießen) [#22660](https://github.com/nodejs/node/pull/22660) +* [[`76cb52ca11`](https://github.com/nodejs/node/commit/76cb52ca11)] - **deps**: upgrade to libuv 1.23.2 (cjihrig) [#23336](https://github.com/nodejs/node/pull/23336) +* [[`95bdf37265`](https://github.com/nodejs/node/commit/95bdf37265)] - **(SEMVER-MINOR)** **deps**: update nghttp2 to 1.34.0 (James M Snell) [#23284](https://github.com/nodejs/node/pull/23284) +* [[`46c7d0d21f`](https://github.com/nodejs/node/commit/46c7d0d21f)] - **(SEMVER-MINOR)** **deps**: increase V8 deprecation levels (Anna Henningsen) [#23159](https://github.com/nodejs/node/pull/23159) +* [[`e3550f2366`](https://github.com/nodejs/node/commit/e3550f2366)] - **deps**: backport 958b761 from upstream V8 (Matheus Marchini) [#22914](https://github.com/nodejs/node/pull/22914) +* [[`f08373f18d`](https://github.com/nodejs/node/commit/f08373f18d)] - **deps**: cherry-pick 64-bit hash seed commits from V8 (Yang Guo) [#23260](https://github.com/nodejs/node/pull/23260) +* [[`e93c94c327`](https://github.com/nodejs/node/commit/e93c94c327)] - **deps**: add no-strict-aliasing to ICU cflags (Daniel Bevenius) [#23112](https://github.com/nodejs/node/pull/23112) +* [[`5d70652d86`](https://github.com/nodejs/node/commit/5d70652d86)] - **deps**: fix Array.prototype.forEach on v8 6.8 (Mike Stanton) [#22899](https://github.com/nodejs/node/pull/22899) +* [[`e668815a24`](https://github.com/nodejs/node/commit/e668815a24)] - **deps**: cherry-pick dbfcc48 from upstream V8 (Alexey Kozyatinskiy) [#22251](https://github.com/nodejs/node/pull/22251) +* [[`e5efdba75c`](https://github.com/nodejs/node/commit/e5efdba75c)] - **deps**: upgrade to libuv 1.23.1 (cjihrig) [#22997](https://github.com/nodejs/node/pull/22997) +* [[`39d7699a87`](https://github.com/nodejs/node/commit/39d7699a87)] - **deps**: cherry-pick d48bd16 from upstream V8 (Junliang Yan) [#22909](https://github.com/nodejs/node/pull/22909) +* [[`62a2c81214`](https://github.com/nodejs/node/commit/62a2c81214)] - **doc**: simplify and clarify README language (Rich Trott) [#23322](https://github.com/nodejs/node/pull/23322) +* [[`7c0d6ac0bd`](https://github.com/nodejs/node/commit/7c0d6ac0bd)] - **doc**: simplify governance info in README intro (Rich Trott) [#23320](https://github.com/nodejs/node/pull/23320) +* [[`5ff43006d1`](https://github.com/nodejs/node/commit/5ff43006d1)] - **doc**: add link to ABI guide (Gabriel Schulhof) +* [[`9dd47bcf99`](https://github.com/nodejs/node/commit/9dd47bcf99)] - **doc**: fix minor typo in streams.md (Rich Trott) [#23306](https://github.com/nodejs/node/pull/23306) +* [[`a0e8e7fea6`](https://github.com/nodejs/node/commit/a0e8e7fea6)] - **doc**: standardize versions in stream module doc (Rich Trott) [#23306](https://github.com/nodejs/node/pull/23306) +* [[`eee71d6d16`](https://github.com/nodejs/node/commit/eee71d6d16)] - **doc**: add util.inspect() legacy signature (siddhant) [#23216](https://github.com/nodejs/node/pull/23216) +* [[`fbbb25b901`](https://github.com/nodejs/node/commit/fbbb25b901)] - **doc**: edit building-node text (Rich Trott) [#23335](https://github.com/nodejs/node/pull/23335) +* [[`037063c6ee`](https://github.com/nodejs/node/commit/037063c6ee)] - **doc**: remove 72-hour mentions in pull-requests.md (Rich Trott) [#23309](https://github.com/nodejs/node/pull/23309) +* [[`4c54f897f8`](https://github.com/nodejs/node/commit/4c54f897f8)] - **doc**: fix minor typo in n-api.md (Aleksey Chemakin) [#23310](https://github.com/nodejs/node/pull/23310) +* [[`f1cb8ab4bf`](https://github.com/nodejs/node/commit/f1cb8ab4bf)] - **doc**: remove ABI guide (Gabriel Schulhof) [#23303](https://github.com/nodejs/node/pull/23303) +* [[`39e3ef7739`](https://github.com/nodejs/node/commit/39e3ef7739)] - **doc**: Replace vague 'may not' with definitive 'will not' (Mike MacCana) [#23143](https://github.com/nodejs/node/pull/23143) +* [[`11c674549b`](https://github.com/nodejs/node/commit/11c674549b)] - **doc**: update author-ready label terms (Vse Mozhet Byt) [#23249](https://github.com/nodejs/node/pull/23249) +* [[`33e3eb44f7`](https://github.com/nodejs/node/commit/33e3eb44f7)] - **doc**: update onboarding task (Rich Trott) [#23300](https://github.com/nodejs/node/pull/23300) +* [[`df4ade7dc7`](https://github.com/nodejs/node/commit/df4ade7dc7)] - **doc**: use backticks around file names in README.md (Rich Trott) [#23299](https://github.com/nodejs/node/pull/23299) +* [[`80964d36b7`](https://github.com/nodejs/node/commit/80964d36b7)] - **doc**: improve API Documentation text in README (Rich Trott) [#23268](https://github.com/nodejs/node/pull/23268) +* [[`ef0f7e613a`](https://github.com/nodejs/node/commit/ef0f7e613a)] - **doc**: shorten pull request wait time to 48 hours (Rich Trott) [#23082](https://github.com/nodejs/node/pull/23082) +* [[`5b76313059`](https://github.com/nodejs/node/commit/5b76313059)] - **doc**: improve instructions for verifying binaries (Rich Trott) [#23248](https://github.com/nodejs/node/pull/23248) +* [[`6943fa9fc7`](https://github.com/nodejs/node/commit/6943fa9fc7)] - **doc**: shorten intro of README.md (Rich Trott) [#23073](https://github.com/nodejs/node/pull/23073) +* [[`e5bfab0fb6`](https://github.com/nodejs/node/commit/e5bfab0fb6)] - **doc**: add guide about abi stability (Gabriel Schulhof) [#23229](https://github.com/nodejs/node/pull/23229) +* [[`e283206047`](https://github.com/nodejs/node/commit/e283206047)] - **doc**: improve `stream.Writable` ctor encoding option docs (Anna Henningsen) [#23246](https://github.com/nodejs/node/pull/23246) +* [[`bd59d4efbf`](https://github.com/nodejs/node/commit/bd59d4efbf)] - **doc**: fix code snippets in tls.md (Ouyang Yadong) [#23239](https://github.com/nodejs/node/pull/23239) +* [[`27c5e96ffe`](https://github.com/nodejs/node/commit/27c5e96ffe)] - **doc**: leave pull requests open for 72 hours (Rich Trott) [#22275](https://github.com/nodejs/node/pull/22275) +* [[`5836b9fcc8`](https://github.com/nodejs/node/commit/5836b9fcc8)] - **doc**: specify cluster worker.kill() caveat (cjihrig) [#23165](https://github.com/nodejs/node/pull/23165) +* [[`ed01b38295`](https://github.com/nodejs/node/commit/ed01b38295)] - **doc**: use stronger language about security of vm (Gus Caplan) [#23198](https://github.com/nodejs/node/pull/23198) +* [[`eb8721977f`](https://github.com/nodejs/node/commit/eb8721977f)] - **doc**: improve Download section of README (Rich Trott) [#23212](https://github.com/nodejs/node/pull/23212) +* [[`003d85d2d9`](https://github.com/nodejs/node/commit/003d85d2d9)] - **doc**: remove GA tracking (Ben Noordhuis) [#23083](https://github.com/nodejs/node/pull/23083) +* [[`6912376562`](https://github.com/nodejs/node/commit/6912376562)] - **doc**: move gibfahn to TSC Emeritus (Gibson Fahnestock) [#23238](https://github.com/nodejs/node/pull/23238) +* [[`1553e21007`](https://github.com/nodejs/node/commit/1553e21007)] - **doc**: clarify assigning issues to the TSC (Franziska Hinkelmann) [#22759](https://github.com/nodejs/node/pull/22759) +* [[`71901d6b30`](https://github.com/nodejs/node/commit/71901d6b30)] - **doc**: improve Release Types text in README (Rich Trott) [#23190](https://github.com/nodejs/node/pull/23190) +* [[`8191bee313`](https://github.com/nodejs/node/commit/8191bee313)] - **doc**: simplify support section of README (Rich Trott) [#23170](https://github.com/nodejs/node/pull/23170) +* [[`548934d412`](https://github.com/nodejs/node/commit/548934d412)] - **doc**: fix incorrect anchoring (#vcbuild.bat -\> #vcbuildbat) (Justin Lee) [#23211](https://github.com/nodejs/node/pull/23211) +* [[`ce006eb68d`](https://github.com/nodejs/node/commit/ce006eb68d)] - **doc**: fix minor typo (to early -\> too early) (Justin Lee) [#23211](https://github.com/nodejs/node/pull/23211) +* [[`21490c2a87`](https://github.com/nodejs/node/commit/21490c2a87)] - **doc**: remove recommendation to use node-eps (Richard Lau) [#23148](https://github.com/nodejs/node/pull/23148) +* [[`e71a72fbf2`](https://github.com/nodejs/node/commit/e71a72fbf2)] - **doc**: add contents table to CONTRIBUTING.md (ZYSzys) [#23140](https://github.com/nodejs/node/pull/23140) +* [[`818db4036b`](https://github.com/nodejs/node/commit/818db4036b)] - **doc**: move perf tools and APIs to Tier 3 (Matheus Marchini) [#22915](https://github.com/nodejs/node/pull/22915) +* [[`e791abe5ef`](https://github.com/nodejs/node/commit/e791abe5ef)] - **doc**: formalize `auto` usage in C++ style guide (Anna Henningsen) [#23028](https://github.com/nodejs/node/pull/23028) +* [[`310109691b`](https://github.com/nodejs/node/commit/310109691b)] - **doc**: fix casing in stream.md (Sintendo) [#23166](https://github.com/nodejs/node/pull/23166) +* [[`bb5c6892ee`](https://github.com/nodejs/node/commit/bb5c6892ee)] - **doc**: add table of contents in BUILDING.md (ZYSzys) [#23147](https://github.com/nodejs/node/pull/23147) +* [[`cbcf5f88cd`](https://github.com/nodejs/node/commit/cbcf5f88cd)] - **doc**: deeper link to downloads site (Refael Ackermann) [#23084](https://github.com/nodejs/node/pull/23084) +* [[`9109187948`](https://github.com/nodejs/node/commit/9109187948)] - **doc**: update guide for assert team (Rich Trott) [#23085](https://github.com/nodejs/node/pull/23085) +* [[`2731d08c33`](https://github.com/nodejs/node/commit/2731d08c33)] - **doc**: add links for fs.createWriteStream() (Rich Trott) [#23104](https://github.com/nodejs/node/pull/23104) +* [[`9fa3813845`](https://github.com/nodejs/node/commit/9fa3813845)] - **doc**: edit fast-tracking section (cjihrig) [#23059](https://github.com/nodejs/node/pull/23059) +* [[`14327aea7b`](https://github.com/nodejs/node/commit/14327aea7b)] - **doc**: improve instruction to purple merge (Refael Ackermann) [#23007](https://github.com/nodejs/node/pull/23007) +* [[`87565c763a`](https://github.com/nodejs/node/commit/87565c763a)] - **doc**: require two approvals to land changes (Rich Trott) [#22255](https://github.com/nodejs/node/pull/22255) +* [[`e7be1edc49`](https://github.com/nodejs/node/commit/e7be1edc49)] - **doc**: fix optional parameters in n-api.md (Lars-Magnus Skog) [#22998](https://github.com/nodejs/node/pull/22998) +* [[`24073cef6b`](https://github.com/nodejs/node/commit/24073cef6b)] - **doc**: add callback parameters of worker.terminate() (Denis Fäcke) [#23002](https://github.com/nodejs/node/pull/23002) +* [[`6b2e2ff036`](https://github.com/nodejs/node/commit/6b2e2ff036)] - **doc**: improve metadata for http.request (Tobias Nießen) [#22949](https://github.com/nodejs/node/pull/22949) +* [[`91b410259e`](https://github.com/nodejs/node/commit/91b410259e)] - **doc**: add missing metadata for recursive mkdir (Tobias Nießen) [#22949](https://github.com/nodejs/node/pull/22949) +* [[`15c7c57a78`](https://github.com/nodejs/node/commit/15c7c57a78)] - **doc**: add missing metadata for dns.lookup (Tobias Nießen) [#22949](https://github.com/nodejs/node/pull/22949) +* [[`05196893b9`](https://github.com/nodejs/node/commit/05196893b9)] - **doc**: fix heading levels in C++ style guide (Anna Henningsen) [#23061](https://github.com/nodejs/node/pull/23061) +* [[`29a9e8498a`](https://github.com/nodejs/node/commit/29a9e8498a)] - **doc**: remove outdated notes on stdio in workers (Anna Henningsen) [#23054](https://github.com/nodejs/node/pull/23054) +* [[`d3bc862d88`](https://github.com/nodejs/node/commit/d3bc862d88)] - **doc**: match program and console output in synopsis.md (Mohammed Essehemy) [#23006](https://github.com/nodejs/node/pull/23006) +* [[`15b91b9eb8`](https://github.com/nodejs/node/commit/15b91b9eb8)] - **doc**: add links for repl.ReplServer (Rich Trott) [#23005](https://github.com/nodejs/node/pull/23005) +* [[`b0e86ea8d0`](https://github.com/nodejs/node/commit/b0e86ea8d0)] - **doc**: update maintaining V8 guide (Michaël Zasso) [#22913](https://github.com/nodejs/node/pull/22913) +* [[`00dd9738ee`](https://github.com/nodejs/node/commit/00dd9738ee)] - **doc**: specify fast-tracking (Ruben Bridgewater) [#22929](https://github.com/nodejs/node/pull/22929) +* [[`ef5d90dfdc`](https://github.com/nodejs/node/commit/ef5d90dfdc)] - **doc**: add digitalinfinity to collaborators (Hitesh Kanwathirtha) [#22984](https://github.com/nodejs/node/pull/22984) +* [[`b48dc0b667`](https://github.com/nodejs/node/commit/b48dc0b667)] - **doc,test**: fix inspect's sorted compare function (Michaël Zasso) [#22992](https://github.com/nodejs/node/pull/22992) +* [[`d9d9d23191`](https://github.com/nodejs/node/commit/d9d9d23191)] - **errors**: fix ERR\_SOCKET\_BAD\_PORT message (Giovanny Andres Gongora Granada (Gioyik)) [#23015](https://github.com/nodejs/node/pull/23015) +* [[`bb6530b31b`](https://github.com/nodejs/node/commit/bb6530b31b)] - **fs**: consistently return symlink type from readdir (Klaus Meinhardt) [#22808](https://github.com/nodejs/node/pull/22808) +* [[`7e45daf494`](https://github.com/nodejs/node/commit/7e45daf494)] - **(SEMVER-MINOR)** **fs**: implement mkdir recursive (mkdirp) (Benjamin Coe) [#21875](https://github.com/nodejs/node/pull/21875) +* [[`c29734c9d6`](https://github.com/nodejs/node/commit/c29734c9d6)] - **fs**: improve fs.watch ENOSPC error message (Anna Henningsen) [#21846](https://github.com/nodejs/node/pull/21846) +* [[`7b327ea909`](https://github.com/nodejs/node/commit/7b327ea909)] - **(SEMVER-MINOR)** **http2**: add RFC 8441 extended connect protocol support (James M Snell) [#23284](https://github.com/nodejs/node/pull/23284) +* [[`001881f33e`](https://github.com/nodejs/node/commit/001881f33e)] - **http2**: set nghttp2\_option\_set\_no\_closed\_streams (David Halls) [#23134](https://github.com/nodejs/node/pull/23134) +* [[`8fe62f8d38`](https://github.com/nodejs/node/commit/8fe62f8d38)] - **http2**: don't send trailers on a closed connection (André Cruz) [#23146](https://github.com/nodejs/node/pull/23146) +* [[`d1826fed41`](https://github.com/nodejs/node/commit/d1826fed41)] - **http2**: close fd in doSendFileFD() (cjihrig) [#23047](https://github.com/nodejs/node/pull/23047) +* [[`8bf004b96d`](https://github.com/nodejs/node/commit/8bf004b96d)] - **(SEMVER-MINOR)** **http2**: add ping event (James M Snell) [#23009](https://github.com/nodejs/node/pull/23009) +* [[`badc38f305`](https://github.com/nodejs/node/commit/badc38f305)] - **http2**: do not falsely emit 'aborted' on push (Anatoli Papirovski) [#22878](https://github.com/nodejs/node/pull/22878) +* [[`24675a4306`](https://github.com/nodejs/node/commit/24675a4306)] - **(SEMVER-MINOR)** **http2**: add origin frame support (James M Snell) [#22956](https://github.com/nodejs/node/pull/22956) +* [[`89fe9edd08`](https://github.com/nodejs/node/commit/89fe9edd08)] - **http2**: check if stream is not destroyed before sending trailers (Matteo Collina) [#22896](https://github.com/nodejs/node/pull/22896) +* [[`aa48192f9d`](https://github.com/nodejs/node/commit/aa48192f9d)] - **inspector**: add virtual destructor to WorkerDelegate (Daniel Bevenius) [#23215](https://github.com/nodejs/node/pull/23215) +* [[`16f7f52b24`](https://github.com/nodejs/node/commit/16f7f52b24)] - **inspector**: workers debugging (Eugene Ostroukhov) [#21364](https://github.com/nodejs/node/pull/21364) +* [[`f66e9abcb3`](https://github.com/nodejs/node/commit/f66e9abcb3)] - **inspector**: implemented V8InspectorClient::resourceNameToUrl (Alexey Kozyatinskiy) [#22251](https://github.com/nodejs/node/pull/22251) +* [[`1c3a2ebfcf`](https://github.com/nodejs/node/commit/1c3a2ebfcf)] - **inspector**: enable Inspector JS API in workers (Eugene Ostroukhov) [#22769](https://github.com/nodejs/node/pull/22769) +* [[`c40e2dd6c9`](https://github.com/nodejs/node/commit/c40e2dd6c9)] - **lib**: reword help text for clarity (Gireesh Punathil) [#23016](https://github.com/nodejs/node/pull/23016) +* [[`f38eff29e7`](https://github.com/nodejs/node/commit/f38eff29e7)] - **lib**: change abstract equal to strict equal (ZYSzys) [#22974](https://github.com/nodejs/node/pull/22974) +* [[`0140a98e05`](https://github.com/nodejs/node/commit/0140a98e05)] - **lib**: make DOMException attributes configurable and enumerable (Joyee Cheung) [#22550](https://github.com/nodejs/node/pull/22550) +* [[`5e7b1082d9`](https://github.com/nodejs/node/commit/5e7b1082d9)] - **lib**: set Symbol.toStringTag of DOMException (Joyee Cheung) [#22933](https://github.com/nodejs/node/pull/22933) +* [[`a7f4d5e134`](https://github.com/nodejs/node/commit/a7f4d5e134)] - **lib**: refactor variable declarations (ZYSzys) [#22643](https://github.com/nodejs/node/pull/22643) +* [[`fb68ef2e74`](https://github.com/nodejs/node/commit/fb68ef2e74)] - **lib**: added common.restoreStderr(); to end of file (Mark Abel) [#22487](https://github.com/nodejs/node/pull/22487) +* [[`600c225439`](https://github.com/nodejs/node/commit/600c225439)] - **(SEMVER-MINOR)** **module**: add createRequireFunction method (Gus Caplan) [#19360](https://github.com/nodejs/node/pull/19360) +* [[`a65bb42551`](https://github.com/nodejs/node/commit/a65bb42551)] - **net**: use connect() instead of connect.call() (Jackson Tian) [#23289](https://github.com/nodejs/node/pull/23289) +* [[`5a306748e9`](https://github.com/nodejs/node/commit/5a306748e9)] - **process**: allow reading from stdout/stderr sockets (Anna Henningsen) [#23053](https://github.com/nodejs/node/pull/23053) +* [[`66484b82c4`](https://github.com/nodejs/node/commit/66484b82c4)] - **(SEMVER-MINOR)** **process**: add `multipleResolves` event (Ruben Bridgewater) [#22218](https://github.com/nodejs/node/pull/22218) +* [[`e16dd6d165`](https://github.com/nodejs/node/commit/e16dd6d165)] - **repl**: refactor ERR\_SCRIPT\_EXECUTION\_INTERRUPTED stack handling (Ruben Bridgewater) [#22436](https://github.com/nodejs/node/pull/22436) +* [[`b1ffda6c17`](https://github.com/nodejs/node/commit/b1ffda6c17)] - **repl**: improve error output (Ruben Bridgewater) [#22436](https://github.com/nodejs/node/pull/22436) +* [[`cd69e1b6c3`](https://github.com/nodejs/node/commit/cd69e1b6c3)] - **src**: fix ToObject() usage in node\_http\_parser.cc (cjihrig) [#23314](https://github.com/nodejs/node/pull/23314) +* [[`5228ec4410`](https://github.com/nodejs/node/commit/5228ec4410)] - **src**: fix ToObject() usage in exceptions.cc (cjihrig) [#23314](https://github.com/nodejs/node/pull/23314) +* [[`4d761d4224`](https://github.com/nodejs/node/commit/4d761d4224)] - **src**: reduce variable scope in stream\_base.cc (cjihrig) [#23297](https://github.com/nodejs/node/pull/23297) +* [[`740741b279`](https://github.com/nodejs/node/commit/740741b279)] - **src**: reduce variable scope in node\_worker.cc (cjihrig) [#23297](https://github.com/nodejs/node/pull/23297) +* [[`56c2f5702f`](https://github.com/nodejs/node/commit/56c2f5702f)] - **src**: reduce variable scope in node\_trace\_writer.cc (cjihrig) [#23297](https://github.com/nodejs/node/pull/23297) +* [[`046fd987e4`](https://github.com/nodejs/node/commit/046fd987e4)] - **src**: reduce variable scope in node\_url.cc (cjihrig) [#23297](https://github.com/nodejs/node/pull/23297) +* [[`36c430796b`](https://github.com/nodejs/node/commit/36c430796b)] - **src**: remove unneeded variables in node\_crypto.cc (cjihrig) [#23297](https://github.com/nodejs/node/pull/23297) +* [[`902ba0ecb4`](https://github.com/nodejs/node/commit/902ba0ecb4)] - **src**: reduce variable scope in module\_wrap.cc (cjihrig) [#23297](https://github.com/nodejs/node/pull/23297) +* [[`402867c0a9`](https://github.com/nodejs/node/commit/402867c0a9)] - **src**: reduce variable scope in cares\_wrap.cc (cjihrig) [#23297](https://github.com/nodejs/node/pull/23297) +* [[`315bf257e5`](https://github.com/nodejs/node/commit/315bf257e5)] - **src**: fix ToObject() usage in node\_crypto.cc (cjihrig) [#23298](https://github.com/nodejs/node/pull/23298) +* [[`950ccee386`](https://github.com/nodejs/node/commit/950ccee386)] - **src**: name EmbededderGraph edges and use class names for nodes (Joyee Cheung) [#23072](https://github.com/nodejs/node/pull/23072) +* [[`390fc85ff0`](https://github.com/nodejs/node/commit/390fc85ff0)] - **src**: implement the new EmbedderGraph::AddEdge() (Joyee Cheung) [#22106](https://github.com/nodejs/node/pull/22106) +* [[`5a8396796d`](https://github.com/nodejs/node/commit/5a8396796d)] - **src**: use JS inheritance for `AsyncWrap` (Anna Henningsen) [#23094](https://github.com/nodejs/node/pull/23094) +* [[`894210ec12`](https://github.com/nodejs/node/commit/894210ec12)] - **src**: add virtual desctructor to Options class (Daniel Bevenius) [#23215](https://github.com/nodejs/node/pull/23215) +* [[`8f5fb6f90c`](https://github.com/nodejs/node/commit/8f5fb6f90c)] - **src**: clean up zlib write code (Anna Henningsen) [#23183](https://github.com/nodejs/node/pull/23183) +* [[`2da6f622dc`](https://github.com/nodejs/node/commit/2da6f622dc)] - **(SEMVER-MINOR)** **src**: deprecate `UVException()` without `Isolate\*` (Anna Henningsen) [#23175](https://github.com/nodejs/node/pull/23175) +* [[`e9a0cffbd6`](https://github.com/nodejs/node/commit/e9a0cffbd6)] - **(SEMVER-MINOR)** **src**: deprecate V8 date conversion helpers (Anna Henningsen) [#23179](https://github.com/nodejs/node/pull/23179) +* [[`a2c1ce24b5`](https://github.com/nodejs/node/commit/a2c1ce24b5)] - **src**: fix indentation for `AsyncResource` (Anna Henningsen) [#23177](https://github.com/nodejs/node/pull/23177) +* [[`64689edf76`](https://github.com/nodejs/node/commit/64689edf76)] - **src**: remove unused using declarations (Daniel Bevenius) [#23120](https://github.com/nodejs/node/pull/23120) +* [[`0202c6c808`](https://github.com/nodejs/node/commit/0202c6c808)] - **src**: remove unused locale.h (Daniel Bevenius) [#23120](https://github.com/nodejs/node/pull/23120) +* [[`20a4f14c57`](https://github.com/nodejs/node/commit/20a4f14c57)] - **src**: make req\_wrap a unique\_ptr in AfterConnect (Daniel Bevenius) [#23115](https://github.com/nodejs/node/pull/23115) +* [[`ce7fad5b79`](https://github.com/nodejs/node/commit/ce7fad5b79)] - **src**: use unique\_ptr for obj in SetWeak lambda (Daniel Bevenius) [#23117](https://github.com/nodejs/node/pull/23117) +* [[`7d7dc16240`](https://github.com/nodejs/node/commit/7d7dc16240)] - **src**: unique\_ptrs in few lambdas (Gireesh Punathil) [#23124](https://github.com/nodejs/node/pull/23124) +* [[`4bd3b6e332`](https://github.com/nodejs/node/commit/4bd3b6e332)] - **src**: refactor crypto code with RAII cleanup (Gireesh Punathil) [#23014](https://github.com/nodejs/node/pull/23014) +* [[`f3d09b6e4f`](https://github.com/nodejs/node/commit/f3d09b6e4f)] - **src**: simplify `MessagePort` construction code a bit (Anna Henningsen) [#23036](https://github.com/nodejs/node/pull/23036) +* [[`4d61c34b9e`](https://github.com/nodejs/node/commit/4d61c34b9e)] - **src**: fix a typo in the comment (Gireesh Punathil) [#23078](https://github.com/nodejs/node/pull/23078) +* [[`fa833828b2`](https://github.com/nodejs/node/commit/fa833828b2)] - **src**: added URL::FromFilePath method (Alexey Kozyatinskiy) [#22251](https://github.com/nodejs/node/pull/22251) +* [[`109aa63910`](https://github.com/nodejs/node/commit/109aa63910)] - **src**: cache and resue isolate and contex pointers (Gireesh Punathil) [#23024](https://github.com/nodejs/node/pull/23024) +* [[`2f659a3d74`](https://github.com/nodejs/node/commit/2f659a3d74)] - **src**: use RAII cleanup in node\_i18n.cc (Anna Henningsen) [#23021](https://github.com/nodejs/node/pull/23021) +* [[`90f1200be9`](https://github.com/nodejs/node/commit/90f1200be9)] - **src**: define zlib constants in node\_zlib.cc (Anna Henningsen) [#23019](https://github.com/nodejs/node/pull/23019) +* [[`d72867ec0c`](https://github.com/nodejs/node/commit/d72867ec0c)] - **src**: make `ZCtx::Init()` non-static (Anna Henningsen) [#23019](https://github.com/nodejs/node/pull/23019) +* [[`56b1a3cf6e`](https://github.com/nodejs/node/commit/56b1a3cf6e)] - **src**: refactor zlib dictionary to STL vector (Anna Henningsen) [#23019](https://github.com/nodejs/node/pull/23019) +* [[`76453f1878`](https://github.com/nodejs/node/commit/76453f1878)] - **src**: replace deprecated uses of FunctionTemplate::GetFunction (Andreas Haas) [#22993](https://github.com/nodejs/node/pull/22993) +* [[`cb3062aa42`](https://github.com/nodejs/node/commit/cb3062aa42)] - **src**: remove calls to SetWrapperClassId() (Joyee Cheung) [#22975](https://github.com/nodejs/node/pull/22975) +* [[`ab032e4ff4`](https://github.com/nodejs/node/commit/ab032e4ff4)] - **src**: refactor win32 `DebugProcess()` to use RAII cleanup (Anna Henningsen) [#22981](https://github.com/nodejs/node/pull/22981) +* [[`b6cd18517c`](https://github.com/nodejs/node/commit/b6cd18517c)] - **src**: add CheckOptions to Options classes (Daniel Bevenius) [#22943](https://github.com/nodejs/node/pull/22943) +* [[`ace6e07f0e`](https://github.com/nodejs/node/commit/ace6e07f0e)] - **src**: initialize pid variable before goto (Jeremy Apthorp) [#22961](https://github.com/nodejs/node/pull/22961) +* [[`25bf1f5e28`](https://github.com/nodejs/node/commit/25bf1f5e28)] - **stream**: improve buffer list inspection (Ruben Bridgewater) [#23109](https://github.com/nodejs/node/pull/23109) +* [[`2b77b94c05`](https://github.com/nodejs/node/commit/2b77b94c05)] - **streams**: refactor ReadableStream asyncIterator creation and a few fixes (Gus Caplan) [#23042](https://github.com/nodejs/node/pull/23042) +* [[`df54db667c`](https://github.com/nodejs/node/commit/df54db667c)] - **test**: remove internal errorCache property (Rich Trott) [#23304](https://github.com/nodejs/node/pull/23304) +* [[`70abcf2d10`](https://github.com/nodejs/node/commit/70abcf2d10)] - **test**: remove eslint-disable from fixtures (Rich Trott) [#23345](https://github.com/nodejs/node/pull/23345) +* [[`b2d3445644`](https://github.com/nodejs/node/commit/b2d3445644)] - **test**: read() on dir on AIX does not return EISDIR (Ben Noordhuis) [#23330](https://github.com/nodejs/node/pull/23330) +* [[`b523f13fa2`](https://github.com/nodejs/node/commit/b523f13fa2)] - **test**: add module require tests for certain package.json errors (Tom White) [#23285](https://github.com/nodejs/node/pull/23285) +* [[`45e0080cf1`](https://github.com/nodejs/node/commit/45e0080cf1)] - **test**: remove flaky designation for test (Rich Trott) [#22856](https://github.com/nodejs/node/pull/22856) +* [[`085de6fe18`](https://github.com/nodejs/node/commit/085de6fe18)] - **test**: swap arguments in strictEqual() (Duarte David) [#23204](https://github.com/nodejs/node/pull/23204) +* [[`a070842e97`](https://github.com/nodejs/node/commit/a070842e97)] - **test**: remove obsolete domain test (Julien Gilli) +* [[`cb68188805`](https://github.com/nodejs/node/commit/cb68188805)] - **test**: add stdin writable regression test (Anna Henningsen) [#23053](https://github.com/nodejs/node/pull/23053) +* [[`06b5ef3868`](https://github.com/nodejs/node/commit/06b5ef3868)] - **test**: terminate cluster worker in infinite loop (cjihrig) [#23165](https://github.com/nodejs/node/pull/23165) +* [[`9352d9d596`](https://github.com/nodejs/node/commit/9352d9d596)] - **test**: harden test-gc-http-client-timeout (Denys Otrishko) [#23184](https://github.com/nodejs/node/pull/23184) +* [[`748d9d22fa`](https://github.com/nodejs/node/commit/748d9d22fa)] - **test**: add process.stdin.end() TTY regression test (Matteo Collina) [#23051](https://github.com/nodejs/node/pull/23051) +* [[`44db98a7b6`](https://github.com/nodejs/node/commit/44db98a7b6)] - **test**: add more descriptive err message to assert (Josh Broomfield) [#23118](https://github.com/nodejs/node/pull/23118) +* [[`b2a1cf3793`](https://github.com/nodejs/node/commit/b2a1cf3793)] - **test**: mark some flakes (Refael Ackermann) [#23208](https://github.com/nodejs/node/pull/23208) +* [[`9b30a635e0`](https://github.com/nodejs/node/commit/9b30a635e0)] - **test**: improve test-gc-http-client (Rich Trott) [#23145](https://github.com/nodejs/node/pull/23145) +* [[`23525b0547`](https://github.com/nodejs/node/commit/23525b0547)] - **test**: replace localhost with os.hostname in fs-readfilesync (Denys Otrishko) [#23101](https://github.com/nodejs/node/pull/23101) +* [[`bebd7b2cdc`](https://github.com/nodejs/node/commit/bebd7b2cdc)] - **test**: fix flaky test-gc-net-timeout (Rich Trott) [#23139](https://github.com/nodejs/node/pull/23139) +* [[`efeb49d224`](https://github.com/nodejs/node/commit/efeb49d224)] - **test**: increase test coverage for fs.promises read (Jennifer Bland) [#22800](https://github.com/nodejs/node/pull/22800) +* [[`39c2a3f1c1`](https://github.com/nodejs/node/commit/39c2a3f1c1)] - **test**: improve test-gc-http-client-connaborted (Rich Trott) [#23091](https://github.com/nodejs/node/pull/23091) +* [[`48c1c428f9`](https://github.com/nodejs/node/commit/48c1c428f9)] - **test**: improve debugging information for http2 test (Rich Trott) [#23058](https://github.com/nodejs/node/pull/23058) +* [[`f486186e25`](https://github.com/nodejs/node/commit/f486186e25)] - **test**: remove setImmediate from timeout test (Rich Trott) [#23058](https://github.com/nodejs/node/pull/23058) +* [[`85c4ecb8a5`](https://github.com/nodejs/node/commit/85c4ecb8a5)] - **test**: test undefined in util (ZYSzys) [#22741](https://github.com/nodejs/node/pull/22741) +* [[`3e4af49157`](https://github.com/nodejs/node/commit/3e4af49157)] - **test**: add dns.onlookupall() to increase coverage (Masashi Hirano) [#22985](https://github.com/nodejs/node/pull/22985) +* [[`d68dfa9243`](https://github.com/nodejs/node/commit/d68dfa9243)] - **test**: console.table when `null` in data (ZYSzys) [#22974](https://github.com/nodejs/node/pull/22974) +* [[`4cda83dae2`](https://github.com/nodejs/node/commit/4cda83dae2)] - **test**: improve test-gc-http-client-onerror (Rich Trott) [#23090](https://github.com/nodejs/node/pull/23090) +* [[`52c6ee789b`](https://github.com/nodejs/node/commit/52c6ee789b)] - **test**: improve test-gc-http-client-timeout (Rich Trott) [#23088](https://github.com/nodejs/node/pull/23088) +* [[`69d3c08be1`](https://github.com/nodejs/node/commit/69d3c08be1)] - **test**: improve reliability of test-gc-http-client (Rich Trott) [#23087](https://github.com/nodejs/node/pull/23087) +* [[`a566f0f43e`](https://github.com/nodejs/node/commit/a566f0f43e)] - **test**: improve reliability of test-gc-net-timeout (Rich Trott) [#23086](https://github.com/nodejs/node/pull/23086) +* [[`c54e42362c`](https://github.com/nodejs/node/commit/c54e42362c)] - **test**: remove unnecessary assertions (Anna Henningsen) [#23040](https://github.com/nodejs/node/pull/23040) +* [[`adaf530cdb`](https://github.com/nodejs/node/commit/adaf530cdb)] - **test**: check parameter type of fs.mkdir() (Masashi Hirano) [#22616](https://github.com/nodejs/node/pull/22616) +* [[`a3b3485b34`](https://github.com/nodejs/node/commit/a3b3485b34)] - **test**: add comment describing test-fs-mkdir (Jennifer Bland) [#22424](https://github.com/nodejs/node/pull/22424) +* [[`5d4bec3e0f`](https://github.com/nodejs/node/commit/5d4bec3e0f)] - **test**: fix flaky sequential/test-fs-watch-system-limit (Anna Henningsen) [#23038](https://github.com/nodejs/node/pull/23038) +* [[`9de6b26a0c`](https://github.com/nodejs/node/commit/9de6b26a0c)] - **test**: remove string literals for strictEquals/notStrictEquals (MaleDong) [#22891](https://github.com/nodejs/node/pull/22891) +* [[`43e3cf93e8`](https://github.com/nodejs/node/commit/43e3cf93e8)] - **test**: do not export common.leakedGlobals() (Rich Trott) [#22965](https://github.com/nodejs/node/pull/22965) +* [[`70ccec2d91`](https://github.com/nodejs/node/commit/70ccec2d91)] - **test**: increase coverage for worker\_threads (Rich Trott) [#22942](https://github.com/nodejs/node/pull/22942) +* [[`83278b23a7`](https://github.com/nodejs/node/commit/83278b23a7)] - **test**: fix flaky key pair generation test (Tobias Nießen) [#22980](https://github.com/nodejs/node/pull/22980) +* [[`d38ce82756`](https://github.com/nodejs/node/commit/d38ce82756)] - **test**: remove common.hasSmallICU (Rich Trott) [#22937](https://github.com/nodejs/node/pull/22937) +* [[`dcce2d67ae`](https://github.com/nodejs/node/commit/dcce2d67ae)] - **test**: add tests to check error in dns.lookupService. (Masashi Hirano) [#22908](https://github.com/nodejs/node/pull/22908) +* [[`079760f28b`](https://github.com/nodejs/node/commit/079760f28b)] - **test**: mark some tests as flaky (João Reis) [#22941](https://github.com/nodejs/node/pull/22941) +* [[`4436a3d660`](https://github.com/nodejs/node/commit/4436a3d660)] - **timers**: use custom inspection for linked lists (Ruben Bridgewater) [#23108](https://github.com/nodejs/node/pull/23108) +* [[`4b976df9e2`](https://github.com/nodejs/node/commit/4b976df9e2)] - **tls**: fix DEP0083 after upgrading to OpenSSL 1.1.0 (Tobias Nießen) [#22953](https://github.com/nodejs/node/pull/22953) +* [[`acc4a761b7`](https://github.com/nodejs/node/commit/acc4a761b7)] - **tools**: make Travis commit linting more robust (Rich Trott) [#23397](https://github.com/nodejs/node/pull/23397) +* [[`e2a6e051b3`](https://github.com/nodejs/node/commit/e2a6e051b3)] - **tools**: apply linting to first commit in PRs (Rich Trott) [#22452](https://github.com/nodejs/node/pull/22452) +* [[`42e67a4e68`](https://github.com/nodejs/node/commit/42e67a4e68)] - **tools**: remove useless assignment from configure.py (Gus Caplan) [#23200](https://github.com/nodejs/node/pull/23200) +* [[`1010ef5df7`](https://github.com/nodejs/node/commit/1010ef5df7)] - **tools**: fix ICU shrinker and docs (Steven R. Loomis) [#23266](https://github.com/nodejs/node/pull/23266) +* [[`d7031df415`](https://github.com/nodejs/node/commit/d7031df415)] - **tools**: allow input for TTY tests (Anna Henningsen) [#23053](https://github.com/nodejs/node/pull/23053) +* [[`1a92335543`](https://github.com/nodejs/node/commit/1a92335543)] - **tools**: unify .editorconfig rules for 2-space (Roman Reiss) [#23163](https://github.com/nodejs/node/pull/23163) +* [[`ef00e5c967`](https://github.com/nodejs/node/commit/ef00e5c967)] - **tools**: fix cpplint --quiet option (Daniel Bevenius) [#23075](https://github.com/nodejs/node/pull/23075) +* [[`1cbc2ee034`](https://github.com/nodejs/node/commit/1cbc2ee034)] - **tools**: update ESLint to 5.6.1 (cjihrig) [#23149](https://github.com/nodejs/node/pull/23149) +* [[`f6fc7e7aa5`](https://github.com/nodejs/node/commit/f6fc7e7aa5)] - **tools**: .eslintrc.js messages "default" typo style (Lovingly) [#22868](https://github.com/nodejs/node/pull/22868) +* [[`a22485d8f1`](https://github.com/nodejs/node/commit/a22485d8f1)] - **(SEMVER-MINOR)** **tools**: add bash completion for node (Daniel Bevenius) [#20713](https://github.com/nodejs/node/pull/20713) +* [[`a6562685c3`](https://github.com/nodejs/node/commit/a6562685c3)] - ***Revert*** "**tools,gyp**: don't force build actions with multiple outputs" (Sakthipriyan Vairamani (thefourtheye)) [#23257](https://github.com/nodejs/node/pull/23257) +* [[`73917387f4`](https://github.com/nodejs/node/commit/73917387f4)] - **tools,gyp**: cosmetic change to GYP `make` generator outputs (Refael Ackermann) [#23156](https://github.com/nodejs/node/pull/23156) +* [[`d8cedf545e`](https://github.com/nodejs/node/commit/d8cedf545e)] - **tools,gyp**: don't force build actions with multiple outputs (Refael Ackermann) [#23156](https://github.com/nodejs/node/pull/23156) +* [[`bf17708aa2`](https://github.com/nodejs/node/commit/bf17708aa2)] - **tty**: document `WriteStream.cursorTo()` and others (Umang Raghuvanshi) [#22893](https://github.com/nodejs/node/pull/22893) +* [[`9c36827e94`](https://github.com/nodejs/node/commit/9c36827e94)] - **(SEMVER-MINOR)** **tty**: make `readStream.setRawMode()` return `this` (Alexander Mills) [#22950](https://github.com/nodejs/node/pull/22950) +* [[`36028caf8c`](https://github.com/nodejs/node/commit/36028caf8c)] - **tty**: handle setRawMode errors (Nikolai Vavilov) [#22886](https://github.com/nodejs/node/pull/22886) +* [[`d22ee2c698`](https://github.com/nodejs/node/commit/d22ee2c698)] - **url**: use foreach-style C++ loop (Tobias Nießen) [#23138](https://github.com/nodejs/node/pull/23138) +* [[`f1b1b73c2b`](https://github.com/nodejs/node/commit/f1b1b73c2b)] - **(SEMVER-MINOR)** **url**: provide pathToFileURL and fileURLToPath (guybedford) [#22506](https://github.com/nodejs/node/pull/22506) +* [[`384221e75c`](https://github.com/nodejs/node/commit/384221e75c)] - **(SEMVER-MINOR)** **util**: support BigInt in util.format (Masashi Hirano) [#22097](https://github.com/nodejs/node/pull/22097) +* [[`77de1beaf0`](https://github.com/nodejs/node/commit/77de1beaf0)] - **util**: move inspect in separate file (Ruben Bridgewater) [#22845](https://github.com/nodejs/node/pull/22845) +* [[`f2dfebb7b4`](https://github.com/nodejs/node/commit/f2dfebb7b4)] - **util**: update definition of DISALLOW\_COPY\_AND\_ASSIGN macro (Nitish Sakhawalkar) [#23092](https://github.com/nodejs/node/pull/23092) +* [[`68eaa8789a`](https://github.com/nodejs/node/commit/68eaa8789a)] - **(SEMVER-MINOR)** **util**: add order option to `.inspect()` (Ruben Bridgewater) [#22788](https://github.com/nodejs/node/pull/22788) +* [[`a2a1ebfecf`](https://github.com/nodejs/node/commit/a2a1ebfecf)] - **(SEMVER-MINOR)** **util**: use a shared symbol for util.inspect.custom (chocolateboy) [#20857](https://github.com/nodejs/node/pull/20857) +* [[`077e7e0ce7`](https://github.com/nodejs/node/commit/077e7e0ce7)] - **util**: fix indentationLvl when exceeding max call stack size (Ruben Bridgewater) [#22787](https://github.com/nodejs/node/pull/22787) +* [[`5a13e66088`](https://github.com/nodejs/node/commit/5a13e66088)] - **util**: improve inspect performance (Ruben Bridgewater) [#22503](https://github.com/nodejs/node/pull/22503) +* [[`92e0f38a65`](https://github.com/nodejs/node/commit/92e0f38a65)] - **util**: remove outdated TODO (Ruben Bridgewater) [#22503](https://github.com/nodejs/node/pull/22503) +* [[`3b895d1258`](https://github.com/nodejs/node/commit/3b895d1258)] - **win,msi**: display license notes before installing tools (João Reis) [#23044](https://github.com/nodejs/node/pull/23044) +* [[`cf284c80a9`](https://github.com/nodejs/node/commit/cf284c80a9)] - **win,msi**: install Boxstarter from elevated shell (João Reis) [#22988](https://github.com/nodejs/node/pull/22988) +* [[`2b7e18dec5`](https://github.com/nodejs/node/commit/2b7e18dec5)] - **win,msi**: highlight installation of 3rd-party tools (Tobias Nießen) [#23003](https://github.com/nodejs/node/pull/23003) +* [[`ebf36cd180`](https://github.com/nodejs/node/commit/ebf36cd180)] - **(SEMVER-MINOR)** **win,msi**: install tools for native modules (João Reis) [#22645](https://github.com/nodejs/node/pull/22645) +* [[`c34db7a9c2`](https://github.com/nodejs/node/commit/c34db7a9c2)] - **worker**: reduce `MessagePort` prototype to documented API (Anna Henningsen) [#23037](https://github.com/nodejs/node/pull/23037) +* [[`2e30a6897d`](https://github.com/nodejs/node/commit/2e30a6897d)] - **worker**: hide MessagePort init function behind symbol (Anna Henningsen) [#23037](https://github.com/nodejs/node/pull/23037) +* [[`b5889d0b84`](https://github.com/nodejs/node/commit/b5889d0b84)] - **worker**: only stop inspector if started (Anna Henningsen) [#22927](https://github.com/nodejs/node/pull/22927) +* [[`7639390032`](https://github.com/nodejs/node/commit/7639390032)] - **worker,coverage**: support V8 coverage generation (Anna Henningsen) [#22928](https://github.com/nodejs/node/pull/22928) +* [[`18cbde5ade`](https://github.com/nodejs/node/commit/18cbde5ade)] - **zlib**: simplify flushing mechanism (Anna Henningsen) [#23186](https://github.com/nodejs/node/pull/23186) +* [[`e749a28c55`](https://github.com/nodejs/node/commit/e749a28c55)] - **zlib**: use common owner symbol to access JS wrapper (Anna Henningsen) [#23189](https://github.com/nodejs/node/pull/23189) +* [[`a6b55c73b0`](https://github.com/nodejs/node/commit/a6b55c73b0)] - **zlib**: move, rename, document internal params() cb (Anna Henningsen) [#23187](https://github.com/nodejs/node/pull/23187) + ## 2018-09-20, Version 10.11.0 (Current), @targos diff --git a/doc/guides/contributing/pull-requests.md b/doc/guides/contributing/pull-requests.md index 783d77c8c5730e..b83624ac5febbb 100644 --- a/doc/guides/contributing/pull-requests.md +++ b/doc/guides/contributing/pull-requests.md @@ -496,12 +496,11 @@ There is a minimum waiting time which we try to respect for non-trivial changes, so that people who may have important input in such a distributed project are able to respond. -For non-trivial changes, Pull Requests must be left open for *at least* 48 -hours during the week, and 72 hours on a weekend. In most cases, when the -PR is relatively small and focused on a narrow set of changes, these periods -provide more than enough time to adequately review. Sometimes changes take far -longer to review, or need more specialized review from subject matter experts. -When in doubt, do not rush. +For non-trivial changes, Pull Requests must be left open for at least 48 hours. +In most cases, when the PR is relatively small and focused on a narrow set of +changes, that will provide more than enough time to adequately review. Sometimes +changes take far longer to review, or need more specialized review from subject +matter experts. When in doubt, do not rush. Trivial changes, typically limited to small formatting changes or fixes to documentation, may be landed within the minimum 48 hour window. @@ -643,12 +642,11 @@ If not, you can ask a Collaborator to start a CI run. ### Waiting Until the Pull Request Gets Landed -A Pull Request needs to stay open for at least 48 hours (72 hours on a -weekend) from when it is submitted, even after it gets approved and -passes the CI. This is to make sure that everyone has a chance to -weigh in. If the changes are trivial, collaborators may decide it -doesn't need to wait. A Pull Request may well take longer to be -merged in. All these precautions are important because Node.js is +A Pull Request needs to stay open for at least 48 hours from when it is +submitted, even after it gets approved and passes the CI. This is to make sure +that everyone has a chance to weigh in. If the changes are trivial, +collaborators may decide it doesn't need to wait. A Pull Request may well take +longer to be merged in. All these precautions are important because Node.js is widely used, so don't be discouraged! ### Check Out the Collaborator Guide diff --git a/doc/guides/diagnostic-tooling-support-tiers.md b/doc/guides/diagnostic-tooling-support-tiers.md index 6f5e9e1494832e..17c342fabe16bd 100644 --- a/doc/guides/diagnostic-tooling-support-tiers.md +++ b/doc/guides/diagnostic-tooling-support-tiers.md @@ -106,9 +106,13 @@ The tools are currently assigned to Tiers as follows: ## Tier 3 - | Tool Type | Tool/API Name | Regular Testing in Node.js CI | Integrated with Node.js | Target Tier | - |-----------|---------------------------|-------------------------------|-------------------------|-------------| - | | | | | | + | Tool Type | Tool/API Name | Regular Testing in Node.js CI | Integrated with Node.js | Target Tier | + |-----------|--------------------------------------|-------------------------------|-------------------------|-------------| + | Profiling | V8 CPU profiler | Partial (V8 Tests) | Yes | 1 | + | Profiling | --prof/--prof-process flags | Yes | Yes | 1 | + | Profiling | V8 CodeEventHandler API | Partial (V8 Tests) | Yes | 2 | + | Profiling | V8 --interpreted-frames-native-stack | Yes | Yes | 2 | + | Profiling | Linux perf | Yes | Partial | 2 | ## Tier 4 @@ -136,13 +140,9 @@ The tools are currently assigned to Tiers as follows: | Tracing | LTTng | No | Removed? | N/A | | Tracing | ETW | No | Partial | 3 | | Tracing | Systemtap | No | Partial | ? | - | Profiling | V8 CPU profiler (--prof) | No | Yes | 1 | - | Profiling | V8 CodeEventHandler API | No | Yes | ? | - | Profiling | V8 --interpreted-frames-native-stack | Yes | Yes | ? | - | Profiling | Linux perf | Yes | Partial | ? | | Profiling | DTrace | No | Partial | 3 | | Profiling | Windows Xperf | No | ? | ? | | Profiling | 0x | No | No | 4 | - | Profiling | node-clinic | No | No | to early | + | Profiling | node-clinic | No | No | too early | | F/P/T | appmetrics | No | No | ? | | M/T | eBPF tracing tool | No | No | ? | diff --git a/doc/guides/maintaining-V8.md b/doc/guides/maintaining-V8.md index 728fb1feb46530..4606b1897a7f40 100644 --- a/doc/guides/maintaining-V8.md +++ b/doc/guides/maintaining-V8.md @@ -232,8 +232,8 @@ to be cherry-picked in the Node.js repository and V8-CI must test the change. `tools/make-v8.sh` to reconstruct a git tree in the `deps/v8` directory to run V8 tests. -The [`update-v8`] tool can be used to simplify this task. Run -`update-v8 backport --sha=SHA` to cherry-pick a commit. +The [`git-node`] tool can be used to simplify this task. Run +`git node v8 backport ` to cherry-pick a commit. An example for workflow how to cherry-pick consider the bug [RegExp show inconsistent result with other browsers](https://crbug.com/v8/5199). @@ -341,8 +341,8 @@ curl -L https://github.com/v8/v8/compare/${V8_OLD_VERSION}...${V8_NEW_VERSION}.p V8 also keeps tags of the form *5.4-lkgr* which point to the *Last Known Good Revision* from the 5.4 branch that can be useful in the update process above. -The [`update-v8`](https://github.com/targos/update-v8) tool can be used to -simplify this task. Run `update-v8 minor` to apply a minor update. +The [`git-node`] tool can be used to simplify this task. Run `git node v8 minor` +to apply a minor update. ### Major Updates @@ -368,13 +368,13 @@ To audit for floating patches: git log --oneline deps/v8 ``` -To replace the copy of V8 in Node.js, use the [`update-v8`] tool. For example, -if you want to replace the copy of V8 in Node.js with the branch-head for V8 5.1 +To replace the copy of V8 in Node.js, use the [`git-node`] tool. For example, if +you want to replace the copy of V8 in Node.js with the branch-head for V8 5.1 branch: ```shell cd $NODE_DIR -update-v8 major --branch=5.1-lkgr +git node v8 major --branch=5.1-lkgr ``` This should be followed up with manual refloating of all relevant patches. @@ -422,7 +422,7 @@ as their support has ended. [NodeJS-Backport-Rejected-V8]: https://bugs.chromium.org/p/v8/issues/list?can=1&q=label%3ANodeJS-Backport-Rejected [NodeJS-Backport-Review-Chromium]: https://bugs.chromium.org/p/chromium/issues/list?can=1&q=label%3ANodeJS-Backport-Review [NodeJS-Backport-Review-V8]: https://bugs.chromium.org/p/v8/issues/list?can=1&q=label%3ANodeJS-Backport-Review -[`update-v8`]: https://github.com/targos/update-v8 +[`git-node`]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md#git-node-v8 [V8 CI]: https://ci.nodejs.org/job/node-test-commit-v8-linux/ [V8ActiveBranches]: https://build.chromium.org/p/client.v8.branches/console [V8Contributing]: https://github.com/v8/v8/wiki/Contributing diff --git a/doc/guides/maintaining-the-build-files.md b/doc/guides/maintaining-the-build-files.md index d6e4b0be249c24..f3f7bbf5e2c0fd 100644 --- a/doc/guides/maintaining-the-build-files.md +++ b/doc/guides/maintaining-the-build-files.md @@ -17,7 +17,7 @@ There are three main build files that may be directly run when building Node.js: - `vcbuild.bat`: A Windows Batch Script that locates build tools, provides a subset of the targets available in the [Makefile](#makefile), and a few targets of its own. For a detailed guide on this script, see - [vcbuild.bat](#vcbuild.bat). + [vcbuild.bat](#vcbuildbat). - `Makefile`: A Makefile that can be run with GNU Make. It provides a set of targets that build and test the Node.js binary, produce releases and documentation, and interact with the CI to run benchmarks or tests. For a @@ -41,7 +41,7 @@ need to update the configuration process. To see the help text, run `make help`. This file is not generated, it is maintained by humans. Note that this is not usually run on Windows, where -[vcbuild.bat](#vcbuild.bat) is used instead. +[vcbuild.bat](#vcbuildbat) is used instead. ### Options diff --git a/doc/node.1 b/doc/node.1 index 8e6616ad969ecc..ad46d58d1f39fd 100644 --- a/doc/node.1 +++ b/doc/node.1 @@ -75,6 +75,9 @@ the next argument will be used as a script filename. .It Fl -abort-on-uncaught-exception Aborting instead of exiting causes a core file to be generated for analysis. . +.It Fl -completion-bash +Print source-able bash completion script for Node.js. +. .It Fl -enable-fips Enable FIPS-compliant crypto at startup. Requires Node.js to be built with diff --git a/doc/onboarding.md b/doc/onboarding.md index 3a03edb17e8169..b08aabfff7d74e 100644 --- a/doc/onboarding.md +++ b/doc/onboarding.md @@ -99,7 +99,8 @@ onboarding session. * Please add the `author-ready` label for PRs where: * the CI has been started (not necessarily finished), * no outstanding review comments exist and - * at least one collaborator approved the PR. + * at least two Collaborators approved the PR (one Collaborator approval is + enough if the pull request has been open for more than 7 days). * See [Who to CC in the issue tracker][who-to-cc]. * This will come more naturally over time @@ -138,8 +139,7 @@ onboarding session. * There is a minimum waiting time which we try to respect for non-trivial changes so that people who may have important input in such a distributed project are able to respond. - * For non-trivial changes, leave the pull request open for at least 48 hours - (72 hours on a weekend). + * For non-trivial changes, leave the pull request open for at least 48 hours. * If a pull request is abandoned, check if they'd mind if you took it over (especially if it just has nits left). * Approving a change @@ -211,11 +211,12 @@ needs to be pointed out separately during the onboarding. -1` * Collaborators are in alphabetical order by GitHub username. * Optionally, include your personal pronouns. -* Label your pull request with the `doc` and `notable-change` labels. +* Label your pull request with the `doc`, `notable-change`, and `fast-track` + labels. * Run CI on the PR. Because the PR does not affect any code, use the `node-test-pull-request-lite-pipeline` CI task. -* After one or two approvals, land the PR (PRs of this type do not need to wait - for 48/72 hours to land). +* After two Collaborator approvals for the change and two Collaborator approvals + for fast-tracking, land the PR. * Be sure to add the `PR-URL: ` and appropriate `Reviewed-By:` metadata. * [`node-core-utils`][] automates the generation of metadata and the landing diff --git a/doc/releases.md b/doc/releases.md index 6f57a99667f1fe..edbe255528ff7c 100644 --- a/doc/releases.md +++ b/doc/releases.md @@ -455,8 +455,8 @@ Cherry-pick the release commit to `master`. After cherry-picking, edit previously on `master`. `NODE_VERSION_IS_RELEASE` should be `0`. **Do not** cherry-pick the "Working on vx.y.z" commit to `master`. -Run `make lint-md-build; make lint` before pushing to `master`, to make sure the -Changelog formatting passes the lint rules on `master`. +Run `make lint` before pushing to `master`, to make sure the Changelog +formatting passes the lint rules on `master`. ### 13. Promote and Sign the Release Builds diff --git a/doc/template.html b/doc/template.html index fdcf0d5821b56f..3317eadf3d47e7 100644 --- a/doc/template.html +++ b/doc/template.html @@ -54,6 +54,5 @@

Table of Contents

- diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index 2b9600f0fd6647..488d10a10b5bbd 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -42,7 +42,7 @@ const { emitExperimentalWarning } = require('internal/util'); // Lazy loaded to improve the startup performance. let StringDecoder; -let ReadableAsyncIterator; +let createReadableStreamAsyncIterator; util.inherits(Readable, Stream); @@ -990,9 +990,11 @@ Readable.prototype.wrap = function(stream) { Readable.prototype[Symbol.asyncIterator] = function() { emitExperimentalWarning('Readable[Symbol.asyncIterator]'); - if (ReadableAsyncIterator === undefined) - ReadableAsyncIterator = require('internal/streams/async_iterator'); - return new ReadableAsyncIterator(this); + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = + require('internal/streams/async_iterator'); + } + return createReadableStreamAsyncIterator(this); }; Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { diff --git a/lib/_tls_common.js b/lib/_tls_common.js index de96fa687dcc02..60995278a37857 100644 --- a/lib/_tls_common.js +++ b/lib/_tls_common.js @@ -69,16 +69,6 @@ function validateKeyCert(name, value) { exports.SecureContext = SecureContext; -function ecdhCurveWarning() { - if (ecdhCurveWarning.emitted) return; - process.emitWarning('{ ecdhCurve: false } is deprecated.', - 'DeprecationWarning', - 'DEP0083'); - ecdhCurveWarning.emitted = true; -} -ecdhCurveWarning.emitted = false; - - exports.createSecureContext = function createSecureContext(options, context) { if (!options) options = {}; @@ -154,8 +144,6 @@ exports.createSecureContext = function createSecureContext(options, context) { c.context.setECDHCurve(tls.DEFAULT_ECDH_CURVE); else if (options.ecdhCurve) c.context.setECDHCurve(options.ecdhCurve); - else - ecdhCurveWarning(); if (options.dhparam) { const warning = c.context.setDHParam(options.dhparam); diff --git a/lib/assert.js b/lib/assert.js index 69618862f2182c..4dbe3b2eca3d01 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -26,12 +26,14 @@ const { codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE } } = require('internal/errors'); -const { AssertionError, errorCache } = require('internal/assert'); +const { AssertionError } = require('internal/assert'); const { openSync, closeSync, readSync } = require('fs'); const { inspect, types: { isPromise, isRegExp } } = require('util'); const { EOL } = require('internal/constants'); const { NativeModule } = require('internal/bootstrap/loaders'); +const errorCache = new Map(); + let isDeepEqual; let isDeepStrictEqual; let parseExpressionAt; diff --git a/lib/console.js b/lib/console.js index 7fef9e0a7297e8..d72bdf5b27c146 100644 --- a/lib/console.js +++ b/lib/console.js @@ -341,7 +341,7 @@ Console.prototype.table = function(tabularData, properties) { if (properties !== undefined && !ArrayIsArray(properties)) throw new ERR_INVALID_ARG_TYPE('properties', 'Array', properties); - if (tabularData == null || typeof tabularData !== 'object') + if (tabularData === null || typeof tabularData !== 'object') return this.log(tabularData); if (cliTable === undefined) cliTable = require('internal/cli_table'); diff --git a/lib/crypto.js b/lib/crypto.js index 98261c88e52528..f23f1f9ae749e6 100644 --- a/lib/crypto.js +++ b/lib/crypto.js @@ -56,6 +56,10 @@ const { scrypt, scryptSync } = require('internal/crypto/scrypt'); +const { + generateKeyPair, + generateKeyPairSync +} = require('internal/crypto/keygen'); const { DiffieHellman, DiffieHellmanGroup, @@ -157,6 +161,8 @@ module.exports = exports = { getHashes, pbkdf2, pbkdf2Sync, + generateKeyPair, + generateKeyPairSync, privateDecrypt, privateEncrypt, prng: randomBytes, diff --git a/lib/fs.js b/lib/fs.js index 0031a2b085e6a5..9e74beee285f2d 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -54,7 +54,7 @@ const { const { FSReqWrap, statValues } = binding; const { ReadStream, WriteStream } = require('internal/fs/streams'); const internalFS = require('internal/fs/utils'); -const { getPathFromURL } = require('internal/url'); +const { toPathIfFileURL } = require('internal/url'); const internalUtil = require('internal/util'); const { copyObject, @@ -170,7 +170,7 @@ function access(path, mode, callback) { mode = F_OK; } - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); mode = mode | 0; @@ -180,7 +180,7 @@ function access(path, mode, callback) { } function accessSync(path, mode) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); if (mode === undefined) @@ -290,7 +290,7 @@ function readFile(path, options, callback) { return; } - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); binding.open(pathModule.toNamespacedPath(path), stringToFlags(options.flag || 'r'), @@ -402,7 +402,7 @@ function closeSync(fd) { } function open(path, flags, mode, callback) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const flagsNumber = stringToFlags(flags); if (arguments.length < 4) { @@ -424,7 +424,7 @@ function open(path, flags, mode, callback) { function openSync(path, flags, mode) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const flagsNumber = stringToFlags(flags); mode = validateMode(mode, 'mode', 0o666); @@ -569,9 +569,9 @@ function writeSync(fd, buffer, offset, length, position) { function rename(oldPath, newPath, callback) { callback = makeCallback(callback); - oldPath = getPathFromURL(oldPath); + oldPath = toPathIfFileURL(oldPath); validatePath(oldPath, 'oldPath'); - newPath = getPathFromURL(newPath); + newPath = toPathIfFileURL(newPath); validatePath(newPath, 'newPath'); const req = new FSReqWrap(); req.oncomplete = callback; @@ -581,9 +581,9 @@ function rename(oldPath, newPath, callback) { } function renameSync(oldPath, newPath) { - oldPath = getPathFromURL(oldPath); + oldPath = toPathIfFileURL(oldPath); validatePath(oldPath, 'oldPath'); - newPath = getPathFromURL(newPath); + newPath = toPathIfFileURL(newPath); validatePath(newPath, 'newPath'); const ctx = { path: oldPath, dest: newPath }; binding.rename(pathModule.toNamespacedPath(oldPath), @@ -662,7 +662,7 @@ function ftruncateSync(fd, len = 0) { function rmdir(path, callback) { callback = makeCallback(callback); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); req.oncomplete = callback; @@ -670,7 +670,7 @@ function rmdir(path, callback) { } function rmdirSync(path) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; binding.rmdir(pathModule.toNamespacedPath(path), undefined, ctx); @@ -705,36 +705,55 @@ function fsyncSync(fd) { handleErrorFromBinding(ctx); } -function mkdir(path, mode, callback) { - path = getPathFromURL(path); - validatePath(path); - - if (arguments.length < 3) { - callback = makeCallback(mode); - mode = 0o777; - } else { - callback = makeCallback(callback); - mode = validateMode(mode, 'mode', 0o777); +function mkdir(path, options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } else if (typeof options === 'number' || typeof options === 'string') { + options = { mode: options }; } + const { + recursive = false, + mode = 0o777 + } = options || {}; + callback = makeCallback(callback); + path = toPathIfFileURL(path); + + validatePath(path); + if (typeof recursive !== 'boolean') + throw new ERR_INVALID_ARG_TYPE('recursive', 'boolean', recursive); const req = new FSReqWrap(); req.oncomplete = callback; - binding.mkdir(pathModule.toNamespacedPath(path), mode, req); + binding.mkdir(pathModule.toNamespacedPath(path), + validateMode(mode, 'mode', 0o777), recursive, req); } -function mkdirSync(path, mode) { - path = getPathFromURL(path); +function mkdirSync(path, options) { + if (typeof options === 'number' || typeof options === 'string') { + options = { mode: options }; + } + path = toPathIfFileURL(path); + const { + recursive = false, + mode = 0o777 + } = options || {}; + validatePath(path); - mode = validateMode(mode, 'mode', 0o777); + if (typeof recursive !== 'boolean') + throw new ERR_INVALID_ARG_TYPE('recursive', 'boolean', recursive); + const ctx = { path }; - binding.mkdir(pathModule.toNamespacedPath(path), mode, undefined, ctx); + binding.mkdir(pathModule.toNamespacedPath(path), + validateMode(mode, 'mode', 0o777), recursive, undefined, + ctx); handleErrorFromBinding(ctx); } function readdir(path, options, callback) { callback = makeCallback(typeof options === 'function' ? options : callback); options = getOptions(options, {}); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); @@ -755,7 +774,7 @@ function readdir(path, options, callback) { function readdirSync(path, options) { options = getOptions(options, {}); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; const result = binding.readdir(pathModule.toNamespacedPath(path), @@ -782,7 +801,7 @@ function lstat(path, options, callback) { options = {}; } callback = makeStatsCallback(callback); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(options.bigint); req.oncomplete = callback; @@ -795,7 +814,7 @@ function stat(path, options, callback) { options = {}; } callback = makeStatsCallback(callback); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(options.bigint); req.oncomplete = callback; @@ -811,7 +830,7 @@ function fstatSync(fd, options = {}) { } function lstatSync(path, options = {}) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; const stats = binding.lstat(pathModule.toNamespacedPath(path), @@ -821,7 +840,7 @@ function lstatSync(path, options = {}) { } function statSync(path, options = {}) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; const stats = binding.stat(pathModule.toNamespacedPath(path), @@ -833,7 +852,7 @@ function statSync(path, options = {}) { function readlink(path, options, callback) { callback = makeCallback(typeof options === 'function' ? options : callback); options = getOptions(options, {}); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path, 'oldPath'); const req = new FSReqWrap(); req.oncomplete = callback; @@ -842,7 +861,7 @@ function readlink(path, options, callback) { function readlinkSync(path, options) { options = getOptions(options, {}); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path, 'oldPath'); const ctx = { path }; const result = binding.readlink(pathModule.toNamespacedPath(path), @@ -855,8 +874,8 @@ function symlink(target, path, type_, callback_) { const type = (typeof type_ === 'string' ? type_ : null); const callback = makeCallback(arguments[arguments.length - 1]); - target = getPathFromURL(target); - path = getPathFromURL(path); + target = toPathIfFileURL(target); + path = toPathIfFileURL(path); validatePath(target, 'target'); validatePath(path); @@ -870,8 +889,8 @@ function symlink(target, path, type_, callback_) { function symlinkSync(target, path, type) { type = (typeof type === 'string' ? type : null); - target = getPathFromURL(target); - path = getPathFromURL(path); + target = toPathIfFileURL(target); + path = toPathIfFileURL(path); validatePath(target, 'target'); validatePath(path); const flags = stringToSymlinkType(type); @@ -886,8 +905,8 @@ function symlinkSync(target, path, type) { function link(existingPath, newPath, callback) { callback = makeCallback(callback); - existingPath = getPathFromURL(existingPath); - newPath = getPathFromURL(newPath); + existingPath = toPathIfFileURL(existingPath); + newPath = toPathIfFileURL(newPath); validatePath(existingPath, 'existingPath'); validatePath(newPath, 'newPath'); @@ -900,8 +919,8 @@ function link(existingPath, newPath, callback) { } function linkSync(existingPath, newPath) { - existingPath = getPathFromURL(existingPath); - newPath = getPathFromURL(newPath); + existingPath = toPathIfFileURL(existingPath); + newPath = toPathIfFileURL(newPath); validatePath(existingPath, 'existingPath'); validatePath(newPath, 'newPath'); @@ -915,7 +934,7 @@ function linkSync(existingPath, newPath) { function unlink(path, callback) { callback = makeCallback(callback); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); req.oncomplete = callback; @@ -923,7 +942,7 @@ function unlink(path, callback) { } function unlinkSync(path) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; binding.unlink(pathModule.toNamespacedPath(path), undefined, ctx); @@ -981,7 +1000,7 @@ function lchmodSync(path, mode) { function chmod(path, mode, callback) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); mode = validateMode(mode, 'mode'); callback = makeCallback(callback); @@ -992,7 +1011,7 @@ function chmod(path, mode, callback) { } function chmodSync(path, mode) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); mode = validateMode(mode, 'mode'); @@ -1003,7 +1022,7 @@ function chmodSync(path, mode) { function lchown(path, uid, gid, callback) { callback = makeCallback(callback); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); @@ -1013,7 +1032,7 @@ function lchown(path, uid, gid, callback) { } function lchownSync(path, uid, gid) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); @@ -1044,7 +1063,7 @@ function fchownSync(fd, uid, gid) { function chown(path, uid, gid, callback) { callback = makeCallback(callback); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); @@ -1055,7 +1074,7 @@ function chown(path, uid, gid, callback) { } function chownSync(path, uid, gid) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); @@ -1066,7 +1085,7 @@ function chownSync(path, uid, gid) { function utimes(path, atime, mtime, callback) { callback = makeCallback(callback); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); @@ -1078,7 +1097,7 @@ function utimes(path, atime, mtime, callback) { } function utimesSync(path, atime, mtime) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; binding.utimes(pathModule.toNamespacedPath(path), @@ -1245,7 +1264,7 @@ function watch(filename, options, listener) { const statWatchers = new Map(); function watchFile(filename, options, listener) { - filename = getPathFromURL(filename); + filename = toPathIfFileURL(filename); validatePath(filename); filename = pathModule.resolve(filename); let stat; @@ -1284,7 +1303,7 @@ function watchFile(filename, options, listener) { } function unwatchFile(filename, listener) { - filename = getPathFromURL(filename); + filename = toPathIfFileURL(filename); validatePath(filename); filename = pathModule.resolve(filename); const stat = statWatchers.get(filename); @@ -1356,7 +1375,7 @@ function realpathSync(p, options) { options = emptyObj; else options = getOptions(options, emptyObj); - p = getPathFromURL(p); + p = toPathIfFileURL(p); if (typeof p !== 'string') { p += ''; } @@ -1488,7 +1507,7 @@ function realpathSync(p, options) { realpathSync.native = function(path, options) { options = getOptions(options, {}); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const ctx = { path }; const result = binding.realpath(path, options.encoding, undefined, ctx); @@ -1503,7 +1522,7 @@ function realpath(p, options, callback) { options = emptyObj; else options = getOptions(options, emptyObj); - p = getPathFromURL(p); + p = toPathIfFileURL(p); if (typeof p !== 'string') { p += ''; } @@ -1630,7 +1649,7 @@ function realpath(p, options, callback) { realpath.native = function(path, options, callback) { callback = makeCallback(callback || options); options = getOptions(options, {}); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const req = new FSReqWrap(); req.oncomplete = callback; @@ -1673,8 +1692,8 @@ function copyFile(src, dest, flags, callback) { throw new ERR_INVALID_CALLBACK(); } - src = getPathFromURL(src); - dest = getPathFromURL(dest); + src = toPathIfFileURL(src); + dest = toPathIfFileURL(dest); validatePath(src, 'src'); validatePath(dest, 'dest'); @@ -1688,8 +1707,8 @@ function copyFile(src, dest, flags, callback) { function copyFileSync(src, dest, flags) { - src = getPathFromURL(src); - dest = getPathFromURL(dest); + src = toPathIfFileURL(src); + dest = toPathIfFileURL(dest); validatePath(src, 'src'); validatePath(dest, 'dest'); diff --git a/lib/inspector.js b/lib/inspector.js index 8827158757e126..6988eccf82c9ef 100644 --- a/lib/inspector.js +++ b/lib/inspector.js @@ -14,7 +14,7 @@ const util = require('util'); const { Connection, open, url } = process.binding('inspector'); const { originalConsole } = require('internal/process/per_thread'); -if (!Connection || !require('internal/worker').isMainThread) +if (!Connection) throw new ERR_INSPECTOR_NOT_AVAILABLE(); const connectionSymbol = Symbol('connectionProperty'); diff --git a/lib/internal/assert.js b/lib/internal/assert.js index 74f7e3f7c053c4..3b19f2c39d9528 100644 --- a/lib/internal/assert.js +++ b/lib/internal/assert.js @@ -43,7 +43,8 @@ function inspectValue(val) { // comparison. breakLength: Infinity, // Assert does not detect proxies currently. - showProxy: false + showProxy: false, + sorted: true } ).split('\n'); } @@ -270,6 +271,5 @@ class AssertionError extends Error { } module.exports = { - AssertionError, - errorCache: new Map() + AssertionError }; diff --git a/lib/internal/bash_completion.js b/lib/internal/bash_completion.js new file mode 100644 index 00000000000000..7d2ffbe901d285 --- /dev/null +++ b/lib/internal/bash_completion.js @@ -0,0 +1,25 @@ +'use strict'; +const { internalBinding } = require('internal/bootstrap/loaders'); +const { getOptions } = internalBinding('options'); + +function print(stream) { + const { options, aliases } = getOptions(); + const all_opts = [...options.keys(), ...aliases.keys()]; + + stream.write(`_node_complete() { + local cur_word options + cur_word="\${COMP_WORDS[COMP_CWORD]}" + if [[ "\${cur_word}" == -* ]] ; then + COMPREPLY=( $(compgen -W '${all_opts.join(' ')}' -- "\${cur_word}") ) + return 0 + else + COMPREPLY=( $(compgen -f "\${cur_word}") ) + return 0 + fi +} +complete -F _node_complete node node_g`); +} + +module.exports = { + print +}; diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js index daa7fd5cbc0b79..350928461a938d 100644 --- a/lib/internal/bootstrap/node.js +++ b/lib/internal/bootstrap/node.js @@ -120,18 +120,24 @@ NativeModule.require('internal/inspector_async_hook').setup(); } - if (internalBinding('options').getOptions('--help')) { + const options = internalBinding('options'); + if (options.getOptions('--help')) { NativeModule.require('internal/print_help').print(process.stdout); return; } + if (options.getOptions('--completion-bash')) { + NativeModule.require('internal/bash_completion').print(process.stdout); + return; + } + if (isMainThread) { mainThreadSetup.setupChildProcessIpcChannel(); } const browserGlobals = !process._noBrowserGlobals; if (browserGlobals) { - // we are setting this here to foward it to the inspector later + // we are setting this here to forward it to the inspector later perThreadSetup.originalConsole = global.console; setupGlobalTimeouts(); setupGlobalConsole(); @@ -610,7 +616,7 @@ // This builds process.allowedNodeEnvironmentFlags // from data in the config binding - const replaceDashesRegex = /-/g; + const replaceUnderscoresRegex = /_/g; const leadingDashesRegex = /^--?/; const trailingValuesRegex = /=.*$/; @@ -622,20 +628,14 @@ const get = () => { const { getOptions, - types: { kV8Option }, envSettings: { kAllowedInEnvironment } } = internalBinding('options'); const { options, aliases } = getOptions(); - const allowedV8EnvironmentFlags = []; const allowedNodeEnvironmentFlags = []; for (const [name, info] of options) { if (info.envVarSettings === kAllowedInEnvironment) { - if (info.type === kV8Option) { - allowedV8EnvironmentFlags.push(name); - } else { - allowedNodeEnvironmentFlags.push(name); - } + allowedNodeEnvironmentFlags.push(name); } } @@ -669,11 +669,9 @@ // process.allowedNodeEnvironmentFlags.has() which lack leading dashes. // Avoid interference w/ user code by flattening `Set.prototype` into // each object. - const [nodeFlags, v8Flags] = [ - allowedNodeEnvironmentFlags, allowedV8EnvironmentFlags - ].map((flags) => Object.defineProperties( - new Set(flags.map(trimLeadingDashes)), - Object.getOwnPropertyDescriptors(Set.prototype)) + const nodeFlags = Object.defineProperties( + new Set(allowedNodeEnvironmentFlags.map(trimLeadingDashes)), + Object.getOwnPropertyDescriptors(Set.prototype) ); class NodeEnvironmentFlagsSet extends Set { @@ -697,29 +695,18 @@ has(key) { // This will return `true` based on various possible // permutations of a flag, including present/missing leading - // dash(es) and/or underscores-for-dashes in the case of V8-specific - // flags. Strips any values after `=`, inclusive. + // dash(es) and/or underscores-for-dashes. + // Strips any values after `=`, inclusive. // TODO(addaleax): It might be more flexible to run the option parser // on a dummy option set and see whether it rejects the argument or // not. if (typeof key === 'string') { - key = replace(key, trailingValuesRegex, ''); + key = replace(key, replaceUnderscoresRegex, '-'); if (test(leadingDashesRegex, key)) { - return has(this, key) || - has(v8Flags, - replace( - replace( - key, - leadingDashesRegex, - '' - ), - replaceDashesRegex, - '_' - ) - ); + key = replace(key, trailingValuesRegex, ''); + return has(this, key); } - return has(nodeFlags, key) || - has(v8Flags, replace(key, replaceDashesRegex, '_')); + return has(nodeFlags, key); } return false; } @@ -730,7 +717,7 @@ return process.allowedNodeEnvironmentFlags = Object.freeze( new NodeEnvironmentFlagsSet( - allowedNodeEnvironmentFlags.concat(allowedV8EnvironmentFlags) + allowedNodeEnvironmentFlags )); }; diff --git a/lib/internal/cluster/child.js b/lib/internal/cluster/child.js index 39e891214ff787..13a22b0186fc28 100644 --- a/lib/internal/cluster/child.js +++ b/lib/internal/cluster/child.js @@ -7,8 +7,8 @@ const { owner_symbol } = require('internal/async_hooks').symbols; const Worker = require('internal/cluster/worker'); const { internal, sendHelper } = require('internal/cluster/utils'); const cluster = new EventEmitter(); -const handles = {}; -const indexes = {}; +const handles = new Map(); +const indexes = new Map(); const noop = () => {}; module.exports = cluster; @@ -62,14 +62,18 @@ cluster._getServer = function(obj, options, cb) { options.addressType, options.fd ].join(':'); - if (indexes[indexesKey] === undefined) - indexes[indexesKey] = 0; + let index = indexes.get(indexesKey); + + if (index === undefined) + index = 0; else - indexes[indexesKey]++; + index++; + + indexes.set(indexesKey, index); const message = util._extend({ act: 'queryServer', - index: indexes[indexesKey], + index, data: null }, options); @@ -107,12 +111,12 @@ function shared(message, handle, indexesKey, cb) { handle.close = function() { send({ act: 'close', key }); - delete handles[key]; - delete indexes[indexesKey]; + handles.delete(key); + indexes.delete(indexesKey); return close.apply(this, arguments); }.bind(handle); - assert(handles[key] === undefined); - handles[key] = handle; + assert(handles.has(key) === false); + handles.set(key, handle); cb(message.errno, handle); } @@ -140,8 +144,8 @@ function rr(message, indexesKey, cb) { return; send({ act: 'close', key }); - delete handles[key]; - delete indexes[indexesKey]; + handles.delete(key); + indexes.delete(indexesKey); key = undefined; } @@ -162,15 +166,15 @@ function rr(message, indexesKey, cb) { handle.getsockname = getsockname; // TCP handles only. } - assert(handles[key] === undefined); - handles[key] = handle; + assert(handles.has(key) === false); + handles.set(key, handle); cb(0, handle); } // Round-robin connection. function onconnection(message, handle) { const key = message.key; - const server = handles[key]; + const server = handles.get(key); const accepted = server !== undefined; send({ ack: message.seq, accepted }); @@ -203,17 +207,16 @@ function _disconnect(masterInitiated) { } } - for (var key in handles) { - const handle = handles[key]; - delete handles[key]; + handles.forEach((handle) => { waitingCount++; if (handle[owner_symbol]) handle[owner_symbol].close(checkWaitingCount); else handle.close(checkWaitingCount); - } + }); + handles.clear(); checkWaitingCount(); } diff --git a/lib/internal/cluster/master.js b/lib/internal/cluster/master.js index 457b3579b12c1c..60083c6393e781 100644 --- a/lib/internal/cluster/master.js +++ b/lib/internal/cluster/master.js @@ -7,7 +7,7 @@ const EventEmitter = require('events'); const RoundRobinHandle = require('internal/cluster/round_robin_handle'); const SharedHandle = require('internal/cluster/shared_handle'); const Worker = require('internal/cluster/worker'); -const { internal, sendHelper, handles } = require('internal/cluster/utils'); +const { internal, sendHelper } = require('internal/cluster/utils'); const { ERR_SOCKET_BAD_PORT } = require('internal/errors').codes; const keys = Object.keys; const cluster = new EventEmitter(); @@ -19,6 +19,7 @@ const [ minPort, maxPort ] = [ 1024, 65535 ]; module.exports = cluster; +const handles = new Map(); cluster.isWorker = false; cluster.isMaster = true; cluster.Worker = Worker; @@ -148,7 +149,7 @@ function removeWorker(worker) { delete cluster.workers[worker.id]; if (keys(cluster.workers).length === 0) { - assert(keys(handles).length === 0, 'Resource leak detected.'); + assert(handles.size === 0, 'Resource leak detected.'); intercom.emit('disconnect'); } } @@ -156,12 +157,10 @@ function removeWorker(worker) { function removeHandlesForWorker(worker) { assert(worker); - for (var key in handles) { - const handle = handles[key]; - + handles.forEach((handle, key) => { if (handle.remove(worker)) - delete handles[key]; - } + handles.delete(key); + }); } cluster.fork = function(env) { @@ -277,7 +276,7 @@ function queryServer(worker, message) { const key = `${message.address}:${message.port}:${message.addressType}:` + `${message.fd}:${message.index}`; - var handle = handles[key]; + var handle = handles.get(key); if (handle === undefined) { let address = message.address; @@ -302,12 +301,13 @@ function queryServer(worker, message) { constructor = SharedHandle; } - handles[key] = handle = new constructor(key, - address, - message.port, - message.addressType, - message.fd, - message.flags); + handle = new constructor(key, + address, + message.port, + message.addressType, + message.fd, + message.flags); + handles.set(key, handle); } if (!handle.data) @@ -319,11 +319,11 @@ function queryServer(worker, message) { errno: errno, key: key, ack: message.seq, - data: handles[key].data + data: handles.get(key).data }, reply); if (errno) - delete handles[key]; // Gives other workers a chance to retry. + handles.delete(key); // Gives other workers a chance to retry. send(worker, reply, handle); }); @@ -346,10 +346,10 @@ function listening(worker, message) { // removed by a prior call to removeHandlesForWorker() so guard against that. function close(worker, message) { const key = message.key; - const handle = handles[key]; + const handle = handles.get(key); if (handle && handle.remove(worker)) - delete handles[key]; + handles.delete(key); } function send(worker, message, handle, cb) { diff --git a/lib/internal/cluster/round_robin_handle.js b/lib/internal/cluster/round_robin_handle.js index b2dff017e8b6ee..9c2b448c7709be 100644 --- a/lib/internal/cluster/round_robin_handle.js +++ b/lib/internal/cluster/round_robin_handle.js @@ -2,14 +2,13 @@ const assert = require('assert'); const net = require('net'); const { sendHelper } = require('internal/cluster/utils'); -const getOwnPropertyNames = Object.getOwnPropertyNames; const uv = process.binding('uv'); module.exports = RoundRobinHandle; function RoundRobinHandle(key, address, port, addressType, fd) { this.key = key; - this.all = {}; + this.all = new Map(); this.free = []; this.handles = []; this.handle = null; @@ -31,8 +30,8 @@ function RoundRobinHandle(key, address, port, addressType, fd) { } RoundRobinHandle.prototype.add = function(worker, send) { - assert(worker.id in this.all === false); - this.all[worker.id] = worker; + assert(this.all.has(worker.id) === false); + this.all.set(worker.id, worker); const done = () => { if (this.handle.getsockname) { @@ -61,16 +60,17 @@ RoundRobinHandle.prototype.add = function(worker, send) { }; RoundRobinHandle.prototype.remove = function(worker) { - if (worker.id in this.all === false) + const existed = this.all.delete(worker.id); + + if (!existed) return false; - delete this.all[worker.id]; const index = this.free.indexOf(worker); if (index !== -1) this.free.splice(index, 1); - if (getOwnPropertyNames(this.all).length !== 0) + if (this.all.size !== 0) return false; for (var handle; handle = this.handles.shift(); handle.close()) @@ -90,7 +90,7 @@ RoundRobinHandle.prototype.distribute = function(err, handle) { }; RoundRobinHandle.prototype.handoff = function(worker) { - if (worker.id in this.all === false) { + if (this.all.has(worker.id) === false) { return; // Worker is closing (or has closed) the server. } diff --git a/lib/internal/cluster/utils.js b/lib/internal/cluster/utils.js index ba72ff90945d3c..3fc5e408b76a5a 100644 --- a/lib/internal/cluster/utils.js +++ b/lib/internal/cluster/utils.js @@ -3,11 +3,10 @@ const util = require('util'); module.exports = { sendHelper, - internal, - handles: {} // Used in tests. + internal }; -const callbacks = {}; +const callbacks = new Map(); var seq = 0; function sendHelper(proc, message, handle, cb) { @@ -18,7 +17,7 @@ function sendHelper(proc, message, handle, cb) { message = util._extend({ cmd: 'NODE_CLUSTER' }, message); if (typeof cb === 'function') - callbacks[seq] = cb; + callbacks.set(seq, cb); message.seq = seq; seq += 1; @@ -34,9 +33,13 @@ function internal(worker, cb) { var fn = cb; - if (message.ack !== undefined && callbacks[message.ack] !== undefined) { - fn = callbacks[message.ack]; - delete callbacks[message.ack]; + if (message.ack !== undefined) { + const callback = callbacks.get(message.ack); + + if (callback !== undefined) { + fn = callback; + callbacks.delete(message.ack); + } } fn.apply(worker, arguments); diff --git a/lib/internal/crypto/cipher.js b/lib/internal/crypto/cipher.js index 52870f8d6bb3ca..d5f6700fa270c1 100644 --- a/lib/internal/crypto/cipher.js +++ b/lib/internal/crypto/cipher.js @@ -83,15 +83,19 @@ function createCipherBase(cipher, credential, options, decipher, iv) { LazyTransform.call(this, options); } +function invalidArrayBufferView(name, value) { + return new ERR_INVALID_ARG_TYPE( + name, + ['string', 'Buffer', 'TypedArray', 'DataView'], + value + ); +} + function createCipher(cipher, password, options, decipher) { validateString(cipher, 'cipher'); password = toBuf(password); if (!isArrayBufferView(password)) { - throw new ERR_INVALID_ARG_TYPE( - 'password', - ['string', 'Buffer', 'TypedArray', 'DataView'], - password - ); + throw invalidArrayBufferView('password', password); } createCipherBase.call(this, cipher, password, options, decipher); @@ -101,20 +105,12 @@ function createCipherWithIV(cipher, key, options, decipher, iv) { validateString(cipher, 'cipher'); key = toBuf(key); if (!isArrayBufferView(key)) { - throw new ERR_INVALID_ARG_TYPE( - 'key', - ['string', 'Buffer', 'TypedArray', 'DataView'], - key - ); + throw invalidArrayBufferView('key', key); } iv = toBuf(iv); if (iv !== null && !isArrayBufferView(iv)) { - throw new ERR_INVALID_ARG_TYPE( - 'iv', - ['string', 'Buffer', 'TypedArray', 'DataView'], - iv - ); + throw invalidArrayBufferView('iv', iv); } createCipherBase.call(this, cipher, key, options, decipher, iv); } @@ -149,11 +145,7 @@ Cipher.prototype.update = function update(data, inputEncoding, outputEncoding) { outputEncoding = outputEncoding || encoding; if (typeof data !== 'string' && !isArrayBufferView(data)) { - throw new ERR_INVALID_ARG_TYPE( - 'data', - ['string', 'Buffer', 'TypedArray', 'DataView'], - data - ); + throw invalidArrayBufferView('data', data); } const ret = this._handle.update(data, inputEncoding); diff --git a/lib/internal/crypto/keygen.js b/lib/internal/crypto/keygen.js new file mode 100644 index 00000000000000..63badf22e6963c --- /dev/null +++ b/lib/internal/crypto/keygen.js @@ -0,0 +1,245 @@ +'use strict'; + +const { AsyncWrap, Providers } = process.binding('async_wrap'); +const { + generateKeyPairRSA, + generateKeyPairDSA, + generateKeyPairEC, + OPENSSL_EC_NAMED_CURVE, + OPENSSL_EC_EXPLICIT_CURVE, + PK_ENCODING_PKCS1, + PK_ENCODING_PKCS8, + PK_ENCODING_SPKI, + PK_ENCODING_SEC1, + PK_FORMAT_DER, + PK_FORMAT_PEM +} = process.binding('crypto'); +const { customPromisifyArgs } = require('internal/util'); +const { isUint32 } = require('internal/validators'); +const { + ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS, + ERR_INVALID_ARG_TYPE, + ERR_INVALID_ARG_VALUE, + ERR_INVALID_CALLBACK, + ERR_INVALID_OPT_VALUE +} = require('internal/errors').codes; + +function generateKeyPair(type, options, callback) { + if (typeof options === 'function') { + callback = options; + options = undefined; + } + + const impl = check(type, options); + + if (typeof callback !== 'function') + throw new ERR_INVALID_CALLBACK(); + + const wrap = new AsyncWrap(Providers.KEYPAIRGENREQUEST); + wrap.ondone = (ex, pubkey, privkey) => { + if (ex) return callback.call(wrap, ex); + callback.call(wrap, null, pubkey, privkey); + }; + + handleError(impl, wrap); +} + +Object.defineProperty(generateKeyPair, customPromisifyArgs, { + value: ['publicKey', 'privateKey'], + enumerable: false +}); + +function generateKeyPairSync(type, options) { + const impl = check(type, options); + return handleError(impl); +} + +function handleError(impl, wrap) { + const ret = impl(wrap); + if (ret === undefined) + return; // async + + const [err, publicKey, privateKey] = ret; + if (err !== undefined) + throw err; + + return { publicKey, privateKey }; +} + +function parseKeyEncoding(keyType, options) { + const { publicKeyEncoding, privateKeyEncoding } = options; + + if (publicKeyEncoding == null || typeof publicKeyEncoding !== 'object') + throw new ERR_INVALID_OPT_VALUE('publicKeyEncoding', publicKeyEncoding); + + const { format: strPublicFormat, type: strPublicType } = publicKeyEncoding; + + let publicType; + if (strPublicType === 'pkcs1') { + if (keyType !== 'rsa') { + throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS( + strPublicType, 'can only be used for RSA keys'); + } + publicType = PK_ENCODING_PKCS1; + } else if (strPublicType === 'spki') { + publicType = PK_ENCODING_SPKI; + } else { + throw new ERR_INVALID_OPT_VALUE('publicKeyEncoding.type', strPublicType); + } + + let publicFormat; + if (strPublicFormat === 'der') { + publicFormat = PK_FORMAT_DER; + } else if (strPublicFormat === 'pem') { + publicFormat = PK_FORMAT_PEM; + } else { + throw new ERR_INVALID_OPT_VALUE('publicKeyEncoding.format', + strPublicFormat); + } + + if (privateKeyEncoding == null || typeof privateKeyEncoding !== 'object') + throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding', privateKeyEncoding); + + const { + cipher, + passphrase, + format: strPrivateFormat, + type: strPrivateType + } = privateKeyEncoding; + + let privateType; + if (strPrivateType === 'pkcs1') { + if (keyType !== 'rsa') { + throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS( + strPrivateType, 'can only be used for RSA keys'); + } + privateType = PK_ENCODING_PKCS1; + } else if (strPrivateType === 'pkcs8') { + privateType = PK_ENCODING_PKCS8; + } else if (strPrivateType === 'sec1') { + if (keyType !== 'ec') { + throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS( + strPrivateType, 'can only be used for EC keys'); + } + privateType = PK_ENCODING_SEC1; + } else { + throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding.type', strPrivateType); + } + + let privateFormat; + if (strPrivateFormat === 'der') { + privateFormat = PK_FORMAT_DER; + } else if (strPrivateFormat === 'pem') { + privateFormat = PK_FORMAT_PEM; + } else { + throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding.format', + strPrivateFormat); + } + + if (cipher != null) { + if (typeof cipher !== 'string') + throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding.cipher', cipher); + if (privateFormat === PK_FORMAT_DER && + (privateType === PK_ENCODING_PKCS1 || + privateType === PK_ENCODING_SEC1)) { + throw new ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS( + strPrivateType, 'does not support encryption'); + } + if (typeof passphrase !== 'string') { + throw new ERR_INVALID_OPT_VALUE('privateKeyEncoding.passphrase', + passphrase); + } + } + + return { + cipher, passphrase, publicType, publicFormat, privateType, privateFormat + }; +} + +function check(type, options, callback) { + if (typeof type !== 'string') + throw new ERR_INVALID_ARG_TYPE('type', 'string', type); + if (options == null || typeof options !== 'object') + throw new ERR_INVALID_ARG_TYPE('options', 'object', options); + + // These will be set after parsing the type and type-specific options to make + // the order a bit more intuitive. + let cipher, passphrase, publicType, publicFormat, privateType, privateFormat; + + let impl; + switch (type) { + case 'rsa': + { + const { modulusLength } = options; + if (!isUint32(modulusLength)) + throw new ERR_INVALID_OPT_VALUE('modulusLength', modulusLength); + + let { publicExponent } = options; + if (publicExponent == null) { + publicExponent = 0x10001; + } else if (!isUint32(publicExponent)) { + throw new ERR_INVALID_OPT_VALUE('publicExponent', publicExponent); + } + + impl = (wrap) => generateKeyPairRSA(modulusLength, publicExponent, + publicType, publicFormat, + privateType, privateFormat, + cipher, passphrase, wrap); + } + break; + case 'dsa': + { + const { modulusLength } = options; + if (!isUint32(modulusLength)) + throw new ERR_INVALID_OPT_VALUE('modulusLength', modulusLength); + + let { divisorLength } = options; + if (divisorLength == null) { + divisorLength = -1; + } else if (!isUint32(divisorLength)) { + throw new ERR_INVALID_OPT_VALUE('divisorLength', divisorLength); + } + + impl = (wrap) => generateKeyPairDSA(modulusLength, divisorLength, + publicType, publicFormat, + privateType, privateFormat, + cipher, passphrase, wrap); + } + break; + case 'ec': + { + const { namedCurve } = options; + if (typeof namedCurve !== 'string') + throw new ERR_INVALID_OPT_VALUE('namedCurve', namedCurve); + let { paramEncoding } = options; + if (paramEncoding == null || paramEncoding === 'named') + paramEncoding = OPENSSL_EC_NAMED_CURVE; + else if (paramEncoding === 'explicit') + paramEncoding = OPENSSL_EC_EXPLICIT_CURVE; + else + throw new ERR_INVALID_OPT_VALUE('paramEncoding', paramEncoding); + + impl = (wrap) => generateKeyPairEC(namedCurve, paramEncoding, + publicType, publicFormat, + privateType, privateFormat, + cipher, passphrase, wrap); + } + break; + default: + throw new ERR_INVALID_ARG_VALUE('type', type, + "must be one of 'rsa', 'dsa', 'ec'"); + } + + ({ + cipher, + passphrase, + publicType, + publicFormat, + privateType, + privateFormat + } = parseKeyEncoding(type, options)); + + return impl; +} + +module.exports = { generateKeyPair, generateKeyPairSync }; diff --git a/lib/internal/domexception.js b/lib/internal/domexception.js index fe371e099eb17f..586d954dc4912b 100644 --- a/lib/internal/domexception.js +++ b/lib/internal/domexception.js @@ -43,6 +43,13 @@ class DOMException extends Error { } } +Object.defineProperties(DOMException.prototype, { + [Symbol.toStringTag]: { configurable: true, value: 'DOMException' }, + name: { enumerable: true, configurable: true }, + message: { enumerable: true, configurable: true }, + code: { enumerable: true, configurable: true } +}); + for (const [name, codeName, value] of [ ['IndexSizeError', 'INDEX_SIZE_ERR', 1], ['DOMStringSizeError', 'DOMSTRING_SIZE_ERR', 2], diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 8f438d343a10d6..656c7e2c6c5a5b 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -249,7 +249,7 @@ function getMessage(key, args) { */ function uvException(ctx) { const [ code, uvmsg ] = errmap.get(ctx.errno); - let message = `${code}: ${uvmsg}, ${ctx.syscall}`; + let message = `${code}: ${ctx.message || uvmsg}, ${ctx.syscall}`; let path; let dest; @@ -511,6 +511,8 @@ E('ERR_CRYPTO_HASH_DIGEST_NO_UTF16', 'hash.digest() does not support UTF-16', Error); E('ERR_CRYPTO_HASH_FINALIZED', 'Digest already called', Error); E('ERR_CRYPTO_HASH_UPDATE_FAILED', 'Hash update failed', Error); +E('ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS', 'The selected key encoding %s %s.', + Error); E('ERR_CRYPTO_INVALID_DIGEST', 'Invalid digest: %s', TypeError); E('ERR_CRYPTO_INVALID_STATE', 'Invalid state for operation %s', Error); E('ERR_CRYPTO_PBKDF2_ERROR', 'PBKDF2 error', Error); @@ -567,6 +569,8 @@ E('ERR_HTTP2_INVALID_HEADER_VALUE', 'Invalid value "%s" for header "%s"', TypeError); E('ERR_HTTP2_INVALID_INFO_STATUS', 'Invalid informational status code: %s', RangeError); +E('ERR_HTTP2_INVALID_ORIGIN', + 'HTTP/2 ORIGIN frames require a valid origin', TypeError); E('ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH', 'Packed settings length must be a multiple of six', RangeError); E('ERR_HTTP2_INVALID_PSEUDOHEADER', @@ -582,6 +586,8 @@ E('ERR_HTTP2_NESTED_PUSH', E('ERR_HTTP2_NO_SOCKET_MANIPULATION', 'HTTP/2 sockets should not be directly manipulated (e.g. read and written)', Error); +E('ERR_HTTP2_ORIGIN_LENGTH', + 'HTTP/2 ORIGIN frames are limited to 16382 bytes', TypeError); E('ERR_HTTP2_OUT_OF_STREAMS', 'No stream ID is available because maximum stream ID has been reached', Error); @@ -802,7 +808,7 @@ E('ERR_SOCKET_ALREADY_BOUND', 'Socket is already bound', Error); E('ERR_SOCKET_BAD_BUFFER_SIZE', 'Buffer size must be a positive integer', TypeError); E('ERR_SOCKET_BAD_PORT', - 'Port should be > 0 and < 65536. Received %s.', RangeError); + 'Port should be >= 0 and < 65536. Received %s.', RangeError); E('ERR_SOCKET_BAD_TYPE', 'Bad socket type specified. Valid types are: udp4, udp6', TypeError); E('ERR_SOCKET_BUFFER_SIZE', @@ -811,8 +817,6 @@ E('ERR_SOCKET_BUFFER_SIZE', E('ERR_SOCKET_CANNOT_SEND', 'Unable to send data', Error); E('ERR_SOCKET_CLOSED', 'Socket is closed', Error); E('ERR_SOCKET_DGRAM_NOT_RUNNING', 'Not running', Error); -E('ERR_STDERR_CLOSE', 'process.stderr cannot be closed', Error); -E('ERR_STDOUT_CLOSE', 'process.stdout cannot be closed', Error); E('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error); E('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error); E('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); diff --git a/lib/internal/fs/promises.js b/lib/internal/fs/promises.js index 9ba4a1f8871830..31535a2b2b5378 100644 --- a/lib/internal/fs/promises.js +++ b/lib/internal/fs/promises.js @@ -14,7 +14,7 @@ const { ERR_INVALID_ARG_TYPE, ERR_METHOD_NOT_IMPLEMENTED } = require('internal/errors').codes; -const { getPathFromURL } = require('internal/url'); +const { toPathIfFileURL } = require('internal/url'); const { isUint8Array } = require('internal/util/types'); const { copyObject, @@ -171,7 +171,7 @@ async function readFileHandle(filehandle, options) { // All of the functions are defined as async in order to ensure that errors // thrown cause promise rejections rather than being thrown synchronously. async function access(path, mode = F_OK) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); mode = mode | 0; @@ -180,8 +180,8 @@ async function access(path, mode = F_OK) { } async function copyFile(src, dest, flags) { - src = getPathFromURL(src); - dest = getPathFromURL(dest); + src = toPathIfFileURL(src); + dest = toPathIfFileURL(dest); validatePath(src, 'src'); validatePath(dest, 'dest'); flags = flags | 0; @@ -193,7 +193,7 @@ async function copyFile(src, dest, flags) { // Note that unlike fs.open() which uses numeric file descriptors, // fsPromises.open() uses the fs.FileHandle class. async function open(path, flags, mode) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); mode = validateMode(mode, 'mode', 0o666); return new FileHandle( @@ -251,8 +251,8 @@ async function write(handle, buffer, offset, length, position) { } async function rename(oldPath, newPath) { - oldPath = getPathFromURL(oldPath); - newPath = getPathFromURL(newPath); + oldPath = toPathIfFileURL(oldPath); + newPath = toPathIfFileURL(newPath); validatePath(oldPath, 'oldPath'); validatePath(newPath, 'newPath'); return binding.rename(pathModule.toNamespacedPath(oldPath), @@ -272,7 +272,7 @@ async function ftruncate(handle, len = 0) { } async function rmdir(path) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); return binding.rmdir(pathModule.toNamespacedPath(path), kUsePromises); } @@ -287,16 +287,28 @@ async function fsync(handle) { return binding.fsync(handle.fd, kUsePromises); } -async function mkdir(path, mode) { - path = getPathFromURL(path); +async function mkdir(path, options) { + if (typeof options === 'number' || typeof options === 'string') { + options = { mode: options }; + } + const { + recursive = false, + mode = 0o777 + } = options || {}; + path = toPathIfFileURL(path); + validatePath(path); - mode = validateMode(mode, 'mode', 0o777); - return binding.mkdir(pathModule.toNamespacedPath(path), mode, kUsePromises); + if (typeof recursive !== 'boolean') + throw new ERR_INVALID_ARG_TYPE('recursive', 'boolean', recursive); + + return binding.mkdir(pathModule.toNamespacedPath(path), + validateMode(mode, 'mode', 0o777), recursive, + kUsePromises); } async function readdir(path, options) { options = getOptions(options, {}); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const result = await binding.readdir(pathModule.toNamespacedPath(path), options.encoding, @@ -309,7 +321,7 @@ async function readdir(path, options) { async function readlink(path, options) { options = getOptions(options, {}); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path, 'oldPath'); return binding.readlink(pathModule.toNamespacedPath(path), options.encoding, kUsePromises); @@ -317,8 +329,8 @@ async function readlink(path, options) { async function symlink(target, path, type_) { const type = (typeof type_ === 'string' ? type_ : null); - target = getPathFromURL(target); - path = getPathFromURL(path); + target = toPathIfFileURL(target); + path = toPathIfFileURL(path); validatePath(target, 'target'); validatePath(path); return binding.symlink(preprocessSymlinkDestination(target, type, path), @@ -334,7 +346,7 @@ async function fstat(handle, options = { bigint: false }) { } async function lstat(path, options = { bigint: false }) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const result = await binding.lstat(pathModule.toNamespacedPath(path), options.bigint, kUsePromises); @@ -342,7 +354,7 @@ async function lstat(path, options = { bigint: false }) { } async function stat(path, options = { bigint: false }) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); const result = await binding.stat(pathModule.toNamespacedPath(path), options.bigint, kUsePromises); @@ -350,8 +362,8 @@ async function stat(path, options = { bigint: false }) { } async function link(existingPath, newPath) { - existingPath = getPathFromURL(existingPath); - newPath = getPathFromURL(newPath); + existingPath = toPathIfFileURL(existingPath); + newPath = toPathIfFileURL(newPath); validatePath(existingPath, 'existingPath'); validatePath(newPath, 'newPath'); return binding.link(pathModule.toNamespacedPath(existingPath), @@ -360,7 +372,7 @@ async function link(existingPath, newPath) { } async function unlink(path) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); return binding.unlink(pathModule.toNamespacedPath(path), kUsePromises); } @@ -372,7 +384,7 @@ async function fchmod(handle, mode) { } async function chmod(path, mode) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); mode = validateMode(mode, 'mode'); return binding.chmod(pathModule.toNamespacedPath(path), mode, kUsePromises); @@ -387,7 +399,7 @@ async function lchmod(path, mode) { } async function lchown(path, uid, gid) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); @@ -403,7 +415,7 @@ async function fchown(handle, uid, gid) { } async function chown(path, uid, gid) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); validateUint32(uid, 'uid'); validateUint32(gid, 'gid'); @@ -412,7 +424,7 @@ async function chown(path, uid, gid) { } async function utimes(path, atime, mtime) { - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); return binding.utimes(pathModule.toNamespacedPath(path), toUnixTimestamp(atime), @@ -429,7 +441,7 @@ async function futimes(handle, atime, mtime) { async function realpath(path, options) { options = getOptions(options, {}); - path = getPathFromURL(path); + path = toPathIfFileURL(path); validatePath(path); return binding.realpath(path, options.encoding, kUsePromises); } diff --git a/lib/internal/fs/streams.js b/lib/internal/fs/streams.js index 3eb802c3491170..6f747cc3c8c63f 100644 --- a/lib/internal/fs/streams.js +++ b/lib/internal/fs/streams.js @@ -14,7 +14,7 @@ const { getOptions, } = require('internal/fs/utils'); const { Readable, Writable } = require('stream'); -const { getPathFromURL } = require('internal/url'); +const { toPathIfFileURL } = require('internal/url'); const util = require('util'); let fs; @@ -57,7 +57,7 @@ function ReadStream(path, options) { Readable.call(this, options); // path will be ignored when fd is specified, so it can be falsy - this.path = getPathFromURL(path); + this.path = toPathIfFileURL(path); this.fd = options.fd === undefined ? null : options.fd; this.flags = options.flags === undefined ? 'r' : options.flags; this.mode = options.mode === undefined ? 0o666 : options.mode; @@ -225,7 +225,7 @@ function WriteStream(path, options) { Writable.call(this, options); // path will be ignored when fd is specified, so it can be falsy - this.path = getPathFromURL(path); + this.path = toPathIfFileURL(path); this.fd = options.fd === undefined ? null : options.fd; this.flags = options.flags === undefined ? 'w' : options.flags; this.mode = options.mode === undefined ? 0o666 : options.mode; diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index 39f4c32906433a..5a5ac3bfa263b0 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -113,15 +113,15 @@ for (const name of Reflect.ownKeys(Dirent.prototype)) { } function copyObject(source) { - var target = {}; - for (var key in source) + const target = {}; + for (const key in source) target[key] = source[key]; return target; } function getDirents(path, [names, types], callback) { - var i; - if (typeof callback == 'function') { + let i; + if (typeof callback === 'function') { const len = names.length; let toFinish = 0; callback = once(callback); @@ -131,7 +131,7 @@ function getDirents(path, [names, types], callback) { const name = names[i]; const idx = i; toFinish++; - lazyLoadFs().stat(pathModule.resolve(path, name), (err, stats) => { + lazyLoadFs().lstat(pathModule.join(path, name), (err, stats) => { if (err) { callback(err); return; @@ -154,7 +154,7 @@ function getDirents(path, [names, types], callback) { const type = types[i]; if (type === UV_DIRENT_UNKNOWN) { const name = names[i]; - const stats = lazyLoadFs().statSync(pathModule.resolve(path, name)); + const stats = lazyLoadFs().lstatSync(pathModule.join(path, name)); names[i] = new DirentFromStats(name, stats); } else { names[i] = new Dirent(names[i], types[i]); diff --git a/lib/internal/fs/watchers.js b/lib/internal/fs/watchers.js index 90ea3971aae6f5..45ae12e2b3d111 100644 --- a/lib/internal/fs/watchers.js +++ b/lib/internal/fs/watchers.js @@ -6,6 +6,7 @@ const { StatWatcher: _StatWatcher } = process.binding('fs'); const { FSEvent } = process.binding('fs_event_wrap'); +const { UV_ENOSPC } = process.binding('uv'); const { EventEmitter } = require('events'); const { getStatsFromBinding, @@ -17,7 +18,7 @@ const { } = require('internal/async_hooks'); const { toNamespacedPath } = require('path'); const { validateUint32 } = require('internal/validators'); -const { getPathFromURL } = require('internal/url'); +const { toPathIfFileURL } = require('internal/url'); const util = require('util'); const assert = require('assert'); @@ -70,7 +71,7 @@ StatWatcher.prototype.start = function(filename, persistent, interval) { // the sake of backwards compatibility this[kOldStatus] = -1; - filename = getPathFromURL(filename); + filename = toPathIfFileURL(filename); validatePath(filename, 'filename'); validateUint32(interval, 'interval'); const err = this._handle.start(toNamespacedPath(filename), interval); @@ -153,7 +154,7 @@ FSWatcher.prototype.start = function(filename, return; } - filename = getPathFromURL(filename); + filename = toPathIfFileURL(filename); validatePath(filename, 'filename'); const err = this._handle.start(toNamespacedPath(filename), @@ -164,7 +165,9 @@ FSWatcher.prototype.start = function(filename, const error = errors.uvException({ errno: err, syscall: 'watch', - path: filename + path: filename, + message: err === UV_ENOSPC ? + 'System limit for number of file watchers reached' : '' }); error.filename = filename; throw error; diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js index e778402c42ef35..57505150609873 100644 --- a/lib/internal/http2/core.js +++ b/lib/internal/http2/core.js @@ -43,6 +43,7 @@ const { ERR_HTTP2_HEADERS_AFTER_RESPOND, ERR_HTTP2_HEADERS_SENT, ERR_HTTP2_INVALID_INFO_STATUS, + ERR_HTTP2_INVALID_ORIGIN, ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH, ERR_HTTP2_INVALID_SESSION, ERR_HTTP2_INVALID_SETTING_VALUE, @@ -50,6 +51,7 @@ const { ERR_HTTP2_MAX_PENDING_SETTINGS_ACK, ERR_HTTP2_NESTED_PUSH, ERR_HTTP2_NO_SOCKET_MANIPULATION, + ERR_HTTP2_ORIGIN_LENGTH, ERR_HTTP2_OUT_OF_STREAMS, ERR_HTTP2_PAYLOAD_FORBIDDEN, ERR_HTTP2_PING_CANCEL, @@ -148,6 +150,7 @@ const kInfoHeaders = Symbol('sent-info-headers'); const kLocalSettings = Symbol('local-settings'); const kOptions = Symbol('options'); const kOwner = owner_symbol; +const kOrigin = Symbol('origin'); const kProceed = Symbol('proceed'); const kProtocol = Symbol('protocol'); const kProxySocket = Symbol('proxy-socket'); @@ -188,6 +191,7 @@ const { HTTP2_HEADER_DATE, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, + HTTP2_HEADER_PROTOCOL, HTTP2_HEADER_SCHEME, HTTP2_HEADER_STATUS, HTTP2_HEADER_CONTENT_LENGTH, @@ -209,6 +213,7 @@ const { HTTP_STATUS_NO_CONTENT, HTTP_STATUS_NOT_MODIFIED, HTTP_STATUS_SWITCHING_PROTOCOLS, + HTTP_STATUS_MISDIRECTED_REQUEST, STREAM_OPTION_EMPTY_PAYLOAD, STREAM_OPTION_GET_TRAILERS @@ -275,6 +280,7 @@ function onSessionHeaders(handle, id, cat, flags, headers) { } } else { stream = new ClientHttp2Stream(session, handle, id, opts); + stream.end(); } if (endOfStream) stream[kState].endAfterHeaders = true; @@ -299,6 +305,11 @@ function onSessionHeaders(handle, id, cat, flags, headers) { } else { event = endOfStream ? 'trailers' : 'headers'; } + const session = stream.session; + if (status === HTTP_STATUS_MISDIRECTED_REQUEST) { + const originSet = session[kState].originSet = initOriginSet(session); + originSet.delete(stream[kOrigin]); + } debug(`Http2Stream ${id} [Http2Session ` + `${sessionName(type)}]: emitting stream '${event}' event`); process.nextTick(emit, stream, event, obj, flags, headers); @@ -320,7 +331,7 @@ function tryClose(fd) { function onStreamTrailers() { const stream = this[kOwner]; stream[kState].trailersReady = true; - if (stream.destroyed) + if (stream.destroyed || stream.closed) return; if (!stream.emit('wantTrailers')) { // There are no listeners, send empty trailing HEADERS frame and close. @@ -336,6 +347,15 @@ function submitRstStream(code) { } } +function onPing(payload) { + const session = this[kOwner]; + if (session.destroyed) + return; + session[kUpdateTimer](); + debug(`Http2Session ${sessionName(session[kType])}: new ping received`); + session.emit('ping', payload); +} + // Called when the stream is closed either by sending or receiving an // RST_STREAM frame, or through a natural end-of-stream. // If the writable and readable sides of the stream are still open at this @@ -429,6 +449,39 @@ function onAltSvc(stream, origin, alt) { session.emit('altsvc', alt, origin, stream); } +function initOriginSet(session) { + let originSet = session[kState].originSet; + if (originSet === undefined) { + const socket = session[kSocket]; + session[kState].originSet = originSet = new Set(); + if (socket.servername != null) { + let originString = `https://${socket.servername}`; + if (socket.remotePort != null) + originString += `:${socket.remotePort}`; + // We have to ensure that it is a properly serialized + // ASCII origin string. The socket.servername might not + // be properly ASCII encoded. + originSet.add((new URL(originString)).origin); + } + } + return originSet; +} + +function onOrigin(origins) { + const session = this[kOwner]; + if (session.destroyed) + return; + debug(`Http2Session ${sessionName(session[kType])}: origin received: ` + + `${origins.join(', ')}`); + session[kUpdateTimer](); + if (!session.encrypted || session.destroyed) + return undefined; + const originSet = initOriginSet(session); + for (var n = 0; n < origins.length; n++) + originSet.add(origins[n]); + session.emit('origin', origins); +} + // Receiving a GOAWAY frame from the connected peer is a signal that no // new streams should be created. If the code === NGHTTP2_NO_ERROR, we // are going to send our close, but allow existing frames to close @@ -709,7 +762,7 @@ const proxySocketHandler = { // indicate if the ping was successful or not. The duration indicates the // number of milliseconds elapsed since the ping was sent and the ack // received. The payload is a Buffer containing the 8 bytes of payload -// data received on the PING acknowlegement. +// data received on the PING acknowledgement. function pingCallback(cb) { return function pingCallback(ack, duration, payload) { if (ack) { @@ -778,10 +831,12 @@ function setupHandle(socket, type, options) { handle.error = onSessionInternalError; handle.onpriority = onPriority; handle.onsettings = onSettings; + handle.onping = onPing; handle.onheaders = onSessionHeaders; handle.onframeerror = onFrameError; handle.ongoawaydata = onGoawayData; handle.onaltsvc = onAltSvc; + handle.onorigin = onOrigin; if (typeof options.selectPadding === 'function') handle.ongetpadding = onSelectPadding(options.selectPadding); @@ -808,6 +863,12 @@ function setupHandle(socket, type, options) { options.settings : {}; this.settings(settings); + + if (type === NGHTTP2_SESSION_SERVER && + Array.isArray(options.origins)) { + this.origin(...options.origins); + } + process.nextTick(emit, this, 'connect', this, socket); } @@ -947,23 +1008,7 @@ class Http2Session extends EventEmitter { get originSet() { if (!this.encrypted || this.destroyed) return undefined; - - let originSet = this[kState].originSet; - if (originSet === undefined) { - const socket = this[kSocket]; - this[kState].originSet = originSet = new Set(); - if (socket.servername != null) { - let originString = `https://${socket.servername}`; - if (socket.remotePort != null) - originString += `:${socket.remotePort}`; - // We have to ensure that it is a properly serialized - // ASCII origin string. The socket.servername might not - // be properly ASCII encoded. - originSet.add((new URL(originString)).origin); - } - } - - return Array.from(originSet); + return Array.from(initOriginSet(this)); } // True if the Http2Session is still waiting for the socket to connect @@ -1338,6 +1383,40 @@ class ServerHttp2Session extends Http2Session { this[kHandle].altsvc(stream, origin || '', alt); } + + // Submits an origin frame to be sent. + origin(...origins) { + if (this.destroyed) + throw new ERR_HTTP2_INVALID_SESSION(); + + if (origins.length === 0) + return; + + let arr = ''; + let len = 0; + const count = origins.length; + for (var i = 0; i < count; i++) { + let origin = origins[i]; + if (typeof origin === 'string') { + origin = (new URL(origin)).origin; + } else if (origin != null && typeof origin === 'object') { + origin = origin.origin; + } + if (typeof origin !== 'string') + throw new ERR_INVALID_ARG_TYPE('origin', 'string', origin); + if (origin === 'null') + throw new ERR_HTTP2_INVALID_ORIGIN(); + + arr += `${origin}\0`; + len += origin.length; + } + + if (len > 16382) + throw new ERR_HTTP2_ORIGIN_LENGTH(); + + this[kHandle].origin(arr, count); + } + } // ClientHttp2Session instances have to wait for the socket to connect after @@ -1373,7 +1452,7 @@ class ClientHttp2Session extends Http2Session { const connect = headers[HTTP2_HEADER_METHOD] === HTTP2_METHOD_CONNECT; - if (!connect) { + if (!connect || headers[HTTP2_HEADER_PROTOCOL] !== undefined) { if (headers[HTTP2_HEADER_AUTHORITY] === undefined) headers[HTTP2_HEADER_AUTHORITY] = this[kAuthority]; if (headers[HTTP2_HEADER_SCHEME] === undefined) @@ -1406,6 +1485,8 @@ class ClientHttp2Session extends Http2Session { const stream = new ClientHttp2Stream(this, undefined, undefined, {}); stream[kSentHeaders] = headers; + stream[kOrigin] = `${headers[HTTP2_HEADER_SCHEME]}://` + + `${headers[HTTP2_HEADER_AUTHORITY]}`; // Close the writable side of the stream if options.endStream is set. if (options.endStream) @@ -1464,6 +1545,14 @@ function afterShutdown() { } function finishSendTrailers(stream, headersList) { + // The stream might be destroyed and in that case + // there is nothing to do. + // This can happen because finishSendTrailers is + // scheduled via setImmediate. + if (stream.destroyed) { + return; + } + stream[kState].flags &= ~STREAM_FLAGS_HAS_TRAILERS; const ret = stream[kHandle].trailers(headersList); @@ -2061,6 +2150,7 @@ function doSendFileFD(session, options, fd, headers, streamOptions, err, stat) { isDirectory) { const err = isDirectory ? new ERR_HTTP2_SEND_FILE() : new ERR_HTTP2_SEND_FILE_NOSEEK(); + tryClose(fd); if (onError) onError(err); else @@ -2091,6 +2181,7 @@ function doSendFileFD(session, options, fd, headers, streamOptions, err, stat) { if ((typeof options.statCheck === 'function' && options.statCheck.call(this, stat, headers) === false) || (this[kState].flags & STREAM_FLAGS_HEADERS_SENT)) { + tryClose(fd); return; } diff --git a/lib/internal/http2/util.js b/lib/internal/http2/util.js index bc93662a70239d..e267c87ea3f6b0 100644 --- a/lib/internal/http2/util.js +++ b/lib/internal/http2/util.js @@ -20,6 +20,7 @@ const { HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_SCHEME, HTTP2_HEADER_PATH, + HTTP2_HEADER_PROTOCOL, HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS, HTTP2_HEADER_ACCESS_CONTROL_MAX_AGE, HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD, @@ -78,7 +79,8 @@ const kValidPseudoHeaders = new Set([ HTTP2_HEADER_METHOD, HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_SCHEME, - HTTP2_HEADER_PATH + HTTP2_HEADER_PATH, + HTTP2_HEADER_PROTOCOL ]); // This set contains headers that are permitted to have only a single @@ -89,6 +91,7 @@ const kSingleValueHeaders = new Set([ HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_SCHEME, HTTP2_HEADER_PATH, + HTTP2_HEADER_PROTOCOL, HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS, HTTP2_HEADER_ACCESS_CONTROL_MAX_AGE, HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD, @@ -155,7 +158,8 @@ const IDX_SETTINGS_INITIAL_WINDOW_SIZE = 2; const IDX_SETTINGS_MAX_FRAME_SIZE = 3; const IDX_SETTINGS_MAX_CONCURRENT_STREAMS = 4; const IDX_SETTINGS_MAX_HEADER_LIST_SIZE = 5; -const IDX_SETTINGS_FLAGS = 6; +const IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL = 6; +const IDX_SETTINGS_FLAGS = 7; const IDX_SESSION_STATE_EFFECTIVE_LOCAL_WINDOW_SIZE = 0; const IDX_SESSION_STATE_EFFECTIVE_RECV_DATA_LENGTH = 1; @@ -277,6 +281,12 @@ function getDefaultSettings() { settingsBuffer[IDX_SETTINGS_MAX_HEADER_LIST_SIZE]; } + if ((flags & (1 << IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL)) === + (1 << IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL)) { + holder.enableConnectProtocol = + settingsBuffer[IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL]; + } + return holder; } @@ -294,7 +304,8 @@ function getSettings(session, remote) { initialWindowSize: settingsBuffer[IDX_SETTINGS_INITIAL_WINDOW_SIZE], maxFrameSize: settingsBuffer[IDX_SETTINGS_MAX_FRAME_SIZE], maxConcurrentStreams: settingsBuffer[IDX_SETTINGS_MAX_CONCURRENT_STREAMS], - maxHeaderListSize: settingsBuffer[IDX_SETTINGS_MAX_HEADER_LIST_SIZE] + maxHeaderListSize: settingsBuffer[IDX_SETTINGS_MAX_HEADER_LIST_SIZE], + enableConnectProtocol: settingsBuffer[IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL] }; } @@ -329,6 +340,11 @@ function updateSettingsBuffer(settings) { flags |= (1 << IDX_SETTINGS_ENABLE_PUSH); settingsBuffer[IDX_SETTINGS_ENABLE_PUSH] = Number(settings.enablePush); } + if (typeof settings.enableConnectProtocol === 'boolean') { + flags |= (1 << IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL); + settingsBuffer[IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL] = + Number(settings.enableConnectProtocol); + } settingsBuffer[IDX_SETTINGS_FLAGS] = flags; } diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index c218dc2cac2a50..3083cdbb8bce3f 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -23,6 +23,7 @@ const { NativeModule } = require('internal/bootstrap/loaders'); const util = require('util'); +const { pathToFileURL } = require('internal/url'); const vm = require('vm'); const assert = require('assert').ok; const fs = require('fs'); @@ -54,7 +55,6 @@ module.exports = Module; let asyncESM; let ModuleJob; let createDynamicModule; -let getURLFromFilePath; let decorateErrorStack; function lazyLoadESM() { @@ -63,7 +63,6 @@ function lazyLoadESM() { createDynamicModule = require( 'internal/modules/esm/create_dynamic_module'); decorateErrorStack = require('internal/util').decorateErrorStack; - getURLFromFilePath = require('internal/url').getURLFromFilePath; } const { @@ -602,7 +601,7 @@ Module.prototype.load = function(filename) { if (experimentalModules) { if (asyncESM === undefined) lazyLoadESM(); const ESMLoader = asyncESM.ESMLoader; - const url = getURLFromFilePath(filename); + const url = pathToFileURL(filename); const urlString = `${url}`; const exports = this.exports; if (ESMLoader.moduleMap.has(urlString) !== true) { @@ -731,7 +730,7 @@ Module.runMain = function() { if (experimentalModules) { if (asyncESM === undefined) lazyLoadESM(); asyncESM.loaderPromise.then((loader) => { - return loader.import(getURLFromFilePath(process.argv[1]).pathname); + return loader.import(pathToFileURL(process.argv[1]).pathname); }) .catch((e) => { decorateErrorStack(e); @@ -745,6 +744,13 @@ Module.runMain = function() { process._tickCallback(); }; +Module.createRequireFromPath = (filename) => { + const m = new Module(filename); + m.filename = filename; + m.paths = Module._nodeModulePaths(path.dirname(filename)); + return makeRequireFunction(m); +}; + Module._initPaths = function() { const isWindows = process.platform === 'win32'; diff --git a/lib/internal/modules/esm/default_resolve.js b/lib/internal/modules/esm/default_resolve.js index b573ce4e8d9e5a..875c560cb15079 100644 --- a/lib/internal/modules/esm/default_resolve.js +++ b/lib/internal/modules/esm/default_resolve.js @@ -15,7 +15,7 @@ const { } = require('internal/errors').codes; const { resolve: moduleWrapResolve } = internalBinding('module_wrap'); const StringStartsWith = Function.call.bind(String.prototype.startsWith); -const { getURLFromFilePath, getPathFromURL } = require('internal/url'); +const { pathToFileURL, fileURLToPath } = require('internal/url'); const realpathCache = new Map(); @@ -62,7 +62,7 @@ function resolve(specifier, parentURL) { let url; try { url = search(specifier, - parentURL || getURLFromFilePath(`${process.cwd()}/`).href); + parentURL || pathToFileURL(`${process.cwd()}/`).href); } catch (e) { if (typeof e.message === 'string' && StringStartsWith(e.message, 'Cannot find module')) @@ -73,11 +73,11 @@ function resolve(specifier, parentURL) { const isMain = parentURL === undefined; if (isMain ? !preserveSymlinksMain : !preserveSymlinks) { - const real = realpathSync(getPathFromURL(url), { + const real = realpathSync(fileURLToPath(url), { [internalFS.realpathCacheKey]: realpathCache }); const old = url; - url = getURLFromFilePath(real); + url = pathToFileURL(real); url.search = old.search; url.hash = old.hash; } diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index 618f1adac8deb7..aaf35ed461edb9 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -40,7 +40,7 @@ const isWindows = process.platform === 'win32'; const winSepRegEx = /\//g; translators.set('cjs', async (url, isMain) => { debug(`Translating CJSModule ${url}`); - const pathname = internalURLModule.getPathFromURL(new URL(url)); + const pathname = internalURLModule.fileURLToPath(new URL(url)); const module = CJSModule._cache[ isWindows ? StringReplace(pathname, winSepRegEx, '\\') : pathname]; if (module && module.loaded) { @@ -81,7 +81,7 @@ translators.set('addon', async (url) => { return createDynamicModule(['default'], url, (reflect) => { debug(`Loading NativeModule ${url}`); const module = { exports: {} }; - const pathname = internalURLModule.getPathFromURL(new URL(url)); + const pathname = internalURLModule.fileURLToPath(new URL(url)); process.dlopen(module, _makeLong(pathname)); reflect.exports.default.set(module.exports); }); @@ -92,7 +92,7 @@ translators.set('json', async (url) => { debug(`Translating JSONModule ${url}`); return createDynamicModule(['default'], url, (reflect) => { debug(`Loading JSONModule ${url}`); - const pathname = internalURLModule.getPathFromURL(new URL(url)); + const pathname = internalURLModule.fileURLToPath(new URL(url)); const content = readFileSync(pathname, 'utf8'); try { const exports = JsonParse(stripBOM(content)); diff --git a/lib/internal/print_help.js b/lib/internal/print_help.js index 221af2547b239d..065d6524b764cb 100644 --- a/lib/internal/print_help.js +++ b/lib/internal/print_help.js @@ -140,7 +140,8 @@ function print(stream) { const firstColumn = Math.floor(width * 0.4); const secondColumn = Math.floor(width * 0.57); - options.set('-', { helpText: 'script read from stdin (default; ' + + options.set('-', { helpText: 'script read from stdin ' + + '(default if no file name is provided, ' + 'interactive mode if a tty)' }); options.set('--', { helpText: 'indicate the end of node options' }); stream.write( diff --git a/lib/internal/process/coverage.js b/lib/internal/process/coverage.js index c2349d4ce0e24e..df45285baaee02 100644 --- a/lib/internal/process/coverage.js +++ b/lib/internal/process/coverage.js @@ -1,9 +1,7 @@ 'use strict'; const path = require('path'); const { mkdirSync, writeFileSync } = require('fs'); -// TODO(addaleax): add support for coverage to worker threads. -const hasInspector = process.config.variables.v8_enable_inspector === 1 && - require('internal/worker').isMainThread; +const hasInspector = process.config.variables.v8_enable_inspector === 1; let inspector = null; if (hasInspector) inspector = require('inspector'); @@ -14,7 +12,9 @@ function writeCoverage() { return; } - const filename = `coverage-${process.pid}-${Date.now()}.json`; + const { threadId } = require('internal/worker'); + + const filename = `coverage-${process.pid}-${Date.now()}-${threadId}.json`; try { // TODO(bcoe): switch to mkdirp once #22302 is addressed. mkdirSync(process.env.NODE_V8_COVERAGE); diff --git a/lib/internal/process/esm_loader.js b/lib/internal/process/esm_loader.js index c622084415f7a9..6f3ac729f8143a 100644 --- a/lib/internal/process/esm_loader.js +++ b/lib/internal/process/esm_loader.js @@ -6,7 +6,7 @@ const { setInitializeImportMetaObjectCallback } = internalBinding('module_wrap'); -const { getURLFromFilePath } = require('internal/url'); +const { pathToFileURL } = require('internal/url'); const Loader = require('internal/modules/esm/loader'); const path = require('path'); const { URL } = require('url'); @@ -17,7 +17,7 @@ const { function normalizeReferrerURL(referrer) { if (typeof referrer === 'string' && path.isAbsolute(referrer)) { - return getURLFromFilePath(referrer).href; + return pathToFileURL(referrer).href; } return new URL(referrer).href; } @@ -52,7 +52,7 @@ exports.setup = function() { const userLoader = process.binding('config').userLoader; if (userLoader) { const hooks = await ESMLoader.import( - userLoader, getURLFromFilePath(`${process.cwd()}/`).href); + userLoader, pathToFileURL(`${process.cwd()}/`).href); ESMLoader = new Loader(); ESMLoader.hook(hooks); exports.ESMLoader = ESMLoader; diff --git a/lib/internal/process/promises.js b/lib/internal/process/promises.js index f54f34b9ae92f4..fddf3c8f66eab9 100644 --- a/lib/internal/process/promises.js +++ b/lib/internal/process/promises.js @@ -5,15 +5,37 @@ const { safeToString } = process.binding('util'); const maybeUnhandledPromises = new WeakMap(); const pendingUnhandledRejections = []; const asyncHandledRejections = []; +const promiseRejectEvents = {}; let lastPromiseId = 0; exports.setup = setupPromises; function setupPromises(_setupPromises) { - _setupPromises(unhandledRejection, handledRejection); + _setupPromises(handler, promiseRejectEvents); return emitPromiseRejectionWarnings; } +function handler(type, promise, reason) { + switch (type) { + case promiseRejectEvents.kPromiseRejectWithNoHandler: + return unhandledRejection(promise, reason); + case promiseRejectEvents.kPromiseHandlerAddedAfterReject: + return handledRejection(promise); + case promiseRejectEvents.kPromiseResolveAfterResolved: + return resolveError('resolve', promise, reason); + case promiseRejectEvents.kPromiseRejectAfterResolved: + return resolveError('reject', promise, reason); + } +} + +function resolveError(type, promise, reason) { + // We have to wrap this in a next tick. Otherwise the error could be caught by + // the executed promise. + process.nextTick(() => { + process.emit('multipleResolves', type, promise, reason); + }); +} + function unhandledRejection(promise, reason) { maybeUnhandledPromises.set(promise, { reason, @@ -45,16 +67,6 @@ function handledRejection(promise) { const unhandledRejectionErrName = 'UnhandledPromiseRejectionWarning'; function emitWarning(uid, reason) { - try { - if (reason instanceof Error) { - process.emitWarning(reason.stack, unhandledRejectionErrName); - } else { - process.emitWarning(safeToString(reason), unhandledRejectionErrName); - } - } catch (e) { - // ignored - } - // eslint-disable-next-line no-restricted-syntax const warning = new Error( 'Unhandled promise rejection. This error originated either by ' + @@ -66,10 +78,12 @@ function emitWarning(uid, reason) { try { if (reason instanceof Error) { warning.stack = reason.stack; + process.emitWarning(reason.stack, unhandledRejectionErrName); + } else { + process.emitWarning(safeToString(reason), unhandledRejectionErrName); } - } catch (err) { - // ignored - } + } catch {} + process.emitWarning(warning); emitDeprecationWarning(); } diff --git a/lib/internal/process/stdio.js b/lib/internal/process/stdio.js index e4207a1aa768bd..ca09f4ff821a00 100644 --- a/lib/internal/process/stdio.js +++ b/lib/internal/process/stdio.js @@ -1,8 +1,6 @@ 'use strict'; const { - ERR_STDERR_CLOSE, - ERR_STDOUT_CLOSE, ERR_UNKNOWN_STDIN_TYPE, ERR_UNKNOWN_STREAM_TYPE } = require('internal/errors').codes; @@ -10,6 +8,8 @@ const { exports.setupProcessStdio = setupProcessStdio; exports.getMainThreadStdio = getMainThreadStdio; +function dummyDestroy(err, cb) { cb(err); } + function getMainThreadStdio() { var stdin; var stdout; @@ -19,11 +19,8 @@ function getMainThreadStdio() { if (stdout) return stdout; stdout = createWritableStdioStream(1); stdout.destroySoon = stdout.destroy; - stdout._destroy = function(er, cb) { - // Avoid errors if we already emitted - er = er || new ERR_STDOUT_CLOSE(); - cb(er); - }; + // Override _destroy so that the fd is never actually closed. + stdout._destroy = dummyDestroy; if (stdout.isTTY) { process.on('SIGWINCH', () => stdout._refreshSize()); } @@ -34,11 +31,8 @@ function getMainThreadStdio() { if (stderr) return stderr; stderr = createWritableStdioStream(2); stderr.destroySoon = stderr.destroy; - stderr._destroy = function(er, cb) { - // Avoid errors if we already emitted - er = er || new ERR_STDERR_CLOSE(); - cb(er); - }; + // Override _destroy so that the fd is never actually closed. + stdout._destroy = dummyDestroy; if (stderr.isTTY) { process.on('SIGWINCH', () => stderr._refreshSize()); } diff --git a/lib/internal/repl/recoverable.js b/lib/internal/repl/recoverable.js index 5d270f5146e403..023de2f7abcf73 100644 --- a/lib/internal/repl/recoverable.js +++ b/lib/internal/repl/recoverable.js @@ -5,7 +5,7 @@ const { tokTypes: tt } = acorn; // If the error is that we've unexpectedly ended the input, // then let the user try to recover by adding more input. -// Note: `e` (the original exception) is not used by the current implemention, +// Note: `e` (the original exception) is not used by the current implementation, // but may be needed in the future. function isRecoverableError(e, code) { let recoverable = false; diff --git a/lib/internal/streams/async_iterator.js b/lib/internal/streams/async_iterator.js index 0e34573d877aee..91c473ee9d29c5 100644 --- a/lib/internal/streams/async_iterator.js +++ b/lib/internal/streams/async_iterator.js @@ -8,12 +8,9 @@ const kLastPromise = Symbol('lastPromise'); const kHandlePromise = Symbol('handlePromise'); const kStream = Symbol('stream'); -const AsyncIteratorRecord = class AsyncIteratorRecord { - constructor(value, done) { - this.done = done; - this.value = value; - } -}; +function createIterResult(value, done) { + return { value, done }; +} function readAndResolve(iter) { const resolve = iter[kLastResolve]; @@ -26,7 +23,7 @@ function readAndResolve(iter) { iter[kLastPromise] = null; iter[kLastResolve] = null; iter[kLastReject] = null; - resolve(new AsyncIteratorRecord(data, false)); + resolve(createIterResult(data, false)); } } } @@ -43,7 +40,7 @@ function onEnd(iter) { iter[kLastPromise] = null; iter[kLastResolve] = null; iter[kLastReject] = null; - resolve(new AsyncIteratorRecord(null, true)); + resolve(createIterResult(null, true)); } iter[kEnded] = true; } @@ -69,39 +66,13 @@ function wrapForNext(lastPromise, iter) { }; } -const ReadableAsyncIterator = class ReadableAsyncIterator { - constructor(stream) { - this[kStream] = stream; - this[kLastResolve] = null; - this[kLastReject] = null; - this[kError] = null; - this[kEnded] = false; - this[kLastPromise] = null; - - stream.on('readable', onReadable.bind(null, this)); - stream.on('end', onEnd.bind(null, this)); - stream.on('error', onError.bind(null, this)); - - // the function passed to new Promise - // is cached so we avoid allocating a new - // closure at every run - this[kHandlePromise] = (resolve, reject) => { - const data = this[kStream].read(); - if (data) { - this[kLastPromise] = null; - this[kLastResolve] = null; - this[kLastReject] = null; - resolve(new AsyncIteratorRecord(data, false)); - } else { - this[kLastResolve] = resolve; - this[kLastReject] = reject; - } - }; - } +const AsyncIteratorPrototype = Object.getPrototypeOf( + Object.getPrototypeOf(async function* () {}).prototype); +const ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf({ get stream() { return this[kStream]; - } + }, next() { // if we have detected an error in the meanwhile @@ -112,7 +83,7 @@ const ReadableAsyncIterator = class ReadableAsyncIterator { } if (this[kEnded]) { - return Promise.resolve(new AsyncIteratorRecord(null, true)); + return Promise.resolve(createIterResult(null, true)); } // if we have multiple next() calls @@ -129,7 +100,7 @@ const ReadableAsyncIterator = class ReadableAsyncIterator { // without triggering the next() queue const data = this[kStream].read(); if (data !== null) { - return Promise.resolve(new AsyncIteratorRecord(data, false)); + return Promise.resolve(createIterResult(data, false)); } promise = new Promise(this[kHandlePromise]); @@ -138,7 +109,7 @@ const ReadableAsyncIterator = class ReadableAsyncIterator { this[kLastPromise] = promise; return promise; - } + }, return() { // destroy(err, cb) is a private API @@ -150,10 +121,45 @@ const ReadableAsyncIterator = class ReadableAsyncIterator { reject(err); return; } - resolve(new AsyncIteratorRecord(null, true)); + resolve(createIterResult(null, true)); }); }); - } + }, +}, AsyncIteratorPrototype); + +const createReadableStreamAsyncIterator = (stream) => { + const iterator = Object.create(ReadableStreamAsyncIteratorPrototype, { + [kStream]: { value: stream, writable: true }, + [kLastResolve]: { value: null, writable: true }, + [kLastReject]: { value: null, writable: true }, + [kError]: { value: null, writable: true }, + [kEnded]: { value: false, writable: true }, + [kLastPromise]: { value: null, writable: true }, + // the function passed to new Promise + // is cached so we avoid allocating a new + // closure at every run + [kHandlePromise]: { + value: (resolve, reject) => { + const data = iterator[kStream].read(); + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true, + }, + }); + + stream.on('readable', onReadable.bind(null, iterator)); + stream.on('end', onEnd.bind(null, iterator)); + stream.on('error', onError.bind(null, iterator)); + + return iterator; }; -module.exports = ReadableAsyncIterator; +module.exports = createReadableStreamAsyncIterator; diff --git a/lib/internal/streams/buffer_list.js b/lib/internal/streams/buffer_list.js index a72bf37a31410b..aa254309a03a5c 100644 --- a/lib/internal/streams/buffer_list.js +++ b/lib/internal/streams/buffer_list.js @@ -158,8 +158,14 @@ module.exports = class BufferList { return ret; } - [inspect.custom]() { - const obj = inspect({ length: this.length }); - return `${this.constructor.name} ${obj}`; + // Make sure the linked list only shows the minimal necessary information. + [inspect.custom](_, options) { + return inspect(this, { + ...options, + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + }); } }; diff --git a/lib/internal/test/heap.js b/lib/internal/test/heap.js index a9260f651b9c1a..0a5bf7059713a5 100644 --- a/lib/internal/test/heap.js +++ b/lib/internal/test/heap.js @@ -37,8 +37,8 @@ function createJSHeapDump() { const fromNode = nodes[fromNodeIndex]; const edge = { type, - toNode, - fromNode, + to: toNode, + from: fromNode, name: typeof name_or_index === 'string' ? name_or_index : null }; toNode.incomingEdges.push(edge); diff --git a/lib/internal/timers.js b/lib/internal/timers.js index d33ad0c8ac8027..d5075582ec6270 100644 --- a/lib/internal/timers.js +++ b/lib/internal/timers.js @@ -16,6 +16,8 @@ const { } = require('internal/errors').codes; const { validateNumber } = require('internal/validators'); +const { inspect } = require('util'); + // Timeout values > TIMEOUT_MAX are set to 1. const TIMEOUT_MAX = 2 ** 31 - 1; @@ -80,6 +82,17 @@ function Timeout(callback, after, args, isRepeat, isUnrefed) { initAsyncResource(this, 'Timeout'); } +// Make sure the linked list only shows the minimal necessary information. +Timeout.prototype[inspect.custom] = function(_, options) { + return inspect(this, { + ...options, + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + }); +}; + Timeout.prototype.refresh = function() { if (this._handle) { // Would be more ideal with uv_timer_again(), however that API does not diff --git a/lib/internal/url.js b/lib/internal/url.js index ffd8f10edaeee8..2afd2db9b72f16 100644 --- a/lib/internal/url.js +++ b/lib/internal/url.js @@ -20,13 +20,16 @@ const { ERR_MISSING_ARGS } = require('internal/errors').codes; const { - CHAR_PERCENT, - CHAR_PLUS, CHAR_AMPERSAND, + CHAR_BACKWARD_SLASH, CHAR_EQUAL, + CHAR_FORWARD_SLASH, CHAR_LOWERCASE_A, CHAR_LOWERCASE_Z, + CHAR_PERCENT, + CHAR_PLUS } = require('internal/constants'); +const path = require('path'); // Lazy loaded for startup performance. let querystring; @@ -1392,11 +1395,12 @@ function getPathFromURLPosix(url) { return decodeURIComponent(pathname); } -function getPathFromURL(path) { - if (path == null || !path[searchParams] || - !path[searchParams][searchParams]) { - return path; - } +function fileURLToPath(path) { + if (typeof path === 'string') + path = new URL(path); + else if (path == null || !path[searchParams] || + !path[searchParams][searchParams]) + throw new ERR_INVALID_ARG_TYPE('path', ['string', 'URL'], path); if (path.protocol !== 'file:') throw new ERR_INVALID_URL_SCHEME('file'); return isWindows ? getPathFromURLWin32(path) : getPathFromURLPosix(path); @@ -1406,12 +1410,30 @@ function getPathFromURL(path) { // as this is the only character that won't be percent encoded by // default URL percent encoding when pathname is set. const percentRegEx = /%/g; -function getURLFromFilePath(filepath) { - const tmp = new URL('file://'); - if (filepath.includes('%')) - filepath = filepath.replace(percentRegEx, '%25'); - tmp.pathname = filepath; - return tmp; +const backslashRegEx = /\\/g; +function pathToFileURL(filepath) { + let resolved = path.resolve(filepath); + // path.resolve strips trailing slashes so we must add them back + const filePathLast = filepath.charCodeAt(filepath.length - 1); + if ((filePathLast === CHAR_FORWARD_SLASH || + isWindows && filePathLast === CHAR_BACKWARD_SLASH) && + resolved[resolved.length - 1] !== path.sep) + resolved += '/'; + const outURL = new URL('file://'); + if (resolved.includes('%')) + resolved = resolved.replace(percentRegEx, '%25'); + // in posix, "/" is a valid character in paths + if (!isWindows && resolved.includes('\\')) + resolved = resolved.replace(backslashRegEx, '%5C'); + outURL.pathname = resolved; + return outURL; +} + +function toPathIfFileURL(fileURLOrPath) { + if (fileURLOrPath == null || !fileURLOrPath[searchParams] || + !fileURLOrPath[searchParams][searchParams]) + return fileURLOrPath; + return fileURLToPath(fileURLOrPath); } function NativeURL(ctx) { @@ -1441,8 +1463,9 @@ setURLConstructor(constructUrl); module.exports = { toUSVString, - getPathFromURL, - getURLFromFilePath, + fileURLToPath, + pathToFileURL, + toPathIfFileURL, URL, URLSearchParams, domainToASCII, diff --git a/lib/internal/util.js b/lib/internal/util.js index a922276085f404..020677d8e6ed55 100644 --- a/lib/internal/util.js +++ b/lib/internal/util.js @@ -399,7 +399,7 @@ module.exports = { // Symbol used to provide a custom inspect function for an object as an // alternative to using 'inspect' - customInspectSymbol: Symbol('util.inspect.custom'), + customInspectSymbol: Symbol.for('nodejs.util.inspect.custom'), // Used by the buffer module to capture an internal reference to the // default isEncoding implementation, just in case userland overrides it. diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js new file mode 100644 index 00000000000000..104944eb19ef3a --- /dev/null +++ b/lib/internal/util/inspect.js @@ -0,0 +1,1100 @@ +'use strict'; + +const { internalBinding } = require('internal/bootstrap/loaders'); + +const { + getOwnNonIndexProperties, + getPromiseDetails, + getProxyDetails, + kPending, + kRejected, + previewEntries, + propertyFilter: { + ALL_PROPERTIES, + ONLY_ENUMERABLE + } +} = process.binding('util'); + +const { + customInspectSymbol, + deprecate, + isError, + join, + removeColors +} = require('internal/util'); + +const { + codes: { + ERR_INVALID_ARG_TYPE + }, + isStackOverflowError +} = require('internal/errors'); + +const types = internalBinding('types'); +Object.assign(types, require('internal/util/types')); +const { + isAnyArrayBuffer, + isArrayBuffer, + isArgumentsObject, + isBoxedPrimitive, + isDataView, + isExternal, + isMap, + isMapIterator, + isPromise, + isSet, + isSetIterator, + isWeakMap, + isWeakSet, + isRegExp, + isDate, + isTypedArray, + isStringObject, + isNumberObject, + isBooleanObject, + isBigIntObject, + isUint8Array, + isUint8ClampedArray, + isUint16Array, + isUint32Array, + isInt8Array, + isInt16Array, + isInt32Array, + isFloat32Array, + isFloat64Array, + isBigInt64Array, + isBigUint64Array +} = types; + +const ReflectApply = Reflect.apply; + +// This function is borrowed from the function with the same name on V8 Extras' +// `utils` object. V8 implements Reflect.apply very efficiently in conjunction +// with the spread syntax, such that no additional special case is needed for +// function calls w/o arguments. +// Refs: https://github.com/v8/v8/blob/d6ead37d265d7215cf9c5f768f279e21bd170212/src/js/prologue.js#L152-L156 +function uncurryThis(func) { + return (thisArg, ...args) => ReflectApply(func, thisArg, args); +} + +const propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable); +const regExpToString = uncurryThis(RegExp.prototype.toString); +const dateToISOString = uncurryThis(Date.prototype.toISOString); +const errorToString = uncurryThis(Error.prototype.toString); + +const bigIntValueOf = uncurryThis(BigInt.prototype.valueOf); +const booleanValueOf = uncurryThis(Boolean.prototype.valueOf); +const numberValueOf = uncurryThis(Number.prototype.valueOf); +const symbolValueOf = uncurryThis(Symbol.prototype.valueOf); +const stringValueOf = uncurryThis(String.prototype.valueOf); + +const setValues = uncurryThis(Set.prototype.values); +const mapEntries = uncurryThis(Map.prototype.entries); +const dateGetTime = uncurryThis(Date.prototype.getTime); +const hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty); + +const inspectDefaultOptions = Object.seal({ + showHidden: false, + depth: 2, + colors: false, + customInspect: true, + showProxy: false, + maxArrayLength: 100, + breakLength: 60, + compact: true, + sorted: false +}); + +const kObjectType = 0; +const kArrayType = 1; +const kArrayExtrasType = 2; + +/* eslint-disable no-control-regex */ +const strEscapeSequencesRegExp = /[\x00-\x1f\x27\x5c]/; +const strEscapeSequencesReplacer = /[\x00-\x1f\x27\x5c]/g; +/* eslint-enable no-control-regex */ + +const keyStrRegExp = /^[a-zA-Z_][a-zA-Z_0-9]*$/; +const numberRegExp = /^(0|[1-9][0-9]*)$/; + +const readableRegExps = {}; + +const kMinLineLength = 16; + +// Constants to map the iterator state. +const kWeak = 0; +const kIterator = 1; +const kMapEntries = 2; + +// Escaped special characters. Use empty strings to fill up unused entries. +const meta = [ + '\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', + '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', + '\\n', '\\u000b', '\\f', '\\r', '\\u000e', + '\\u000f', '\\u0010', '\\u0011', '\\u0012', '\\u0013', + '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', + '\\u0019', '\\u001a', '\\u001b', '\\u001c', '\\u001d', + '\\u001e', '\\u001f', '', '', '', + '', '', '', '', "\\'", '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '\\\\' +]; + +/** + * Echos the value of any input. Tries to print the value out + * in the best way possible given the different types. + * + * @param {any} value The value to print out. + * @param {Object} opts Optional options object that alters the output. + */ +/* Legacy: value, showHidden, depth, colors */ +function inspect(value, opts) { + // Default options + const ctx = { + budget: {}, + indentationLvl: 0, + seen: [], + stylize: stylizeNoColor, + showHidden: inspectDefaultOptions.showHidden, + depth: inspectDefaultOptions.depth, + colors: inspectDefaultOptions.colors, + customInspect: inspectDefaultOptions.customInspect, + showProxy: inspectDefaultOptions.showProxy, + // TODO(BridgeAR): Deprecate `maxArrayLength` and replace it with + // `maxEntries`. + maxArrayLength: inspectDefaultOptions.maxArrayLength, + breakLength: inspectDefaultOptions.breakLength, + compact: inspectDefaultOptions.compact, + sorted: inspectDefaultOptions.sorted + }; + // Legacy... + if (arguments.length > 2) { + if (arguments[2] !== undefined) { + ctx.depth = arguments[2]; + } + if (arguments.length > 3 && arguments[3] !== undefined) { + ctx.colors = arguments[3]; + } + } + // Set user-specified options + if (typeof opts === 'boolean') { + ctx.showHidden = opts; + } else if (opts) { + const optKeys = Object.keys(opts); + for (var i = 0; i < optKeys.length; i++) { + ctx[optKeys[i]] = opts[optKeys[i]]; + } + } + if (ctx.colors) ctx.stylize = stylizeWithColor; + if (ctx.maxArrayLength === null) ctx.maxArrayLength = Infinity; + return formatValue(ctx, value, ctx.depth); +} +inspect.custom = customInspectSymbol; + +Object.defineProperty(inspect, 'defaultOptions', { + get() { + return inspectDefaultOptions; + }, + set(options) { + if (options === null || typeof options !== 'object') { + throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); + } + return Object.assign(inspectDefaultOptions, options); + } +}); + +// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +inspect.colors = Object.assign(Object.create(null), { + 'bold': [1, 22], + 'italic': [3, 23], + 'underline': [4, 24], + 'inverse': [7, 27], + 'white': [37, 39], + 'grey': [90, 39], + 'black': [30, 39], + 'blue': [34, 39], + 'cyan': [36, 39], + 'green': [32, 39], + 'magenta': [35, 39], + 'red': [31, 39], + 'yellow': [33, 39] +}); + +// Don't use 'blue' not visible on cmd.exe +inspect.styles = Object.assign(Object.create(null), { + 'special': 'cyan', + 'number': 'yellow', + 'bigint': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'symbol': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' +}); + +const escapeFn = (str) => meta[str.charCodeAt(0)]; + +// Escape control characters, single quotes and the backslash. +// This is similar to JSON stringify escaping. +function strEscape(str) { + // Some magic numbers that worked out fine while benchmarking with v8 6.0 + if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) + return `'${str}'`; + if (str.length > 100) + return `'${str.replace(strEscapeSequencesReplacer, escapeFn)}'`; + let result = ''; + let last = 0; + for (var i = 0; i < str.length; i++) { + const point = str.charCodeAt(i); + if (point === 39 || point === 92 || point < 32) { + if (last === i) { + result += meta[point]; + } else { + result += `${str.slice(last, i)}${meta[point]}`; + } + last = i + 1; + } + } + if (last === 0) { + result = str; + } else if (last !== i) { + result += str.slice(last); + } + return `'${result}'`; +} + +function stylizeWithColor(str, styleType) { + const style = inspect.styles[styleType]; + if (style !== undefined) { + const color = inspect.colors[style]; + return `\u001b[${color[0]}m${str}\u001b[${color[1]}m`; + } + return str; +} + +function stylizeNoColor(str) { + return str; +} + +// Return a new empty array to push in the results of the default formatter. +function getEmptyFormatArray() { + return []; +} + +function getConstructorName(obj) { + while (obj) { + const descriptor = Object.getOwnPropertyDescriptor(obj, 'constructor'); + if (descriptor !== undefined && + typeof descriptor.value === 'function' && + descriptor.value.name !== '') { + return descriptor.value.name; + } + + obj = Object.getPrototypeOf(obj); + } + + return ''; +} + +function getPrefix(constructor, tag, fallback) { + if (constructor !== '') { + if (tag !== '' && constructor !== tag) { + return `${constructor} [${tag}] `; + } + return `${constructor} `; + } + + if (tag !== '') + return `[${tag}] `; + + if (fallback !== undefined) + return `${fallback} `; + + return ''; +} + +const getBoxedValue = formatPrimitive.bind(null, stylizeNoColor); + +// Look up the keys of the object. +function getKeys(value, showHidden) { + let keys; + const symbols = Object.getOwnPropertySymbols(value); + if (showHidden) { + keys = Object.getOwnPropertyNames(value); + if (symbols.length !== 0) + keys.push(...symbols); + } else { + // This might throw if `value` is a Module Namespace Object from an + // unevaluated module, but we don't want to perform the actual type + // check because it's expensive. + // TODO(devsnek): track https://github.com/tc39/ecma262/issues/1209 + // and modify this logic as needed. + try { + keys = Object.keys(value); + } catch (err) { + if (types.isNativeError(err) && + err.name === 'ReferenceError' && + types.isModuleNamespaceObject(value)) { + keys = Object.getOwnPropertyNames(value); + } else { + throw err; + } + } + if (symbols.length !== 0) { + keys.push(...symbols.filter((key) => propertyIsEnumerable(value, key))); + } + } + return keys; +} + +function formatProxy(ctx, proxy, recurseTimes) { + if (recurseTimes != null) { + if (recurseTimes < 0) + return ctx.stylize('Proxy [Array]', 'special'); + recurseTimes -= 1; + } + ctx.indentationLvl += 2; + const res = [ + formatValue(ctx, proxy[0], recurseTimes), + formatValue(ctx, proxy[1], recurseTimes) + ]; + ctx.indentationLvl -= 2; + const str = reduceToSingleString(ctx, res, '', ['[', ']']); + return `Proxy ${str}`; +} + +function findTypedConstructor(value) { + for (const [check, clazz] of [ + [isUint8Array, Uint8Array], + [isUint8ClampedArray, Uint8ClampedArray], + [isUint16Array, Uint16Array], + [isUint32Array, Uint32Array], + [isInt8Array, Int8Array], + [isInt16Array, Int16Array], + [isInt32Array, Int32Array], + [isFloat32Array, Float32Array], + [isFloat64Array, Float64Array], + [isBigInt64Array, BigInt64Array], + [isBigUint64Array, BigUint64Array] + ]) { + if (check(value)) { + return clazz; + } + } +} + +function noPrototypeIterator(ctx, value, recurseTimes) { + let newVal; + // TODO: Create a Subclass in case there's no prototype and show + // `null-prototype`. + if (isSet(value)) { + const clazz = Object.getPrototypeOf(value) || Set; + newVal = new clazz(setValues(value)); + } else if (isMap(value)) { + const clazz = Object.getPrototypeOf(value) || Map; + newVal = new clazz(mapEntries(value)); + } else if (Array.isArray(value)) { + const clazz = Object.getPrototypeOf(value) || Array; + newVal = new clazz(value.length || 0); + } else if (isTypedArray(value)) { + const clazz = findTypedConstructor(value) || Uint8Array; + newVal = new clazz(value); + } + if (newVal) { + Object.defineProperties(newVal, Object.getOwnPropertyDescriptors(value)); + return formatValue(ctx, newVal, recurseTimes); + } +} + +// Note: using `formatValue` directly requires the indentation level to be +// corrected by setting `ctx.indentationLvL += diff` and then to decrease the +// value afterwards again. +function formatValue(ctx, value, recurseTimes) { + // Primitive types cannot have properties + if (typeof value !== 'object' && typeof value !== 'function') { + return formatPrimitive(ctx.stylize, value, ctx); + } + if (value === null) { + return ctx.stylize('null', 'null'); + } + + if (ctx.showProxy) { + const proxy = getProxyDetails(value); + if (proxy !== undefined) { + return formatProxy(ctx, proxy, recurseTimes); + } + } + + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect) { + let maybeCustom = value[customInspectSymbol]; + + if (!maybeCustom && value.inspect !== inspect && + typeof value.inspect === 'function') { + maybeCustom = deprecate( + value.inspect, + 'Custom inspection function on Objects via .inspect() is deprecated', + 'DEP0079' + ); + } + + if (typeof maybeCustom === 'function' && + // Filter out the util module, its inspect function is special + maybeCustom !== inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + const ret = maybeCustom.call(value, recurseTimes, ctx); + + // If the custom inspection method returned `this`, don't go into + // infinite recursion. + if (ret !== value) { + if (typeof ret !== 'string') { + return formatValue(ctx, ret, recurseTimes); + } + return ret; + } + } + } + + // Using an array here is actually better for the average case than using + // a Set. `seen` will only check for the depth and will never grow too large. + if (ctx.seen.indexOf(value) !== -1) + return ctx.stylize('[Circular]', 'special'); + + return formatRaw(ctx, value, recurseTimes); +} + +function formatRaw(ctx, value, recurseTimes) { + let keys; + + const constructor = getConstructorName(value); + let tag = value[Symbol.toStringTag]; + if (typeof tag !== 'string') + tag = ''; + let base = ''; + let formatter = getEmptyFormatArray; + let braces; + let noIterator = true; + let i = 0; + let skip = false; + const filter = ctx.showHidden ? ALL_PROPERTIES : ONLY_ENUMERABLE; + + let extrasType = kObjectType; + + // Iterators and the rest are split to reduce checks + if (value[Symbol.iterator]) { + noIterator = false; + if (Array.isArray(value)) { + keys = getOwnNonIndexProperties(value, filter); + // Only set the constructor for non ordinary ("Array [...]") arrays. + const prefix = getPrefix(constructor, tag); + braces = [`${prefix === 'Array ' ? '' : prefix}[`, ']']; + if (value.length === 0 && keys.length === 0) + return `${braces[0]}]`; + extrasType = kArrayExtrasType; + formatter = formatArray; + } else if (isSet(value)) { + keys = getKeys(value, ctx.showHidden); + const prefix = getPrefix(constructor, tag); + if (value.size === 0 && keys.length === 0) + return `${prefix}{}`; + braces = [`${prefix}{`, '}']; + formatter = formatSet; + } else if (isMap(value)) { + keys = getKeys(value, ctx.showHidden); + const prefix = getPrefix(constructor, tag); + if (value.size === 0 && keys.length === 0) + return `${prefix}{}`; + braces = [`${prefix}{`, '}']; + formatter = formatMap; + } else if (isTypedArray(value)) { + keys = getOwnNonIndexProperties(value, filter); + braces = [`${getPrefix(constructor, tag)}[`, ']']; + if (value.length === 0 && keys.length === 0 && !ctx.showHidden) + return `${braces[0]}]`; + formatter = formatTypedArray; + extrasType = kArrayExtrasType; + } else if (isMapIterator(value)) { + keys = getKeys(value, ctx.showHidden); + braces = [`[${tag}] {`, '}']; + formatter = formatMapIterator; + } else if (isSetIterator(value)) { + keys = getKeys(value, ctx.showHidden); + braces = [`[${tag}] {`, '}']; + formatter = formatSetIterator; + } else { + noIterator = true; + } + } + if (noIterator) { + keys = getKeys(value, ctx.showHidden); + braces = ['{', '}']; + if (constructor === 'Object') { + if (isArgumentsObject(value)) { + if (keys.length === 0) + return '[Arguments] {}'; + braces[0] = '[Arguments] {'; + } else if (tag !== '') { + braces[0] = `${getPrefix(constructor, tag)}{`; + if (keys.length === 0) { + return `${braces[0]}}`; + } + } else if (keys.length === 0) { + return '{}'; + } + } else if (typeof value === 'function') { + const type = constructor || tag || 'Function'; + const name = `${type}${value.name ? `: ${value.name}` : ''}`; + if (keys.length === 0) + return ctx.stylize(`[${name}]`, 'special'); + base = `[${name}]`; + } else if (isRegExp(value)) { + // Make RegExps say that they are RegExps + if (keys.length === 0 || recurseTimes < 0) + return ctx.stylize(regExpToString(value), 'regexp'); + base = `${regExpToString(value)}`; + } else if (isDate(value)) { + // Make dates with properties first say the date + if (keys.length === 0) { + if (Number.isNaN(dateGetTime(value))) + return ctx.stylize(String(value), 'date'); + return ctx.stylize(dateToISOString(value), 'date'); + } + base = dateToISOString(value); + } else if (isError(value)) { + // Make error with message first say the error + base = formatError(value); + // Wrap the error in brackets in case it has no stack trace. + const stackStart = base.indexOf('\n at'); + if (stackStart === -1) { + base = `[${base}]`; + } + // The message and the stack have to be indented as well! + if (ctx.indentationLvl !== 0) { + const indentation = ' '.repeat(ctx.indentationLvl); + base = formatError(value).replace(/\n/g, `\n${indentation}`); + } + if (keys.length === 0) + return base; + + if (ctx.compact === false && stackStart !== -1) { + braces[0] += `${base.slice(stackStart)}`; + base = `[${base.slice(0, stackStart)}]`; + } + } else if (isAnyArrayBuffer(value)) { + let prefix = getPrefix(constructor, tag); + if (prefix === '') { + prefix = isArrayBuffer(value) ? 'ArrayBuffer ' : 'SharedArrayBuffer '; + } + // Fast path for ArrayBuffer and SharedArrayBuffer. + // Can't do the same for DataView because it has a non-primitive + // .buffer property that we need to recurse for. + if (keys.length === 0) + return prefix + + `{ byteLength: ${formatNumber(ctx.stylize, value.byteLength)} }`; + braces[0] = `${prefix}{`; + keys.unshift('byteLength'); + } else if (isDataView(value)) { + braces[0] = `${getPrefix(constructor, tag, 'DataView')}{`; + // .buffer goes last, it's not a primitive like the others. + keys.unshift('byteLength', 'byteOffset', 'buffer'); + } else if (isPromise(value)) { + braces[0] = `${getPrefix(constructor, tag, 'Promise')}{`; + formatter = formatPromise; + } else if (isWeakSet(value)) { + braces[0] = `${getPrefix(constructor, tag, 'WeakSet')}{`; + formatter = ctx.showHidden ? formatWeakSet : formatWeakCollection; + } else if (isWeakMap(value)) { + braces[0] = `${getPrefix(constructor, tag, 'WeakMap')}{`; + formatter = ctx.showHidden ? formatWeakMap : formatWeakCollection; + } else if (types.isModuleNamespaceObject(value)) { + braces[0] = `[${tag}] {`; + formatter = formatNamespaceObject; + skip = true; + } else if (isBoxedPrimitive(value)) { + let type; + if (isNumberObject(value)) { + base = `[Number: ${getBoxedValue(numberValueOf(value))}]`; + type = 'number'; + } else if (isStringObject(value)) { + base = `[String: ${getBoxedValue(stringValueOf(value), ctx)}]`; + type = 'string'; + // For boxed Strings, we have to remove the 0-n indexed entries, + // since they just noisy up the output and are redundant + // Make boxed primitive Strings look like such + keys = keys.slice(value.length); + } else if (isBooleanObject(value)) { + base = `[Boolean: ${getBoxedValue(booleanValueOf(value))}]`; + type = 'boolean'; + } else if (isBigIntObject(value)) { + base = `[BigInt: ${getBoxedValue(bigIntValueOf(value))}]`; + type = 'bigint'; + } else { + base = `[Symbol: ${getBoxedValue(symbolValueOf(value))}]`; + type = 'symbol'; + } + if (keys.length === 0) { + return ctx.stylize(base, type); + } + } else { + // The input prototype got manipulated. Special handle these. We have to + // rebuild the information so we are able to display everything. + const specialIterator = noPrototypeIterator(ctx, value, recurseTimes); + if (specialIterator) { + return specialIterator; + } + if (isMapIterator(value)) { + braces = [`[${tag || 'Map Iterator'}] {`, '}']; + formatter = formatMapIterator; + } else if (isSetIterator(value)) { + braces = [`[${tag || 'Set Iterator'}] {`, '}']; + formatter = formatSetIterator; + // Handle other regular objects again. + } else if (keys.length === 0) { + if (isExternal(value)) + return ctx.stylize('[External]', 'special'); + return `${getPrefix(constructor, tag)}{}`; + } else { + braces[0] = `${getPrefix(constructor, tag)}{`; + } + } + } + + if (recurseTimes != null) { + if (recurseTimes < 0) + return ctx.stylize(`[${constructor || tag || 'Object'}]`, 'special'); + recurseTimes -= 1; + } + + ctx.seen.push(value); + let output; + const indentationLvl = ctx.indentationLvl; + try { + output = formatter(ctx, value, recurseTimes, keys); + if (skip === false) { + for (i = 0; i < keys.length; i++) { + output.push( + formatProperty(ctx, value, recurseTimes, keys[i], extrasType)); + } + } + } catch (err) { + return handleMaxCallStackSize(ctx, err, constructor, tag, indentationLvl); + } + ctx.seen.pop(); + + if (ctx.sorted) { + const comparator = ctx.sorted === true ? undefined : ctx.sorted; + if (extrasType === kObjectType) { + output = output.sort(comparator); + } else if (keys.length > 1) { + const sorted = output.slice(output.length - keys.length).sort(comparator); + output.splice(output.length - keys.length, keys.length, ...sorted); + } + } + + return reduceToSingleString(ctx, output, base, braces); +} + +function handleMaxCallStackSize(ctx, err, constructor, tag, indentationLvl) { + if (isStackOverflowError(err)) { + ctx.seen.pop(); + ctx.indentationLvl = indentationLvl; + return ctx.stylize( + `[${constructor || tag || 'Object'}: Inspection interrupted ` + + 'prematurely. Maximum call stack size exceeded.]', + 'special' + ); + } + throw err; +} + +function formatNumber(fn, value) { + // Format -0 as '-0'. Checking `value === -0` won't distinguish 0 from -0. + if (Object.is(value, -0)) + return fn('-0', 'number'); + return fn(`${value}`, 'number'); +} + +function formatPrimitive(fn, value, ctx) { + if (typeof value === 'string') { + if (ctx.compact === false && + ctx.indentationLvl + value.length > ctx.breakLength && + value.length > kMinLineLength) { + // eslint-disable-next-line max-len + const minLineLength = Math.max(ctx.breakLength - ctx.indentationLvl, kMinLineLength); + // eslint-disable-next-line max-len + const averageLineLength = Math.ceil(value.length / Math.ceil(value.length / minLineLength)); + const divisor = Math.max(averageLineLength, kMinLineLength); + let res = ''; + if (readableRegExps[divisor] === undefined) { + // Build a new RegExp that naturally breaks text into multiple lines. + // + // Rules + // 1. Greedy match all text up the max line length that ends with a + // whitespace or the end of the string. + // 2. If none matches, non-greedy match any text up to a whitespace or + // the end of the string. + // + // eslint-disable-next-line max-len, node-core/no-unescaped-regexp-dot + readableRegExps[divisor] = new RegExp(`(.|\\n){1,${divisor}}(\\s|$)|(\\n|.)+?(\\s|$)`, 'gm'); + } + const matches = value.match(readableRegExps[divisor]); + if (matches.length > 1) { + const indent = ' '.repeat(ctx.indentationLvl); + res += `${fn(strEscape(matches[0]), 'string')} +\n`; + for (var i = 1; i < matches.length - 1; i++) { + res += `${indent} ${fn(strEscape(matches[i]), 'string')} +\n`; + } + res += `${indent} ${fn(strEscape(matches[i]), 'string')}`; + return res; + } + } + return fn(strEscape(value), 'string'); + } + if (typeof value === 'number') + return formatNumber(fn, value); + // eslint-disable-next-line valid-typeof + if (typeof value === 'bigint') + return fn(`${value}n`, 'bigint'); + if (typeof value === 'boolean') + return fn(`${value}`, 'boolean'); + if (typeof value === 'undefined') + return fn('undefined', 'undefined'); + // es6 symbol primitive + return fn(value.toString(), 'symbol'); +} + +function formatError(value) { + return value.stack || errorToString(value); +} + +function formatNamespaceObject(ctx, value, recurseTimes, keys) { + const len = keys.length; + const output = new Array(len); + for (var i = 0; i < len; i++) { + try { + output[i] = formatProperty(ctx, value, recurseTimes, keys[i], + kObjectType); + } catch (err) { + if (!(types.isNativeError(err) && err.name === 'ReferenceError')) { + throw err; + } + // Use the existing functionality. This makes sure the indentation and + // line breaks are always correct. Otherwise it is very difficult to keep + // this aligned, even though this is a hacky way of dealing with this. + const tmp = { [keys[i]]: '' }; + output[i] = formatProperty(ctx, tmp, recurseTimes, keys[i], kObjectType); + const pos = output[i].lastIndexOf(' '); + // We have to find the last whitespace and have to replace that value as + // it will be visualized as a regular string. + output[i] = output[i].slice(0, pos + 1) + + ctx.stylize('', 'special'); + } + } + return output; +} + +// The array is sparse and/or has extra keys +function formatSpecialArray(ctx, value, recurseTimes, maxLength, output, i) { + const keys = Object.keys(value); + let index = i; + for (; i < keys.length && output.length < maxLength; i++) { + const key = keys[i]; + const tmp = +key; + // Arrays can only have up to 2^32 - 1 entries + if (tmp > 2 ** 32 - 2) { + break; + } + if (`${index}` !== key) { + if (!numberRegExp.test(key)) { + break; + } + const emptyItems = tmp - index; + const ending = emptyItems > 1 ? 's' : ''; + const message = `<${emptyItems} empty item${ending}>`; + output.push(ctx.stylize(message, 'undefined')); + index = tmp; + if (output.length === maxLength) { + break; + } + } + output.push(formatProperty(ctx, value, recurseTimes, key, kArrayType)); + index++; + } + const remaining = value.length - index; + if (output.length !== maxLength) { + if (remaining > 0) { + const ending = remaining > 1 ? 's' : ''; + const message = `<${remaining} empty item${ending}>`; + output.push(ctx.stylize(message, 'undefined')); + } + } else if (remaining > 0) { + output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); + } + return output; +} + +function formatArray(ctx, value, recurseTimes) { + const valLen = value.length; + const len = Math.min(Math.max(0, ctx.maxArrayLength), valLen); + + const remaining = valLen - len; + const output = []; + for (var i = 0; i < len; i++) { + // Special handle sparse arrays. + if (!hasOwnProperty(value, i)) { + return formatSpecialArray(ctx, value, recurseTimes, len, output, i); + } + output.push(formatProperty(ctx, value, recurseTimes, i, kArrayType)); + } + if (remaining > 0) + output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); + return output; +} + +function formatTypedArray(ctx, value, recurseTimes) { + const maxLength = Math.min(Math.max(0, ctx.maxArrayLength), value.length); + const remaining = value.length - maxLength; + const output = new Array(maxLength); + for (var i = 0; i < maxLength; ++i) + output[i] = formatNumber(ctx.stylize, value[i]); + if (remaining > 0) + output[i] = `... ${remaining} more item${remaining > 1 ? 's' : ''}`; + if (ctx.showHidden) { + // .buffer goes last, it's not a primitive like the others. + ctx.indentationLvl += 2; + for (const key of [ + 'BYTES_PER_ELEMENT', + 'length', + 'byteLength', + 'byteOffset', + 'buffer' + ]) { + const str = formatValue(ctx, value[key], recurseTimes); + output.push(`[${key}]: ${str}`); + } + ctx.indentationLvl -= 2; + } + return output; +} + +function formatSet(ctx, value, recurseTimes) { + const output = []; + ctx.indentationLvl += 2; + for (const v of value) { + output.push(formatValue(ctx, v, recurseTimes)); + } + ctx.indentationLvl -= 2; + // With `showHidden`, `length` will display as a hidden property for + // arrays. For consistency's sake, do the same for `size`, even though this + // property isn't selected by Object.getOwnPropertyNames(). + if (ctx.showHidden) + output.push(`[size]: ${ctx.stylize(`${value.size}`, 'number')}`); + return output; +} + +function formatMap(ctx, value, recurseTimes) { + const output = []; + ctx.indentationLvl += 2; + for (const [k, v] of value) { + output.push(`${formatValue(ctx, k, recurseTimes)} => ` + + formatValue(ctx, v, recurseTimes)); + } + ctx.indentationLvl -= 2; + // See comment in formatSet + if (ctx.showHidden) + output.push(`[size]: ${ctx.stylize(`${value.size}`, 'number')}`); + return output; +} + +function formatSetIterInner(ctx, recurseTimes, entries, state) { + const maxArrayLength = Math.max(ctx.maxArrayLength, 0); + const maxLength = Math.min(maxArrayLength, entries.length); + let output = new Array(maxLength); + ctx.indentationLvl += 2; + for (var i = 0; i < maxLength; i++) { + output[i] = formatValue(ctx, entries[i], recurseTimes); + } + ctx.indentationLvl -= 2; + if (state === kWeak) { + // Sort all entries to have a halfway reliable output (if more entries than + // retrieved ones exist, we can not reliably return the same output). + output = output.sort(); + } + const remaining = entries.length - maxLength; + if (remaining > 0) { + output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); + } + return output; +} + +function formatMapIterInner(ctx, recurseTimes, entries, state) { + const maxArrayLength = Math.max(ctx.maxArrayLength, 0); + // Entries exist as [key1, val1, key2, val2, ...] + const len = entries.length / 2; + const remaining = len - maxArrayLength; + const maxLength = Math.min(maxArrayLength, len); + let output = new Array(maxLength); + let start = ''; + let end = ''; + let middle = ' => '; + let i = 0; + if (state === kMapEntries) { + start = '[ '; + end = ' ]'; + middle = ', '; + } + ctx.indentationLvl += 2; + for (; i < maxLength; i++) { + const pos = i * 2; + output[i] = `${start}${formatValue(ctx, entries[pos], recurseTimes)}` + + `${middle}${formatValue(ctx, entries[pos + 1], recurseTimes)}${end}`; + } + ctx.indentationLvl -= 2; + if (state === kWeak) { + // Sort all entries to have a halfway reliable output (if more entries + // than retrieved ones exist, we can not reliably return the same output). + output = output.sort(); + } + if (remaining > 0) { + output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); + } + return output; +} + +function formatWeakCollection(ctx) { + return [ctx.stylize('[items unknown]', 'special')]; +} + +function formatWeakSet(ctx, value, recurseTimes) { + const entries = previewEntries(value); + return formatSetIterInner(ctx, recurseTimes, entries, kWeak); +} + +function formatWeakMap(ctx, value, recurseTimes) { + const entries = previewEntries(value); + return formatMapIterInner(ctx, recurseTimes, entries, kWeak); +} + +function formatSetIterator(ctx, value, recurseTimes) { + const entries = previewEntries(value); + return formatSetIterInner(ctx, recurseTimes, entries, kIterator); +} + +function formatMapIterator(ctx, value, recurseTimes) { + const [entries, isKeyValue] = previewEntries(value, true); + if (isKeyValue) { + return formatMapIterInner(ctx, recurseTimes, entries, kMapEntries); + } + + return formatSetIterInner(ctx, recurseTimes, entries, kIterator); +} + +function formatPromise(ctx, value, recurseTimes) { + let output; + const [state, result] = getPromiseDetails(value); + if (state === kPending) { + output = [ctx.stylize('', 'special')]; + } else { + // Using `formatValue` is correct here without the need to fix the + // indentation level. + ctx.indentationLvl += 2; + const str = formatValue(ctx, result, recurseTimes); + ctx.indentationLvl -= 2; + output = [ + state === kRejected ? + `${ctx.stylize('', 'special')} ${str}` : + str + ]; + } + return output; +} + +function formatProperty(ctx, value, recurseTimes, key, type) { + let name, str; + let extra = ' '; + const desc = Object.getOwnPropertyDescriptor(value, key) || + { value: value[key], enumerable: true }; + if (desc.value !== undefined) { + const diff = (type !== kObjectType || ctx.compact === false) ? 2 : 3; + ctx.indentationLvl += diff; + str = formatValue(ctx, desc.value, recurseTimes); + if (diff === 3) { + const len = ctx.colors ? removeColors(str).length : str.length; + if (ctx.breakLength < len) { + extra = `\n${' '.repeat(ctx.indentationLvl)}`; + } + } + ctx.indentationLvl -= diff; + } else if (desc.get !== undefined) { + if (desc.set !== undefined) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else if (desc.set !== undefined) { + str = ctx.stylize('[Setter]', 'special'); + } else { + str = ctx.stylize('undefined', 'undefined'); + } + if (type === kArrayType) { + return str; + } + if (typeof key === 'symbol') { + const tmp = key.toString().replace(strEscapeSequencesReplacer, escapeFn); + name = `[${ctx.stylize(tmp, 'symbol')}]`; + } else if (desc.enumerable === false) { + name = `[${key.replace(strEscapeSequencesReplacer, escapeFn)}]`; + } else if (keyStrRegExp.test(key)) { + name = ctx.stylize(key, 'name'); + } else { + name = ctx.stylize(strEscape(key), 'string'); + } + return `${name}:${extra}${str}`; +} + +function reduceToSingleString(ctx, output, base, braces) { + const breakLength = ctx.breakLength; + let i = 0; + if (ctx.compact === false) { + const indentation = ' '.repeat(ctx.indentationLvl); + let res = `${base ? `${base} ` : ''}${braces[0]}\n${indentation} `; + for (; i < output.length - 1; i++) { + res += `${output[i]},\n${indentation} `; + } + res += `${output[i]}\n${indentation}${braces[1]}`; + return res; + } + if (output.length * 2 <= breakLength) { + let length = 0; + for (; i < output.length && length <= breakLength; i++) { + if (ctx.colors) { + length += removeColors(output[i]).length + 1; + } else { + length += output[i].length + 1; + } + } + if (length <= breakLength) + return `${braces[0]}${base ? ` ${base}` : ''} ${join(output, ', ')} ` + + braces[1]; + } + // If the opening "brace" is too large, like in the case of "Set {", + // we need to force the first item to be on the next line or the + // items will not line up correctly. + const indentation = ' '.repeat(ctx.indentationLvl); + const ln = base === '' && braces[0].length === 1 ? + ' ' : `${base ? ` ${base}` : ''}\n${indentation} `; + const str = join(output, `,\n${indentation} `); + return `${braces[0]}${ln}${str} ${braces[1]}`; +} + +module.exports = { + inspect +}; diff --git a/lib/internal/util/inspector.js b/lib/internal/util/inspector.js index 3dd73415ded862..634d3302333584 100644 --- a/lib/internal/util/inspector.js +++ b/lib/internal/util/inspector.js @@ -1,8 +1,6 @@ 'use strict'; -// TODO(addaleax): Figure out how to integrate the inspector with workers. -const hasInspector = process.config.variables.v8_enable_inspector === 1 && - require('internal/worker').isMainThread; +const hasInspector = process.config.variables.v8_enable_inspector === 1; const inspector = hasInspector ? require('inspector') : undefined; let session; diff --git a/lib/internal/worker.js b/lib/internal/worker.js index 402fc30b591d2d..2cffb77e521978 100644 --- a/lib/internal/worker.js +++ b/lib/internal/worker.js @@ -14,11 +14,13 @@ const { const { internalBinding } = require('internal/bootstrap/loaders'); const { MessagePort, MessageChannel } = internalBinding('messaging'); -const { handle_onclose } = internalBinding('symbols'); +const { + handle_onclose: handleOnCloseSymbol, + oninit: onInitSymbol +} = internalBinding('symbols'); const { clearAsyncIdStack } = require('internal/async_hooks'); const { serializeError, deserializeError } = require('internal/error-serdes'); - -util.inherits(MessagePort, EventEmitter); +const { pathToFileURL } = require('url'); const { Worker: WorkerImpl, @@ -56,6 +58,24 @@ const messageTypes = { LOAD_SCRIPT: 'loadScript' }; +// We have to mess with the MessagePort prototype a bit, so that a) we can make +// it inherit from EventEmitter, even though it is a C++ class, and b) we do +// not provide methods that are not present in the Browser and not documented +// on our side (e.g. hasRef). +// Save a copy of the original set of methods as a shallow clone. +const MessagePortPrototype = Object.create( + Object.getPrototypeOf(MessagePort.prototype), + Object.getOwnPropertyDescriptors(MessagePort.prototype)); +// Set up the new inheritance chain. +Object.setPrototypeOf(MessagePort, EventEmitter); +Object.setPrototypeOf(MessagePort.prototype, EventEmitter.prototype); +// Finally, purge methods we don't want to be public. +delete MessagePort.prototype.stop; +delete MessagePort.prototype.drain; +delete MessagePort.prototype.hasRef; +MessagePort.prototype.ref = MessagePortPrototype.ref; +MessagePort.prototype.unref = MessagePortPrototype.unref; + // A communication channel consisting of a handle (that wraps around an // uv_async_t) which can receive information from other threads and emits // .onmessage events, and a function used for sending data to a MessagePort @@ -79,10 +99,10 @@ Object.defineProperty(MessagePort.prototype, 'onmessage', { this[kOnMessageListener] = value; if (typeof value === 'function') { this.ref(); - this.start(); + MessagePortPrototype.start.call(this); } else { this.unref(); - this.stop(); + MessagePortPrototype.stop.call(this); } } }); @@ -92,7 +112,7 @@ function oninit() { setupPortReferencing(this, this, 'message'); } -Object.defineProperty(MessagePort.prototype, 'oninit', { +Object.defineProperty(MessagePort.prototype, onInitSymbol, { enumerable: true, writable: false, value: oninit @@ -109,22 +129,18 @@ function onclose() { this.emit('close'); } -Object.defineProperty(MessagePort.prototype, handle_onclose, { +Object.defineProperty(MessagePort.prototype, handleOnCloseSymbol, { enumerable: false, writable: false, value: onclose }); -const originalClose = MessagePort.prototype.close; MessagePort.prototype.close = function(cb) { if (typeof cb === 'function') this.once('close', cb); - originalClose.call(this); + MessagePortPrototype.close.call(this); }; -const drainMessagePort = MessagePort.prototype.drain; -delete MessagePort.prototype.drain; - Object.defineProperty(MessagePort.prototype, util.inspect.custom, { enumerable: false, writable: false, @@ -133,7 +149,7 @@ Object.defineProperty(MessagePort.prototype, util.inspect.custom, { try { // This may throw when `this` does not refer to a native object, // e.g. when accessing the prototype directly. - ref = this.hasRef(); + ref = MessagePortPrototype.hasRef.call(this); } catch { return this; } return Object.assign(Object.create(MessagePort.prototype), ref === undefined ? { @@ -155,12 +171,12 @@ function setupPortReferencing(port, eventEmitter, eventName) { eventEmitter.on('newListener', (name) => { if (name === eventName && eventEmitter.listenerCount(eventName) === 0) { port.ref(); - port.start(); + MessagePortPrototype.start.call(port); } }); eventEmitter.on('removeListener', (name) => { if (name === eventName && eventEmitter.listenerCount(eventName) === 0) { - port.stop(); + MessagePortPrototype.stop.call(port); port.unref(); } }); @@ -257,8 +273,9 @@ class Worker extends EventEmitter { } } + const url = options.eval ? null : pathToFileURL(filename); // Set up the C++ handle for the worker, as well as some internal wiring. - this[kHandle] = new WorkerImpl(); + this[kHandle] = new WorkerImpl(url); this[kHandle].onexit = (code) => this[kOnExit](code); this[kPort] = this[kHandle].messagePort; this[kPort].on('message', (data) => this[kOnMessage](data)); @@ -301,7 +318,7 @@ class Worker extends EventEmitter { [kOnExit](code) { debug(`[${threadId}] hears end event for Worker ${this.threadId}`); - drainMessagePort.call(this[kPublicPort]); + MessagePortPrototype.drain.call(this[kPublicPort]); this[kDispose](); this.emit('exit', code); this.removeAllListeners(); diff --git a/lib/net.js b/lib/net.js index df87f128cbe6fd..03f52e2c4aabbb 100644 --- a/lib/net.js +++ b/lib/net.js @@ -151,7 +151,7 @@ function connect(...args) { socket.setTimeout(options.timeout); } - return Socket.prototype.connect.call(socket, normalized); + return socket.connect(normalized); } diff --git a/lib/repl.js b/lib/repl.js index a0cf2c1dd086ea..46f81a02f0c5d5 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -345,11 +345,6 @@ function REPLServer(prompt, } catch (e) { err = e; - if (err && err.code === 'ERR_SCRIPT_EXECUTION_INTERRUPTED') { - // The stack trace for this case is not very useful anyway. - Object.defineProperty(err, 'stack', { value: '' }); - } - if (process.domain) { debug('not recoverable, send to domain'); process.domain.emit('error', err); @@ -365,7 +360,11 @@ function REPLServer(prompt, if (self.breakEvalOnSigint) { const interrupt = new Promise((resolve, reject) => { sigintListener = () => { - reject(new ERR_SCRIPT_EXECUTION_INTERRUPTED()); + const tmp = Error.stackTraceLimit; + Error.stackTraceLimit = 0; + const err = new ERR_SCRIPT_EXECUTION_INTERRUPTED(); + Error.stackTraceLimit = tmp; + reject(err); }; prioritizedSigintQueue.add(sigintListener); }); @@ -384,11 +383,6 @@ function REPLServer(prompt, // Remove prioritized SIGINT listener if it was not called. prioritizedSigintQueue.delete(sigintListener); - if (err.code === 'ERR_SCRIPT_EXECUTION_INTERRUPTED') { - // The stack trace for this case is not very useful anyway. - Object.defineProperty(err, 'stack', { value: '' }); - } - unpause(); if (err && process.domain) { debug('not recoverable, send to domain'); @@ -410,29 +404,50 @@ function REPLServer(prompt, self._domain.on('error', function debugDomainError(e) { debug('domain error'); - const top = replMap.get(self); - const pstrace = Error.prepareStackTrace; - Error.prepareStackTrace = prepareStackTrace(pstrace); - if (typeof e === 'object') + let errStack = ''; + + if (typeof e === 'object' && e !== null) { + const pstrace = Error.prepareStackTrace; + Error.prepareStackTrace = prepareStackTrace(pstrace); internalUtil.decorateErrorStack(e); - Error.prepareStackTrace = pstrace; - const isError = internalUtil.isError(e); - if (!self.underscoreErrAssigned) - self.lastError = e; - if (e instanceof SyntaxError && e.stack) { - // remove repl:line-number and stack trace - e.stack = e.stack - .replace(/^repl:\d+\r?\n/, '') - .replace(/^\s+at\s.*\n?/gm, ''); - } else if (isError && self.replMode === exports.REPL_MODE_STRICT) { - e.stack = e.stack.replace(/(\s+at\s+repl:)(\d+)/, - (_, pre, line) => pre + (line - 1)); + Error.prepareStackTrace = pstrace; + + if (e.domainThrown) { + delete e.domain; + delete e.domainThrown; + } + + if (internalUtil.isError(e)) { + if (e.stack) { + if (e.name === 'SyntaxError') { + // Remove stack trace. + e.stack = e.stack + .replace(/^repl:\d+\r?\n/, '') + .replace(/^\s+at\s.*\n?/gm, ''); + } else if (self.replMode === exports.REPL_MODE_STRICT) { + e.stack = e.stack.replace(/(\s+at\s+repl:)(\d+)/, + (_, pre, line) => pre + (line - 1)); + } + } + errStack = util.inspect(e); + + // Remove one line error braces to keep the old style in place. + if (errStack[errStack.length - 1] === ']') { + errStack = errStack.slice(1, -1); + } + } } - if (isError && e.stack) { - top.outputStream.write(`${e.stack}\n`); - } else { - top.outputStream.write(`Thrown: ${String(e)}\n`); + + if (errStack === '') { + errStack = `Thrown: ${util.inspect(e)}`; } + + if (!self.underscoreErrAssigned) { + self.lastError = e; + } + + const top = replMap.get(self); + top.outputStream.write(`${errStack}\n`); top.clearBufferedCommand(); top.lines.level = []; top.displayPrompt(); diff --git a/lib/timers.js b/lib/timers.js index 55b6b53c5c8fd5..784a0051e8dbd4 100644 --- a/lib/timers.js +++ b/lib/timers.js @@ -206,6 +206,17 @@ function TimersList(msecs, unrefed) { timer.start(msecs); } +// Make sure the linked list only shows the minimal necessary information. +TimersList.prototype[util.inspect.custom] = function(_, options) { + return util.inspect(this, { + ...options, + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + }); +}; + function processTimers(now) { if (this[owner_symbol]) return unrefdHandle(this[owner_symbol], now); diff --git a/lib/tty.js b/lib/tty.js index b36adf2534c326..fb0499e6e3101d 100644 --- a/lib/tty.js +++ b/lib/tty.js @@ -63,8 +63,13 @@ inherits(ReadStream, net.Socket); ReadStream.prototype.setRawMode = function(flag) { flag = !!flag; - this._handle.setRawMode(flag); + const err = this._handle.setRawMode(flag); + if (err) { + this.emit('error', errors.errnoException(err, 'setRawMode')); + return this; + } this.isRaw = flag; + return this; }; function WriteStream(fd) { diff --git a/lib/url.js b/lib/url.js index 3a2c3c01ea1f30..ba2033b4e533aa 100644 --- a/lib/url.js +++ b/lib/url.js @@ -42,6 +42,8 @@ const { domainToUnicode, formatSymbol, encodeStr, + pathToFileURL, + fileURLToPath } = require('internal/url'); // Original url.parse() API @@ -966,5 +968,9 @@ module.exports = { URL, URLSearchParams, domainToASCII, - domainToUnicode + domainToUnicode, + + // Utilities + pathToFileURL, + fileURLToPath }; diff --git a/lib/util.js b/lib/util.js index 94bde6e65ee055..bcea94dc607ab5 100644 --- a/lib/util.js +++ b/lib/util.js @@ -22,6 +22,7 @@ 'use strict'; const errors = require('internal/errors'); +const { inspect } = require('internal/util/inspect'); const { ERR_FALSY_VALUE_REJECTION, ERR_INVALID_ARG_TYPE, @@ -31,165 +32,24 @@ const { validateNumber } = require('internal/validators'); const { TextDecoder, TextEncoder } = require('internal/encoding'); const { isBuffer } = require('buffer').Buffer; -const { - getPromiseDetails, - getProxyDetails, - kPending, - kRejected, - previewEntries -} = process.binding('util'); - const { internalBinding } = require('internal/bootstrap/loaders'); const types = internalBinding('types'); Object.assign(types, require('internal/util/types')); const { - isAnyArrayBuffer, - isArrayBuffer, - isArgumentsObject, - isDataView, - isExternal, - isMap, - isMapIterator, - isPromise, - isSet, - isSetIterator, - isWeakMap, - isWeakSet, isRegExp, isDate, - isTypedArray, - isStringObject, - isNumberObject, - isBooleanObject, - isSymbolObject, - isBigIntObject, - isUint8Array, - isUint8ClampedArray, - isUint16Array, - isUint32Array, - isInt8Array, - isInt16Array, - isInt32Array, - isFloat32Array, - isFloat64Array, - isBigInt64Array, - isBigUint64Array } = types; const { - customInspectSymbol, deprecate, getSystemErrorName: internalErrorName, isError, promisify, - join, - removeColors } = require('internal/util'); -const inspectDefaultOptions = Object.seal({ - showHidden: false, - depth: 2, - colors: false, - customInspect: true, - showProxy: false, - maxArrayLength: 100, - breakLength: 60, - compact: true -}); - -const ReflectApply = Reflect.apply; - -// This function is borrowed from the function with the same name on V8 Extras' -// `utils` object. V8 implements Reflect.apply very efficiently in conjunction -// with the spread syntax, such that no additional special case is needed for -// function calls w/o arguments. -// Refs: https://github.com/v8/v8/blob/d6ead37d265d7215cf9c5f768f279e21bd170212/src/js/prologue.js#L152-L156 -function uncurryThis(func) { - return (thisArg, ...args) => ReflectApply(func, thisArg, args); -} - -const propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable); -const regExpToString = uncurryThis(RegExp.prototype.toString); -const dateToISOString = uncurryThis(Date.prototype.toISOString); -const errorToString = uncurryThis(Error.prototype.toString); - -const bigIntValueOf = uncurryThis(BigInt.prototype.valueOf); -const booleanValueOf = uncurryThis(Boolean.prototype.valueOf); -const numberValueOf = uncurryThis(Number.prototype.valueOf); -const symbolValueOf = uncurryThis(Symbol.prototype.valueOf); -const stringValueOf = uncurryThis(String.prototype.valueOf); - -const setValues = uncurryThis(Set.prototype.values); -const mapEntries = uncurryThis(Map.prototype.entries); -const dateGetTime = uncurryThis(Date.prototype.getTime); - let CIRCULAR_ERROR_MESSAGE; let internalDeepEqual; -/* eslint-disable no-control-regex */ -const strEscapeSequencesRegExp = /[\x00-\x1f\x27\x5c]/; -const strEscapeSequencesReplacer = /[\x00-\x1f\x27\x5c]/g; -/* eslint-enable no-control-regex */ - -const keyStrRegExp = /^[a-zA-Z_][a-zA-Z_0-9]*$/; -const numberRegExp = /^(0|[1-9][0-9]*)$/; - -const readableRegExps = {}; - -const MIN_LINE_LENGTH = 16; - -// Escaped special characters. Use empty strings to fill up unused entries. -const meta = [ - '\\u0000', '\\u0001', '\\u0002', '\\u0003', '\\u0004', - '\\u0005', '\\u0006', '\\u0007', '\\b', '\\t', - '\\n', '\\u000b', '\\f', '\\r', '\\u000e', - '\\u000f', '\\u0010', '\\u0011', '\\u0012', '\\u0013', - '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', - '\\u0019', '\\u001a', '\\u001b', '\\u001c', '\\u001d', - '\\u001e', '\\u001f', '', '', '', - '', '', '', '', "\\'", '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '\\\\' -]; -// Constants to map the iterator state. -const kWeak = 0; -const kIterator = 1; -const kMapEntries = 2; - -const escapeFn = (str) => meta[str.charCodeAt(0)]; - -// Escape control characters, single quotes and the backslash. -// This is similar to JSON stringify escaping. -function strEscape(str) { - // Some magic numbers that worked out fine while benchmarking with v8 6.0 - if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) - return `'${str}'`; - if (str.length > 100) - return `'${str.replace(strEscapeSequencesReplacer, escapeFn)}'`; - let result = ''; - let last = 0; - for (var i = 0; i < str.length; i++) { - const point = str.charCodeAt(i); - if (point === 39 || point === 92 || point < 32) { - if (last === i) { - result += meta[point]; - } else { - result += `${str.slice(last, i)}${meta[point]}`; - } - last = i + 1; - } - } - if (last === 0) { - result = str; - } else if (last !== i) { - result += str.slice(last); - } - return `'${result}'`; -} - function tryStringify(arg) { try { return JSON.stringify(arg); @@ -243,7 +103,13 @@ function formatWithOptions(inspectOptions, f) { tempStr = tryStringify(arguments[a++]); break; case 100: // 'd' - tempStr = `${Number(arguments[a++])}`; + const tempNum = arguments[a++]; + // eslint-disable-next-line valid-typeof + if (typeof tempNum === 'bigint') { + tempStr = `${tempNum}n`; + } else { + tempStr = `${Number(tempNum)}`; + } break; case 79: // 'O' tempStr = inspect(arguments[a++], inspectOptions); @@ -259,7 +125,13 @@ function formatWithOptions(inspectOptions, f) { break; } case 105: // 'i' - tempStr = `${parseInt(arguments[a++])}`; + const tempInteger = arguments[a++]; + // eslint-disable-next-line valid-typeof + if (typeof tempInteger === 'bigint') { + tempStr = `${tempInteger}n`; + } else { + tempStr = `${parseInt(tempInteger)}`; + } break; case 102: // 'f' tempStr = `${parseFloat(arguments[a++])}`; @@ -323,944 +195,6 @@ function debuglog(set) { return debugs[set]; } -/** - * Echos the value of any input. Tries to print the value out - * in the best way possible given the different types. - * - * @param {any} value The value to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* Legacy: value, showHidden, depth, colors */ -function inspect(value, opts) { - // Default options - const ctx = { - seen: [], - stylize: stylizeNoColor, - showHidden: inspectDefaultOptions.showHidden, - depth: inspectDefaultOptions.depth, - colors: inspectDefaultOptions.colors, - customInspect: inspectDefaultOptions.customInspect, - showProxy: inspectDefaultOptions.showProxy, - // TODO(BridgeAR): Deprecate `maxArrayLength` and replace it with - // `maxEntries`. - maxArrayLength: inspectDefaultOptions.maxArrayLength, - breakLength: inspectDefaultOptions.breakLength, - indentationLvl: 0, - compact: inspectDefaultOptions.compact - }; - // Legacy... - if (arguments.length > 2) { - if (arguments[2] !== undefined) { - ctx.depth = arguments[2]; - } - if (arguments.length > 3 && arguments[3] !== undefined) { - ctx.colors = arguments[3]; - } - } - // Set user-specified options - if (typeof opts === 'boolean') { - ctx.showHidden = opts; - } else if (opts) { - const optKeys = Object.keys(opts); - for (var i = 0; i < optKeys.length; i++) { - ctx[optKeys[i]] = opts[optKeys[i]]; - } - } - if (ctx.colors) ctx.stylize = stylizeWithColor; - if (ctx.maxArrayLength === null) ctx.maxArrayLength = Infinity; - return formatValue(ctx, value, ctx.depth); -} -inspect.custom = customInspectSymbol; - -Object.defineProperty(inspect, 'defaultOptions', { - get() { - return inspectDefaultOptions; - }, - set(options) { - if (options === null || typeof options !== 'object') { - throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); - } - // TODO(BridgeAR): Add input validation and make sure `defaultOptions` are - // not configurable. - return _extend(inspectDefaultOptions, options); - } -}); - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = Object.assign(Object.create(null), { - 'bold': [1, 22], - 'italic': [3, 23], - 'underline': [4, 24], - 'inverse': [7, 27], - 'white': [37, 39], - 'grey': [90, 39], - 'black': [30, 39], - 'blue': [34, 39], - 'cyan': [36, 39], - 'green': [32, 39], - 'magenta': [35, 39], - 'red': [31, 39], - 'yellow': [33, 39] -}); - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = Object.assign(Object.create(null), { - 'special': 'cyan', - 'number': 'yellow', - 'bigint': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'symbol': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}); - -function stylizeWithColor(str, styleType) { - const style = inspect.styles[styleType]; - if (style !== undefined) { - const color = inspect.colors[style]; - return `\u001b[${color[0]}m${str}\u001b[${color[1]}m`; - } - return str; -} - -function stylizeNoColor(str, styleType) { - return str; -} - -function getConstructorName(obj) { - while (obj) { - const descriptor = Object.getOwnPropertyDescriptor(obj, 'constructor'); - if (descriptor !== undefined && - typeof descriptor.value === 'function' && - descriptor.value.name !== '') { - return descriptor.value.name; - } - - obj = Object.getPrototypeOf(obj); - } - - return ''; -} - -function getPrefix(constructor, tag, fallback) { - if (constructor !== '') { - if (tag !== '' && constructor !== tag) { - return `${constructor} [${tag}] `; - } - return `${constructor} `; - } - - if (tag !== '') - return `[${tag}] `; - - if (fallback !== undefined) - return `${fallback} `; - - return ''; -} - -function findTypedConstructor(value) { - for (const [check, clazz] of [ - [isUint8Array, Uint8Array], - [isUint8ClampedArray, Uint8ClampedArray], - [isUint16Array, Uint16Array], - [isUint32Array, Uint32Array], - [isInt8Array, Int8Array], - [isInt16Array, Int16Array], - [isInt32Array, Int32Array], - [isFloat32Array, Float32Array], - [isFloat64Array, Float64Array], - [isBigInt64Array, BigInt64Array], - [isBigUint64Array, BigUint64Array] - ]) { - if (check(value)) { - return clazz; - } - } -} - -const getBoxedValue = formatPrimitive.bind(null, stylizeNoColor); - -function noPrototypeIterator(ctx, value, recurseTimes) { - let newVal; - // TODO: Create a Subclass in case there's no prototype and show - // `null-prototype`. - if (isSet(value)) { - const clazz = Object.getPrototypeOf(value) || Set; - newVal = new clazz(setValues(value)); - } else if (isMap(value)) { - const clazz = Object.getPrototypeOf(value) || Map; - newVal = new clazz(mapEntries(value)); - } else if (Array.isArray(value)) { - const clazz = Object.getPrototypeOf(value) || Array; - newVal = new clazz(value.length || 0); - } else if (isTypedArray(value)) { - const clazz = findTypedConstructor(value) || Uint8Array; - newVal = new clazz(value); - } - if (newVal) { - Object.defineProperties(newVal, Object.getOwnPropertyDescriptors(value)); - return formatValue(ctx, newVal, recurseTimes); - } -} - -// Note: using `formatValue` directly requires the indentation level to be -// corrected by setting `ctx.indentationLvL += diff` and then to decrease the -// value afterwards again. -function formatValue(ctx, value, recurseTimes) { - // Primitive types cannot have properties - if (typeof value !== 'object' && typeof value !== 'function') { - return formatPrimitive(ctx.stylize, value, ctx); - } - if (value === null) { - return ctx.stylize('null', 'null'); - } - - if (ctx.showProxy) { - const proxy = getProxyDetails(value); - if (proxy !== undefined) { - if (recurseTimes != null) { - if (recurseTimes < 0) - return ctx.stylize('Proxy [Array]', 'special'); - recurseTimes -= 1; - } - ctx.indentationLvl += 2; - const res = [ - formatValue(ctx, proxy[0], recurseTimes), - formatValue(ctx, proxy[1], recurseTimes) - ]; - ctx.indentationLvl -= 2; - const str = reduceToSingleString(ctx, res, '', ['[', ']']); - return `Proxy ${str}`; - } - } - - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect) { - let maybeCustom = value[customInspectSymbol]; - - if (!maybeCustom && value.inspect !== exports.inspect && - typeof value.inspect === 'function') { - maybeCustom = deprecate( - value.inspect, - 'Custom inspection function on Objects via .inspect() is deprecated', - 'DEP0079' - ); - } - - if (typeof maybeCustom === 'function' && - // Filter out the util module, its inspect function is special - maybeCustom !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - const ret = maybeCustom.call(value, recurseTimes, ctx); - - // If the custom inspection method returned `this`, don't go into - // infinite recursion. - if (ret !== value) { - if (typeof ret !== 'string') { - return formatValue(ctx, ret, recurseTimes); - } - return ret; - } - } - } - - // Using an array here is actually better for the average case than using - // a Set. `seen` will only check for the depth and will never grow too large. - if (ctx.seen.indexOf(value) !== -1) - return ctx.stylize('[Circular]', 'special'); - - let keys; - let symbols = Object.getOwnPropertySymbols(value); - - // Look up the keys of the object. - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } else { - // This might throw if `value` is a Module Namespace Object from an - // unevaluated module, but we don't want to perform the actual type - // check because it's expensive. - // TODO(devsnek): track https://github.com/tc39/ecma262/issues/1209 - // and modify this logic as needed. - try { - keys = Object.keys(value); - } catch (err) { - if (types.isNativeError(err) && - err.name === 'ReferenceError' && - types.isModuleNamespaceObject(value)) { - keys = Object.getOwnPropertyNames(value); - } else { - throw err; - } - } - - if (symbols.length !== 0) - symbols = symbols.filter((key) => propertyIsEnumerable(value, key)); - } - - const keyLength = keys.length + symbols.length; - - const constructor = getConstructorName(value); - let tag = value[Symbol.toStringTag]; - if (typeof tag !== 'string') - tag = ''; - let base = ''; - let formatter = formatObject; - let braces; - let noIterator = true; - let extra; - let i = 0; - - // Iterators and the rest are split to reduce checks - if (value[Symbol.iterator]) { - noIterator = false; - if (Array.isArray(value)) { - // Only set the constructor for non ordinary ("Array [...]") arrays. - const prefix = getPrefix(constructor, tag); - braces = [`${prefix === 'Array ' ? '' : prefix}[`, ']']; - if (value.length === 0 && keyLength === 0) - return `${braces[0]}]`; - formatter = formatArray; - } else if (isSet(value)) { - const prefix = getPrefix(constructor, tag); - if (value.size === 0 && keyLength === 0) - return `${prefix}{}`; - braces = [`${prefix}{`, '}']; - formatter = formatSet; - } else if (isMap(value)) { - const prefix = getPrefix(constructor, tag); - if (value.size === 0 && keyLength === 0) - return `${prefix}{}`; - braces = [`${prefix}{`, '}']; - formatter = formatMap; - } else if (isTypedArray(value)) { - braces = [`${getPrefix(constructor, tag)}[`, ']']; - if (value.length === 0 && keyLength === 0 && !ctx.showHidden) - return `${braces[0]}]`; - formatter = formatTypedArray; - } else if (isMapIterator(value)) { - braces = [`[${tag}] {`, '}']; - formatter = formatMapIterator; - } else if (isSetIterator(value)) { - braces = [`[${tag}] {`, '}']; - formatter = formatSetIterator; - } else { - noIterator = true; - } - } - if (noIterator) { - braces = ['{', '}']; - if (constructor === 'Object') { - if (isArgumentsObject(value)) { - if (keyLength === 0) - return '[Arguments] {}'; - braces[0] = '[Arguments] {'; - } else if (tag !== '') { - braces[0] = `${getPrefix(constructor, tag)}{`; - if (keyLength === 0) { - return `${braces[0]}}`; - } - } else if (keyLength === 0) { - return '{}'; - } - } else if (typeof value === 'function') { - const type = constructor || tag || 'Function'; - const name = `${type}${value.name ? `: ${value.name}` : ''}`; - if (keyLength === 0) - return ctx.stylize(`[${name}]`, 'special'); - base = `[${name}]`; - } else if (isRegExp(value)) { - // Make RegExps say that they are RegExps - if (keyLength === 0 || recurseTimes < 0) - return ctx.stylize(regExpToString(value), 'regexp'); - base = `${regExpToString(value)}`; - } else if (isDate(value)) { - // Make dates with properties first say the date - if (keyLength === 0) { - if (Number.isNaN(dateGetTime(value))) - return ctx.stylize(String(value), 'date'); - return ctx.stylize(dateToISOString(value), 'date'); - } - base = dateToISOString(value); - } else if (isError(value)) { - // Make error with message first say the error - base = formatError(value); - // Wrap the error in brackets in case it has no stack trace. - const stackStart = base.indexOf('\n at'); - if (stackStart === -1) { - base = `[${base}]`; - } - // The message and the stack have to be indented as well! - if (ctx.indentationLvl !== 0) { - const indentation = ' '.repeat(ctx.indentationLvl); - base = formatError(value).replace(/\n/g, `\n${indentation}`); - } - if (keyLength === 0) - return base; - - if (ctx.compact === false && stackStart !== -1) { - braces[0] += `${base.slice(stackStart)}`; - base = `[${base.slice(0, stackStart)}]`; - } - } else if (isAnyArrayBuffer(value)) { - // Fast path for ArrayBuffer and SharedArrayBuffer. - // Can't do the same for DataView because it has a non-primitive - // .buffer property that we need to recurse for. - let prefix = getPrefix(constructor, tag); - if (prefix === '') { - prefix = isArrayBuffer(value) ? 'ArrayBuffer ' : 'SharedArrayBuffer '; - } - if (keyLength === 0) - return prefix + - `{ byteLength: ${formatNumber(ctx.stylize, value.byteLength)} }`; - braces[0] = `${prefix}{`; - keys.unshift('byteLength'); - } else if (isDataView(value)) { - braces[0] = `${getPrefix(constructor, tag, 'DataView')}{`; - // .buffer goes last, it's not a primitive like the others. - keys.unshift('byteLength', 'byteOffset', 'buffer'); - } else if (isPromise(value)) { - braces[0] = `${getPrefix(constructor, tag, 'Promise')}{`; - formatter = formatPromise; - } else if (isWeakSet(value)) { - braces[0] = `${getPrefix(constructor, tag, 'WeakSet')}{`; - if (ctx.showHidden) { - formatter = formatWeakSet; - } else { - extra = ctx.stylize('[items unknown]', 'special'); - } - } else if (isWeakMap(value)) { - braces[0] = `${getPrefix(constructor, tag, 'WeakMap')}{`; - if (ctx.showHidden) { - formatter = formatWeakMap; - } else { - extra = ctx.stylize('[items unknown]', 'special'); - } - } else if (types.isModuleNamespaceObject(value)) { - braces[0] = `[${tag}] {`; - formatter = formatNamespaceObject; - } else if (isNumberObject(value)) { - base = `[Number: ${getBoxedValue(numberValueOf(value))}]`; - if (keyLength === 0) - return ctx.stylize(base, 'number'); - } else if (isBooleanObject(value)) { - base = `[Boolean: ${getBoxedValue(booleanValueOf(value))}]`; - if (keyLength === 0) - return ctx.stylize(base, 'boolean'); - } else if (isBigIntObject(value)) { - base = `[BigInt: ${getBoxedValue(bigIntValueOf(value))}]`; - if (keyLength === 0) - return ctx.stylize(base, 'bigint'); - } else if (isSymbolObject(value)) { - base = `[Symbol: ${getBoxedValue(symbolValueOf(value))}]`; - if (keyLength === 0) - return ctx.stylize(base, 'symbol'); - } else if (isStringObject(value)) { - const raw = stringValueOf(value); - base = `[String: ${getBoxedValue(raw, ctx)}]`; - if (keyLength === raw.length) - return ctx.stylize(base, 'string'); - // For boxed Strings, we have to remove the 0-n indexed entries, - // since they just noisy up the output and are redundant - // Make boxed primitive Strings look like such - keys = keys.slice(value.length); - braces = ['{', '}']; - // The input prototype got manipulated. Special handle these. - // We have to rebuild the information so we are able to display everything. - } else { - const specialIterator = noPrototypeIterator(ctx, value, recurseTimes); - if (specialIterator) { - return specialIterator; - } - if (isMapIterator(value)) { - braces = [`[${tag || 'Map Iterator'}] {`, '}']; - formatter = formatMapIterator; - } else if (isSetIterator(value)) { - braces = [`[${tag || 'Set Iterator'}] {`, '}']; - formatter = formatSetIterator; - // Handle other regular objects again. - } else if (keyLength === 0) { - if (isExternal(value)) - return ctx.stylize('[External]', 'special'); - return `${getPrefix(constructor, tag)}{}`; - } else { - braces[0] = `${getPrefix(constructor, tag)}{`; - } - } - } - - if (recurseTimes != null) { - if (recurseTimes < 0) - return ctx.stylize(`[${constructor || tag || 'Object'}]`, 'special'); - recurseTimes -= 1; - } - - ctx.seen.push(value); - let output; - // This corresponds to a depth of at least 333 and likely 500. - if (ctx.indentationLvl < 1000) { - output = formatter(ctx, value, recurseTimes, keys); - } else { - try { - output = formatter(ctx, value, recurseTimes, keys); - } catch (err) { - if (errors.isStackOverflowError(err)) { - ctx.seen.pop(); - return ctx.stylize( - `[${constructor || tag || 'Object'}: Inspection interrupted ` + - 'prematurely. Maximum call stack size exceeded.]', - 'special' - ); - } - throw err; - } - } - if (extra !== undefined) - output.unshift(extra); - - for (i = 0; i < symbols.length; i++) { - output.push(formatProperty(ctx, value, recurseTimes, symbols[i], 0)); - } - - ctx.seen.pop(); - - return reduceToSingleString(ctx, output, base, braces); -} - -function formatNumber(fn, value) { - // Format -0 as '-0'. Checking `value === -0` won't distinguish 0 from -0. - if (Object.is(value, -0)) - return fn('-0', 'number'); - return fn(`${value}`, 'number'); -} - -function formatPrimitive(fn, value, ctx) { - if (typeof value === 'string') { - if (ctx.compact === false && - ctx.indentationLvl + value.length > ctx.breakLength && - value.length > MIN_LINE_LENGTH) { - // eslint-disable-next-line max-len - const minLineLength = Math.max(ctx.breakLength - ctx.indentationLvl, MIN_LINE_LENGTH); - // eslint-disable-next-line max-len - const averageLineLength = Math.ceil(value.length / Math.ceil(value.length / minLineLength)); - const divisor = Math.max(averageLineLength, MIN_LINE_LENGTH); - let res = ''; - if (readableRegExps[divisor] === undefined) { - // Build a new RegExp that naturally breaks text into multiple lines. - // - // Rules - // 1. Greedy match all text up the max line length that ends with a - // whitespace or the end of the string. - // 2. If none matches, non-greedy match any text up to a whitespace or - // the end of the string. - // - // eslint-disable-next-line max-len, node-core/no-unescaped-regexp-dot - readableRegExps[divisor] = new RegExp(`(.|\\n){1,${divisor}}(\\s|$)|(\\n|.)+?(\\s|$)`, 'gm'); - } - const matches = value.match(readableRegExps[divisor]); - if (matches.length > 1) { - const indent = ' '.repeat(ctx.indentationLvl); - res += `${fn(strEscape(matches[0]), 'string')} +\n`; - for (var i = 1; i < matches.length - 1; i++) { - res += `${indent} ${fn(strEscape(matches[i]), 'string')} +\n`; - } - res += `${indent} ${fn(strEscape(matches[i]), 'string')}`; - return res; - } - } - return fn(strEscape(value), 'string'); - } - if (typeof value === 'number') - return formatNumber(fn, value); - // eslint-disable-next-line valid-typeof - if (typeof value === 'bigint') - return fn(`${value}n`, 'bigint'); - if (typeof value === 'boolean') - return fn(`${value}`, 'boolean'); - if (typeof value === 'undefined') - return fn('undefined', 'undefined'); - // es6 symbol primitive - return fn(value.toString(), 'symbol'); -} - -function formatError(value) { - return value.stack || errorToString(value); -} - -function formatObject(ctx, value, recurseTimes, keys) { - const len = keys.length; - const output = new Array(len); - for (var i = 0; i < len; i++) - output[i] = formatProperty(ctx, value, recurseTimes, keys[i], 0); - return output; -} - -function formatNamespaceObject(ctx, value, recurseTimes, keys) { - const len = keys.length; - const output = new Array(len); - for (var i = 0; i < len; i++) { - try { - output[i] = formatProperty(ctx, value, recurseTimes, keys[i], 0); - } catch (err) { - if (!(types.isNativeError(err) && err.name === 'ReferenceError')) { - throw err; - } - // Use the existing functionality. This makes sure the indentation and - // line breaks are always correct. Otherwise it is very difficult to keep - // this aligned, even though this is a hacky way of dealing with this. - const tmp = { [keys[i]]: '' }; - output[i] = formatProperty(ctx, tmp, recurseTimes, keys[i], 0); - const pos = output[i].lastIndexOf(' '); - // We have to find the last whitespace and have to replace that value as - // it will be visualized as a regular string. - output[i] = output[i].slice(0, pos + 1) + - ctx.stylize('', 'special'); - } - } - return output; -} - -// The array is sparse and/or has extra keys -function formatSpecialArray(ctx, value, recurseTimes, keys, maxLength, valLen) { - const output = []; - const keyLen = keys.length; - let i = 0; - for (const key of keys) { - if (output.length === maxLength) - break; - const index = +key; - // Arrays can only have up to 2^32 - 1 entries - if (index > 2 ** 32 - 2) - break; - if (`${i}` !== key) { - if (!numberRegExp.test(key)) - break; - const emptyItems = index - i; - const ending = emptyItems > 1 ? 's' : ''; - const message = `<${emptyItems} empty item${ending}>`; - output.push(ctx.stylize(message, 'undefined')); - i = index; - if (output.length === maxLength) - break; - } - output.push(formatProperty(ctx, value, recurseTimes, key, 1)); - i++; - } - if (i < valLen && output.length !== maxLength) { - const len = valLen - i; - const ending = len > 1 ? 's' : ''; - const message = `<${len} empty item${ending}>`; - output.push(ctx.stylize(message, 'undefined')); - i = valLen; - if (keyLen === 0) - return output; - } - const remaining = valLen - i; - if (remaining > 0) { - output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); - } - if (ctx.showHidden && keys[keyLen - 1] === 'length') { - // No extra keys - output.push(formatProperty(ctx, value, recurseTimes, 'length', 2)); - } else if (valLen === 0 || - keyLen > valLen && keys[valLen - 1] === `${valLen - 1}`) { - // The array is not sparse - for (i = valLen; i < keyLen; i++) - output.push(formatProperty(ctx, value, recurseTimes, keys[i], 2)); - } else if (keys[keyLen - 1] !== `${valLen - 1}`) { - const extra = []; - // Only handle special keys - let key; - for (i = keys.length - 1; i >= 0; i--) { - key = keys[i]; - if (numberRegExp.test(key) && +key < 2 ** 32 - 1) - break; - extra.push(formatProperty(ctx, value, recurseTimes, key, 2)); - } - for (i = extra.length - 1; i >= 0; i--) - output.push(extra[i]); - } - return output; -} - -function formatArray(ctx, value, recurseTimes, keys) { - const len = Math.min(Math.max(0, ctx.maxArrayLength), value.length); - const hidden = ctx.showHidden ? 1 : 0; - const valLen = value.length; - const keyLen = keys.length - hidden; - if (keyLen !== valLen || keys[keyLen - 1] !== `${valLen - 1}`) - return formatSpecialArray(ctx, value, recurseTimes, keys, len, valLen); - - const remaining = valLen - len; - const output = new Array(len + (remaining > 0 ? 1 : 0) + hidden); - for (var i = 0; i < len; i++) - output[i] = formatProperty(ctx, value, recurseTimes, keys[i], 1); - if (remaining > 0) - output[i++] = `... ${remaining} more item${remaining > 1 ? 's' : ''}`; - if (ctx.showHidden === true) - output[i] = formatProperty(ctx, value, recurseTimes, 'length', 2); - return output; -} - -function formatTypedArray(ctx, value, recurseTimes, keys) { - const maxLength = Math.min(Math.max(0, ctx.maxArrayLength), value.length); - const remaining = value.length - maxLength; - const output = new Array(maxLength + (remaining > 0 ? 1 : 0)); - for (var i = 0; i < maxLength; ++i) - output[i] = formatNumber(ctx.stylize, value[i]); - if (remaining > 0) - output[i] = `... ${remaining} more item${remaining > 1 ? 's' : ''}`; - if (ctx.showHidden) { - // .buffer goes last, it's not a primitive like the others. - ctx.indentationLvl += 2; - for (const key of [ - 'BYTES_PER_ELEMENT', - 'length', - 'byteLength', - 'byteOffset', - 'buffer' - ]) { - const str = formatValue(ctx, value[key], recurseTimes); - output.push(`[${key}]: ${str}`); - } - ctx.indentationLvl -= 2; - } - // TypedArrays cannot have holes. Therefore it is safe to assume that all - // extra keys are indexed after value.length. - for (i = value.length; i < keys.length; i++) { - output.push(formatProperty(ctx, value, recurseTimes, keys[i], 2)); - } - return output; -} - -function formatSet(ctx, value, recurseTimes, keys) { - const output = new Array(value.size + keys.length + (ctx.showHidden ? 1 : 0)); - let i = 0; - ctx.indentationLvl += 2; - for (const v of value) { - output[i++] = formatValue(ctx, v, recurseTimes); - } - ctx.indentationLvl -= 2; - // With `showHidden`, `length` will display as a hidden property for - // arrays. For consistency's sake, do the same for `size`, even though this - // property isn't selected by Object.getOwnPropertyNames(). - if (ctx.showHidden) - output[i++] = `[size]: ${ctx.stylize(`${value.size}`, 'number')}`; - for (var n = 0; n < keys.length; n++) { - output[i++] = formatProperty(ctx, value, recurseTimes, keys[n], 0); - } - return output; -} - -function formatMap(ctx, value, recurseTimes, keys) { - const output = new Array(value.size + keys.length + (ctx.showHidden ? 1 : 0)); - let i = 0; - ctx.indentationLvl += 2; - for (const [k, v] of value) { - output[i++] = `${formatValue(ctx, k, recurseTimes)} => ` + - formatValue(ctx, v, recurseTimes); - } - ctx.indentationLvl -= 2; - // See comment in formatSet - if (ctx.showHidden) - output[i++] = `[size]: ${ctx.stylize(`${value.size}`, 'number')}`; - for (var n = 0; n < keys.length; n++) { - output[i++] = formatProperty(ctx, value, recurseTimes, keys[n], 0); - } - return output; -} - -function formatSetIterInner(ctx, value, recurseTimes, keys, entries, state) { - const maxArrayLength = Math.max(ctx.maxArrayLength, 0); - const maxLength = Math.min(maxArrayLength, entries.length); - let output = new Array(maxLength); - ctx.indentationLvl += 2; - for (var i = 0; i < maxLength; i++) { - output[i] = formatValue(ctx, entries[i], recurseTimes); - } - ctx.indentationLvl -= 2; - if (state === kWeak) { - // Sort all entries to have a halfway reliable output (if more entries than - // retrieved ones exist, we can not reliably return the same output). - output = output.sort(); - } - const remaining = entries.length - maxLength; - if (remaining > 0) { - output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); - } - for (i = 0; i < keys.length; i++) - output.push(formatProperty(ctx, value, recurseTimes, keys[i], 0)); - return output; -} - -function formatMapIterInner(ctx, value, recurseTimes, keys, entries, state) { - const maxArrayLength = Math.max(ctx.maxArrayLength, 0); - // Entries exist as [key1, val1, key2, val2, ...] - const len = entries.length / 2; - const remaining = len - maxArrayLength; - const maxLength = Math.min(maxArrayLength, len); - let output = new Array(maxLength); - let start = ''; - let end = ''; - let middle = ' => '; - let i = 0; - if (state === kMapEntries) { - start = '[ '; - end = ' ]'; - middle = ', '; - } - ctx.indentationLvl += 2; - for (; i < maxLength; i++) { - const pos = i * 2; - output[i] = `${start}${formatValue(ctx, entries[pos], recurseTimes)}` + - `${middle}${formatValue(ctx, entries[pos + 1], recurseTimes)}${end}`; - } - ctx.indentationLvl -= 2; - if (state === kWeak) { - // Sort all entries to have a halfway reliable output (if more entries - // than retrieved ones exist, we can not reliably return the same output). - output = output.sort(); - } - if (remaining > 0) { - output.push(`... ${remaining} more item${remaining > 1 ? 's' : ''}`); - } - for (i = 0; i < keys.length; i++) - output.push(formatProperty(ctx, value, recurseTimes, keys[i], 0)); - return output; -} - -function formatWeakSet(ctx, value, recurseTimes, keys) { - const entries = previewEntries(value); - return formatSetIterInner(ctx, value, recurseTimes, keys, entries, kWeak); -} - -function formatWeakMap(ctx, value, recurseTimes, keys) { - const entries = previewEntries(value); - return formatMapIterInner(ctx, value, recurseTimes, keys, entries, kWeak); -} - -function formatSetIterator(ctx, value, recurseTimes, keys) { - const entries = previewEntries(value); - return formatSetIterInner(ctx, value, recurseTimes, keys, entries, kIterator); -} - -function formatMapIterator(ctx, value, recurseTimes, keys) { - const [entries, isKeyValue] = previewEntries(value, true); - if (isKeyValue) { - return formatMapIterInner( - ctx, value, recurseTimes, keys, entries, kMapEntries); - } - - return formatSetIterInner(ctx, value, recurseTimes, keys, entries, kIterator); -} - -function formatPromise(ctx, value, recurseTimes, keys) { - let output; - const [state, result] = getPromiseDetails(value); - if (state === kPending) { - output = [ctx.stylize('', 'special')]; - } else { - // Using `formatValue` is correct here without the need to fix the - // indentation level. - ctx.indentationLvl += 2; - const str = formatValue(ctx, result, recurseTimes); - ctx.indentationLvl -= 2; - output = [ - state === kRejected ? - `${ctx.stylize('', 'special')} ${str}` : - str - ]; - } - for (var n = 0; n < keys.length; n++) { - output.push(formatProperty(ctx, value, recurseTimes, keys[n], 0)); - } - return output; -} - -function formatProperty(ctx, value, recurseTimes, key, array) { - let name, str; - let extra = ' '; - const desc = Object.getOwnPropertyDescriptor(value, key) || - { value: value[key], enumerable: true }; - if (desc.value !== undefined) { - const diff = array !== 0 || ctx.compact === false ? 2 : 3; - ctx.indentationLvl += diff; - str = formatValue(ctx, desc.value, recurseTimes); - if (diff === 3) { - const len = ctx.colors ? removeColors(str).length : str.length; - if (ctx.breakLength < len) { - extra = `\n${' '.repeat(ctx.indentationLvl)}`; - } - } - ctx.indentationLvl -= diff; - } else if (desc.get !== undefined) { - if (desc.set !== undefined) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else if (desc.set !== undefined) { - str = ctx.stylize('[Setter]', 'special'); - } else { - str = ctx.stylize('undefined', 'undefined'); - } - if (array === 1) { - return str; - } - if (typeof key === 'symbol') { - const tmp = key.toString().replace(strEscapeSequencesReplacer, escapeFn); - name = `[${ctx.stylize(tmp, 'symbol')}]`; - } else if (desc.enumerable === false) { - name = `[${key.replace(strEscapeSequencesReplacer, escapeFn)}]`; - } else if (keyStrRegExp.test(key)) { - name = ctx.stylize(key, 'name'); - } else { - name = ctx.stylize(strEscape(key), 'string'); - } - return `${name}:${extra}${str}`; -} - -function reduceToSingleString(ctx, output, base, braces) { - const breakLength = ctx.breakLength; - let i = 0; - if (ctx.compact === false) { - const indentation = ' '.repeat(ctx.indentationLvl); - let res = `${base ? `${base} ` : ''}${braces[0]}\n${indentation} `; - for (; i < output.length - 1; i++) { - res += `${output[i]},\n${indentation} `; - } - res += `${output[i]}\n${indentation}${braces[1]}`; - return res; - } - if (output.length * 2 <= breakLength) { - let length = 0; - for (; i < output.length && length <= breakLength; i++) { - if (ctx.colors) { - length += removeColors(output[i]).length + 1; - } else { - length += output[i].length + 1; - } - } - if (length <= breakLength) - return `${braces[0]}${base ? ` ${base}` : ''} ${join(output, ', ')} ` + - braces[1]; - } - // If the opening "brace" is too large, like in the case of "Set {", - // we need to force the first item to be on the next line or the - // items will not line up correctly. - const indentation = ' '.repeat(ctx.indentationLvl); - const ln = base === '' && braces[0].length === 1 ? - ' ' : `${base ? ` ${base}` : ''}\n${indentation} `; - const str = join(output, `,\n${indentation} `); - return `${braces[0]}${ln}${str} ${braces[1]}`; -} - function isBoolean(arg) { return typeof arg === 'boolean'; } diff --git a/lib/zlib.js b/lib/zlib.js index 87e8641767669f..5d5ef3e083ce9c 100644 --- a/lib/zlib.js +++ b/lib/zlib.js @@ -42,6 +42,7 @@ const { Buffer, kMaxLength } = require('buffer'); +const { owner_symbol } = require('internal/async_hooks').symbols; const constants = process.binding('constants').zlib; const { @@ -143,7 +144,7 @@ function zlibBufferSync(engine, buffer) { } function zlibOnError(message, errno) { - var self = this.jsref; + var self = this[owner_symbol]; // there is no way to cleanly recover. // continuing only obscures problems. _close(self); @@ -156,17 +157,6 @@ function zlibOnError(message, errno) { self.emit('error', error); } -function flushCallback(level, strategy, callback) { - if (!this._handle) - assert(false, 'zlib binding closed'); - this._handle.params(level, strategy); - if (!this._hadError) { - this._level = level; - this._strategy = strategy; - if (callback) callback(); - } -} - // 1. Returns false for undefined and NaN // 2. Returns true for finite numbers // 3. Throws ERR_INVALID_ARG_TYPE for non-numbers @@ -300,7 +290,8 @@ function Zlib(opts, mode) { Transform.call(this, opts); this.bytesWritten = 0; this._handle = new binding.Zlib(mode); - this._handle.jsref = this; // Used by processCallback() and zlibOnError() + // Used by processCallback() and zlibOnError() + this._handle[owner_symbol] = this; this._handle.onerror = zlibOnError; this._hadError = false; this._writeState = new Uint32Array(2); @@ -320,10 +311,9 @@ function Zlib(opts, mode) { this._level = level; this._strategy = strategy; this._chunkSize = chunkSize; - this._flushFlag = flush; - this._scheduledFlushFlag = Z_NO_FLUSH; - this._origFlushFlag = flush; + this._defaultFlushFlag = flush; this._finishFlushFlag = finishFlush; + this._nextFlush = -1; this._info = opts && opts.info; this.once('end', this.close); } @@ -352,13 +342,28 @@ Object.defineProperty(Zlib.prototype, 'bytesRead', { } }); +// This callback is used by `.params()` to wait until a full flush happened +// before adjusting the parameters. In particular, the call to the native +// `params()` function should not happen while a write is currently in progress +// on the threadpool. +function paramsAfterFlushCallback(level, strategy, callback) { + if (!this._handle) + assert(false, 'zlib binding closed'); + this._handle.params(level, strategy); + if (!this._hadError) { + this._level = level; + this._strategy = strategy; + if (callback) callback(); + } +} + Zlib.prototype.params = function params(level, strategy, callback) { checkRangesOrGetDefault(level, 'level', Z_MIN_LEVEL, Z_MAX_LEVEL); checkRangesOrGetDefault(strategy, 'strategy', Z_DEFAULT_STRATEGY, Z_FIXED); if (this._level !== level || this._strategy !== strategy) { this.flush(Z_SYNC_FLUSH, - flushCallback.bind(this, level, strategy, callback)); + paramsAfterFlushCallback.bind(this, level, strategy, callback)); } else { process.nextTick(callback); } @@ -392,6 +397,7 @@ function maxFlush(a, b) { return flushiness[a] > flushiness[b] ? a : b; } +const flushBuffer = Buffer.alloc(0); Zlib.prototype.flush = function flush(kind, callback) { var ws = this._writableState; @@ -406,21 +412,13 @@ Zlib.prototype.flush = function flush(kind, callback) { } else if (ws.ending) { if (callback) this.once('end', callback); - } else if (ws.needDrain) { - const alreadyHadFlushScheduled = this._scheduledFlushFlag !== Z_NO_FLUSH; - this._scheduledFlushFlag = maxFlush(kind, this._scheduledFlushFlag); - - // If a callback was passed, always register a new `drain` + flush handler, - // mostly because that's simpler and flush callbacks piling up is a rare - // thing anyway. - if (!alreadyHadFlushScheduled || callback) { - const drainHandler = () => this.flush(this._scheduledFlushFlag, callback); - this.once('drain', drainHandler); - } + } else if (this._nextFlush !== -1) { + // This means that there is a flush currently in the write queue. + // We currently coalesce this flush into the pending one. + this._nextFlush = maxFlush(this._nextFlush, kind); } else { - this._flushFlag = kind; - this.write(Buffer.alloc(0), '', callback); - this._scheduledFlushFlag = Z_NO_FLUSH; + this._nextFlush = kind; + this.write(flushBuffer, '', callback); } }; @@ -430,20 +428,18 @@ Zlib.prototype.close = function close(callback) { }; Zlib.prototype._transform = function _transform(chunk, encoding, cb) { - // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag - // (or whatever flag was provided using opts.finishFlush). - // If it's explicitly flushing at some other time, then we use - // Z_FULL_FLUSH. Otherwise, use the original opts.flush flag. - var flushFlag; + var flushFlag = this._defaultFlushFlag; + // We use a 'fake' zero-length chunk to carry information about flushes from + // the public API to the actual stream implementation. + if (chunk === flushBuffer) { + flushFlag = this._nextFlush; + this._nextFlush = -1; + } + + // For the last chunk, also apply `_finishFlushFlag`. var ws = this._writableState; if ((ws.ending || ws.ended) && ws.length === chunk.byteLength) { - flushFlag = this._finishFlushFlag; - } else { - flushFlag = this._flushFlag; - // once we've flushed the last of the queue, stop flushing and - // go back to the normal behavior. - if (chunk.byteLength >= ws.length) - this._flushFlag = this._origFlushFlag; + flushFlag = maxFlush(flushFlag, this._finishFlushFlag); } processChunk(this, chunk, flushFlag, cb); }; @@ -713,6 +709,13 @@ function createProperty(ctor) { }; } +// Legacy alias on the C++ wrapper object. This is not public API, so we may +// want to runtime-deprecate it at some point. There's no hurry, though. +Object.defineProperty(binding.Zlib.prototype, 'jsref', { + get() { return this[owner_symbol]; }, + set(v) { return this[owner_symbol] = v; } +}); + module.exports = { Deflate, Inflate, diff --git a/node.gyp b/node.gyp index 4477bf59f151d7..910489d3ad5ce5 100644 --- a/node.gyp +++ b/node.gyp @@ -85,6 +85,7 @@ 'lib/zlib.js', 'lib/internal/assert.js', 'lib/internal/async_hooks.js', + 'lib/internal/bash_completion.js', 'lib/internal/buffer.js', 'lib/internal/cli_table.js', 'lib/internal/child_process.js', @@ -98,6 +99,7 @@ 'lib/internal/crypto/cipher.js', 'lib/internal/crypto/diffiehellman.js', 'lib/internal/crypto/hash.js', + 'lib/internal/crypto/keygen.js', 'lib/internal/crypto/pbkdf2.js', 'lib/internal/crypto/random.js', 'lib/internal/crypto/scrypt.js', @@ -159,6 +161,7 @@ 'lib/internal/url.js', 'lib/internal/util.js', 'lib/internal/util/comparisons.js', + 'lib/internal/util/inspect.js', 'lib/internal/util/inspector.js', 'lib/internal/util/types.js', 'lib/internal/http2/core.js', @@ -289,7 +292,7 @@ 'sources': [ 'tools/msvs/genfiles/node_perfctr_provider.rc', ], - }] + }], ], }], ], @@ -306,16 +309,11 @@ 'product_name': '<(node_core_target_name)-win', }], ], - }, + }, # node_core_target_name { 'target_name': '<(node_lib_target_name)', 'type': '<(node_intermediate_lib_type)', 'product_name': '<(node_core_target_name)', - - 'dependencies': [ - 'node_js2c#host', - ], - 'includes': [ 'node.gypi' ], @@ -428,7 +426,6 @@ 'src/node_root_certs.h', 'src/node_version.h', 'src/node_watchdog.h', - 'src/node_wrap.h', 'src/node_revert.h', 'src/node_i18n.h', 'src/node_worker.h', @@ -461,7 +458,6 @@ '<@(library_files)', # node.gyp is added to the project by default. 'common.gypi', - '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc', ], 'variables': { @@ -498,36 +494,7 @@ 'product_name': 'node_base', }], [ 'v8_enable_inspector==1', { - 'defines': [ - 'HAVE_INSPECTOR=1', - ], - 'sources': [ - 'src/inspector_agent.cc', - 'src/inspector_io.cc', - 'src/inspector_js_api.cc', - 'src/inspector_socket.cc', - 'src/inspector_socket_server.cc', - 'src/inspector/main_thread_interface.cc', - 'src/inspector/node_string.cc', - 'src/inspector/tracing_agent.cc', - 'src/inspector_agent.h', - 'src/inspector_io.h', - 'src/inspector_socket.h', - 'src/inspector_socket_server.h', - 'src/inspector/main_thread_interface.h', - 'src/inspector/node_string.h', - 'src/inspector/tracing_agent.h', - '<@(node_inspector_generated_sources)' - ], - 'dependencies': [ - 'node_protocol_generated_sources#host', - 'v8_inspector_compress_protocol_json#host', - ], - 'include_dirs': [ - '<(SHARED_INTERMEDIATE_DIR)/include', # for inspector - '<(SHARED_INTERMEDIATE_DIR)', - '<(SHARED_INTERMEDIATE_DIR)/src', # for inspector - ], + 'includes' : [ 'src/inspector/node_inspector.gypi' ], }, { 'defines': [ 'HAVE_INSPECTOR=0' ] }], @@ -637,15 +604,9 @@ 'src/tls_wrap.h' ], }], - ], - }, - { - 'target_name': 'mkssldef', - 'type': 'none', - # TODO(bnoordhuis) Make all platforms export the same list of symbols. - # Teach mkssldef.py to generate linker maps that UNIX linkers understand. - 'conditions': [ [ 'use_openssl_def==1', { + # TODO(bnoordhuis) Make all platforms export the same list of symbols. + # Teach mkssldef.py to generate linker maps that UNIX linkers understand. 'variables': { 'mkssldef_flags': [ # Categories to export. @@ -675,6 +636,7 @@ 'deps/openssl/openssl/util/libssl.num', ], 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/openssl.def'], + 'process_outputs_as_sources': 1, 'action': [ 'python', 'tools/mkssldef.py', @@ -687,9 +649,42 @@ ], }], ], - }, - # generate ETW header and resource files + 'actions': [ + { + 'action_name': 'node_js2c', + 'process_outputs_as_sources': 1, + 'inputs': [ + '<@(library_files)', + 'config.gypi', + 'tools/check_macros.py' + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc', + ], + 'conditions': [ + [ 'node_use_dtrace=="false" and node_use_etw=="false"', { + 'inputs': [ 'src/notrace_macros.py' ] + }], + [ 'node_use_perfctr=="false"', { + 'inputs': [ 'src/noperfctr_macros.py' ] + }], + [ 'node_debug_lib=="false"', { + 'inputs': [ 'tools/nodcheck_macros.py' ] + }], + [ 'node_debug_lib=="true"', { + 'inputs': [ 'tools/dcheck_macros.py' ] + }] + ], + 'action': [ + 'python', 'tools/js2c.py', + '<@(_outputs)', + '<@(_inputs)', + ], + }, + ], + }, # node_lib_target_name { + # generate ETW header and resource files 'target_name': 'node_etw', 'type': 'none', 'conditions': [ @@ -708,9 +703,9 @@ ] } ] ] - }, - # generate perf counter header and resource files + }, # node_etw { + # generate perf counter header and resource files 'target_name': 'node_perfctr', 'type': 'none', 'conditions': [ @@ -732,46 +727,7 @@ ], } ] ] - }, - { - 'target_name': 'node_js2c', - 'type': 'none', - 'toolsets': ['host'], - 'actions': [ - { - 'action_name': 'node_js2c', - 'process_outputs_as_sources': 1, - 'inputs': [ - '<@(library_files)', - './config.gypi', - 'tools/check_macros.py' - ], - 'outputs': [ - '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc', - ], - 'conditions': [ - [ 'node_use_dtrace=="false" and node_use_etw=="false"', { - 'inputs': [ 'src/notrace_macros.py' ] - }], - [ 'node_use_perfctr=="false"', { - 'inputs': [ 'src/noperfctr_macros.py' ] - }], - [ 'node_debug_lib=="false"', { - 'inputs': [ 'tools/nodcheck_macros.py' ] - }], - [ 'node_debug_lib=="true"', { - 'inputs': [ 'tools/dcheck_macros.py' ] - }] - ], - 'action': [ - 'python', - 'tools/js2c.py', - '<@(_outputs)', - '<@(_inputs)', - ], - }, - ], - }, # end node_js2c + }, # node_perfctr { 'target_name': 'node_dtrace_header', 'type': 'none', @@ -799,7 +755,7 @@ ] } ], ] - }, + }, # node_dtrace_header { 'target_name': 'node_dtrace_provider', 'type': 'none', @@ -834,7 +790,7 @@ ], }], ] - }, + }, # node_dtrace_provider { 'target_name': 'node_dtrace_ustack', 'type': 'none', @@ -882,7 +838,7 @@ ] } ], ] - }, + }, # node_dtrace_ustack { 'target_name': 'specialize_node_d', 'type': 'none', @@ -908,7 +864,7 @@ ], } ], ] - }, + }, # specialize_node_d { # When using shared lib to build executable in Windows, in order to avoid # filename collision, the executable name is node-win.exe. Need to rename @@ -936,7 +892,7 @@ ], } ], ] - }, + }, # rename_node_bin_win { 'target_name': 'cctest', 'type': 'executable', @@ -945,7 +901,6 @@ '<(node_lib_target_name)', 'rename_node_bin_win', 'deps/gtest/gtest.gyp:gtest', - 'node_js2c#host', 'node_dtrace_header', 'node_dtrace_ustack', 'node_dtrace_provider', @@ -1005,8 +960,13 @@ [ 'OS=="win" and node_shared=="true"', { 'type': 'none', }], + [ 'node_shared=="true"', { + 'xcode_settings': { + 'OTHER_LDFLAGS': [ '-Wl,-rpath,@loader_path', ], + }, + }], ], - } + }, # cctest ], # end targets 'conditions': [ @@ -1057,163 +1017,5 @@ }, ] }], # end aix section - [ 'v8_enable_inspector==1', { - 'variables': { - 'protocol_path': 'tools/inspector_protocol', - 'node_inspector_path': 'src/inspector', - 'node_inspector_generated_sources': [ - '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Forward.h', - '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Protocol.cpp', - '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Protocol.h', - '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeTracing.cpp', - '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeTracing.h', - ], - 'node_protocol_files': [ - '<(protocol_path)/lib/Allocator_h.template', - '<(protocol_path)/lib/Array_h.template', - '<(protocol_path)/lib/Collections_h.template', - '<(protocol_path)/lib/DispatcherBase_cpp.template', - '<(protocol_path)/lib/DispatcherBase_h.template', - '<(protocol_path)/lib/ErrorSupport_cpp.template', - '<(protocol_path)/lib/ErrorSupport_h.template', - '<(protocol_path)/lib/Forward_h.template', - '<(protocol_path)/lib/FrontendChannel_h.template', - '<(protocol_path)/lib/Maybe_h.template', - '<(protocol_path)/lib/Object_cpp.template', - '<(protocol_path)/lib/Object_h.template', - '<(protocol_path)/lib/Parser_cpp.template', - '<(protocol_path)/lib/Parser_h.template', - '<(protocol_path)/lib/Protocol_cpp.template', - '<(protocol_path)/lib/ValueConversions_h.template', - '<(protocol_path)/lib/Values_cpp.template', - '<(protocol_path)/lib/Values_h.template', - '<(protocol_path)/templates/Exported_h.template', - '<(protocol_path)/templates/Imported_h.template', - '<(protocol_path)/templates/TypeBuilder_cpp.template', - '<(protocol_path)/templates/TypeBuilder_h.template', - '<(protocol_path)/CodeGenerator.py', - ] - }, - 'targets': [ - { - 'target_name': 'prepare_protocol_json', - 'type': 'none', - 'toolsets': ['host'], - 'copies': [ - { - 'files': [ - '<(node_inspector_path)/node_protocol_config.json', - '<(node_inspector_path)/node_protocol.pdl' - ], - 'destination': '<(SHARED_INTERMEDIATE_DIR)', - } - ], - 'actions': [ - { - 'action_name': 'convert_node_protocol_to_json', - 'inputs': [ - '<(SHARED_INTERMEDIATE_DIR)/node_protocol.pdl', - ], - 'outputs': [ - '<(SHARED_INTERMEDIATE_DIR)/node_protocol.json', - ], - 'action': [ - 'python', - 'tools/inspector_protocol/ConvertProtocolToJSON.py', - '<@(_inputs)', - '<@(_outputs)', - ], - }, - ] - }, - { - 'target_name': 'node_protocol_generated_sources', - 'type': 'none', - 'toolsets': ['host'], - 'dependencies': ['prepare_protocol_json'], - 'actions': [ - { - 'action_name': 'node_protocol_generated_sources', - 'inputs': [ - '<(SHARED_INTERMEDIATE_DIR)/node_protocol_config.json', - '<(SHARED_INTERMEDIATE_DIR)/node_protocol.json', - '<@(node_protocol_files)', - ], - 'outputs': [ - '<@(node_inspector_generated_sources)', - ], - 'action': [ - 'python', - '<(protocol_path)/CodeGenerator.py', - '--jinja_dir', '<@(protocol_path)/..', - '--output_base', '<(SHARED_INTERMEDIATE_DIR)/src/', - '--config', '<(SHARED_INTERMEDIATE_DIR)/node_protocol_config.json', - ], - 'message': 'Generating node protocol sources from protocol json', - }, - ] - }, - { - 'target_name': 'v8_inspector_compress_protocol_json', - 'type': 'none', - 'toolsets': ['host'], - 'copies': [ - { - 'destination': '<(SHARED_INTERMEDIATE_DIR)', - 'files': ['deps/v8/src/inspector/js_protocol.pdl'] - } - ], - 'actions': [ - { - 'action_name': 'v8_inspector_convert_protocol_to_json', - 'inputs': [ - '<(SHARED_INTERMEDIATE_DIR)/js_protocol.pdl', - ], - 'outputs': [ - '<(SHARED_INTERMEDIATE_DIR)/js_protocol.json', - ], - 'action': [ - 'python', - 'tools/inspector_protocol/ConvertProtocolToJSON.py', - '<@(_inputs)', - '<@(_outputs)', - ], - }, - { - 'action_name': 'concatenate_protocols', - 'inputs': [ - '<(SHARED_INTERMEDIATE_DIR)/js_protocol.json', - '<(SHARED_INTERMEDIATE_DIR)/node_protocol.json', - ], - 'outputs': [ - '<(SHARED_INTERMEDIATE_DIR)/concatenated_protocol.json', - ], - 'action': [ - 'python', - 'tools/inspector_protocol/ConcatenateProtocols.py', - '<@(_inputs)', - '<@(_outputs)', - ], - }, - { - 'action_name': 'v8_inspector_compress_protocol_json', - 'process_outputs_as_sources': 1, - 'inputs': [ - '<(SHARED_INTERMEDIATE_DIR)/concatenated_protocol.json', - ], - 'outputs': [ - '<(SHARED_INTERMEDIATE_DIR)/v8_inspector_protocol_json.h', - ], - 'action': [ - 'python', - 'tools/compress_json.py', - '<@(_inputs)', - '<@(_outputs)', - ], - }, - ], - }, - ] - }] ], # end conditions block } diff --git a/node.gypi b/node.gypi index 77ab11ef435257..ae56249ae3ad76 100644 --- a/node.gypi +++ b/node.gypi @@ -24,6 +24,16 @@ }, 'force_load%': '<(force_load)', }, + # Putting these explicitly here so not to be dependant on common.gypi. + 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ], + 'xcode_settings': { + 'WARNING_CFLAGS': [ + '-Wall', + '-Wendif-labels', + '-W', + '-Wno-unused-parameter', + ], + }, 'conditions': [ [ 'node_shared=="false"', { 'msvs_settings': { @@ -112,21 +122,12 @@ [ 'node_no_browser_globals=="true"', { 'defines': [ 'NODE_NO_BROWSER_GLOBALS' ], } ], - [ 'node_use_bundled_v8=="true" and v8_postmortem_support=="true"', { - 'conditions': [ - # -force_load is not applicable for the static library - [ 'force_load=="true"', { - 'xcode_settings': { - 'OTHER_LDFLAGS': [ - '-Wl,-force_load,<(v8_base)', - ], - }, - }], - # when building with GN, the v8_monolith target already includes postmortem metadata - [ 'build_v8_with_gn=="false"', { - 'dependencies': [ 'deps/v8/gypfiles/v8.gyp:postmortem-metadata' ], - }], - ], + [ 'node_use_bundled_v8=="true" and v8_postmortem_support=="true" and force_load=="true"', { + 'xcode_settings': { + 'OTHER_LDFLAGS': [ + '-Wl,-force_load,<(v8_base)', + ], + }, }], [ 'node_shared_zlib=="false"', { 'dependencies': [ 'deps/zlib/zlib.gyp:zlib' ], diff --git a/src/aliased_buffer.h b/src/aliased_buffer.h index 931b2753646b8c..2642b2b2a744f0 100644 --- a/src/aliased_buffer.h +++ b/src/aliased_buffer.h @@ -14,7 +14,7 @@ namespace node { * going through JS, and the data is then available to user's via the exposed * JS object. * - * While this technique is computationaly efficient, it is effectively a + * While this technique is computationally efficient, it is effectively a * write to JS program state w/out going through the standard * (monitored) API. Thus any VM capabilities to detect the modification are * circumvented. diff --git a/src/async_wrap.cc b/src/async_wrap.cc index a8a4601e76ec43..0cfe0202ccf675 100644 --- a/src/async_wrap.cc +++ b/src/async_wrap.cc @@ -63,7 +63,7 @@ struct AsyncWrapObject : public AsyncWrap { static inline void New(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); CHECK(args.IsConstructCall()); - CHECK(env->async_wrap_constructor_template()->HasInstance(args.This())); + CHECK(env->async_wrap_object_ctor_template()->HasInstance(args.This())); CHECK(args[0]->IsUint32()); auto type = static_cast(args[0].As()->Value()); new AsyncWrapObject(env, args.This(), type); @@ -72,9 +72,9 @@ struct AsyncWrapObject : public AsyncWrap { inline AsyncWrapObject(Environment* env, Local object, ProviderType type) : AsyncWrap(env, object, type) {} - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(AsyncWrapObject) + SET_SELF_SIZE(AsyncWrapObject) }; @@ -180,9 +180,9 @@ class PromiseWrap : public AsyncWrap { MakeWeak(); } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(PromiseWrap) + SET_SELF_SIZE(PromiseWrap) static constexpr int kPromiseField = 1; static constexpr int kIsChainedPromiseField = 2; @@ -423,12 +423,16 @@ void AsyncWrap::QueueDestroyAsyncId(const FunctionCallbackInfo& args) { args[0].As()->Value()); } -void AsyncWrap::AddWrapMethods(Environment* env, - Local constructor, - int flag) { - env->SetProtoMethod(constructor, "getAsyncId", AsyncWrap::GetAsyncId); - if (flag & kFlagHasReset) - env->SetProtoMethod(constructor, "asyncReset", AsyncWrap::AsyncReset); +Local AsyncWrap::GetConstructorTemplate(Environment* env) { + Local tmpl = env->async_wrap_ctor_template(); + if (tmpl.IsEmpty()) { + tmpl = env->NewFunctionTemplate(nullptr); + tmpl->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "AsyncWrap")); + env->SetProtoMethod(tmpl, "getAsyncId", AsyncWrap::GetAsyncId); + env->SetProtoMethod(tmpl, "asyncReset", AsyncWrap::AsyncReset); + env->set_async_wrap_ctor_template(tmpl); + } + return tmpl; } void AsyncWrap::Initialize(Local target, @@ -524,17 +528,20 @@ void AsyncWrap::Initialize(Local target, env->set_async_hooks_promise_resolve_function(Local()); env->set_async_hooks_binding(target); + // TODO(addaleax): This block might better work as a + // AsyncWrapObject::Initialize() or AsyncWrapObject::GetConstructorTemplate() + // function. { auto class_name = FIXED_ONE_BYTE_STRING(env->isolate(), "AsyncWrap"); auto function_template = env->NewFunctionTemplate(AsyncWrapObject::New); function_template->SetClassName(class_name); - AsyncWrap::AddWrapMethods(env, function_template); + function_template->Inherit(AsyncWrap::GetConstructorTemplate(env)); auto instance_template = function_template->InstanceTemplate(); instance_template->SetInternalFieldCount(1); auto function = function_template->GetFunction(env->context()).ToLocalChecked(); target->Set(env->context(), class_name, function).FromJust(); - env->set_async_wrap_constructor_template(function_template); + env->set_async_wrap_object_ctor_template(function_template); } } @@ -555,9 +562,6 @@ AsyncWrap::AsyncWrap(Environment* env, CHECK_NE(provider, PROVIDER_NONE); CHECK_GE(object->InternalFieldCount(), 1); - // Shift provider value over to prevent id collision. - persistent().SetWrapperClassId(NODE_ASYNC_ID_OFFSET + provider_type_); - // Use AsyncReset() call to execute the init() callbacks. AsyncReset(execution_async_id, silent); } diff --git a/src/async_wrap.h b/src/async_wrap.h index a84935eecb7626..d9944e12774325 100644 --- a/src/async_wrap.h +++ b/src/async_wrap.h @@ -31,8 +31,6 @@ namespace node { -#define NODE_ASYNC_ID_OFFSET 0xA1C - #define NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \ V(NONE) \ V(DNSCHANNEL) \ @@ -74,6 +72,7 @@ namespace node { #if HAVE_OPENSSL #define NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V) \ V(PBKDF2REQUEST) \ + V(KEYPAIRGENREQUEST) \ V(RANDOMBYTESREQUEST) \ V(SCRYPTREQUEST) \ V(TLSWRAP) @@ -106,11 +105,6 @@ class AsyncWrap : public BaseObject { PROVIDERS_LENGTH, }; - enum Flags { - kFlagNone = 0x0, - kFlagHasReset = 0x1 - }; - AsyncWrap(Environment* env, v8::Local object, ProviderType provider, @@ -118,9 +112,8 @@ class AsyncWrap : public BaseObject { virtual ~AsyncWrap(); - static void AddWrapMethods(Environment* env, - v8::Local constructor, - int flags = kFlagNone); + static v8::Local GetConstructorTemplate( + Environment* env); static void Initialize(v8::Local target, v8::Local unused, diff --git a/src/base_object-inl.h b/src/base_object-inl.h index d067a807cb8e14..8c8fa1699c3069 100644 --- a/src/base_object-inl.h +++ b/src/base_object-inl.h @@ -95,13 +95,12 @@ void BaseObject::MakeWeak() { persistent_handle_.SetWeak( this, [](const v8::WeakCallbackInfo& data) { - BaseObject* obj = data.GetParameter(); + std::unique_ptr obj(data.GetParameter()); // Clear the persistent handle so that ~BaseObject() doesn't attempt // to mess with internal fields, since the JS object may have // transitioned into an invalid state. // Refs: https://github.com/nodejs/node/issues/18897 obj->persistent_handle_.Reset(); - delete obj; }, v8::WeakCallbackType::kParameter); } diff --git a/src/base_object.h b/src/base_object.h index 64a237143386f2..e0f3f27950e7d0 100644 --- a/src/base_object.h +++ b/src/base_object.h @@ -33,11 +33,6 @@ namespace node { class Environment; -#define ADD_MEMORY_INFO_NAME(name) \ - std::string MemoryInfoName() const override { \ - return #name; \ - } - class BaseObject : public MemoryRetainer { public: // Associates this object with `object`. It uses the 0th internal field for diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc index 4994e0d90a9cd0..d23a145ca8aac6 100644 --- a/src/bootstrapper.cc +++ b/src/bootstrapper.cc @@ -12,8 +12,13 @@ using v8::Context; using v8::Function; using v8::FunctionCallbackInfo; using v8::Isolate; +using v8::kPromiseHandlerAddedAfterReject; +using v8::kPromiseRejectAfterResolved; +using v8::kPromiseRejectWithNoHandler; +using v8::kPromiseResolveAfterResolved; using v8::Local; using v8::MaybeLocal; +using v8::Number; using v8::Object; using v8::Promise; using v8::PromiseRejectEvent; @@ -61,34 +66,40 @@ void PromiseRejectCallback(PromiseRejectMessage message) { PromiseRejectEvent event = message.GetEvent(); Environment* env = Environment::GetCurrent(isolate); + if (env == nullptr) return; - Local callback; + + Local callback = env->promise_handler_function(); Local value; + Local type = Number::New(env->isolate(), event); - if (event == v8::kPromiseRejectWithNoHandler) { - callback = env->promise_reject_unhandled_function(); + if (event == kPromiseRejectWithNoHandler) { value = message.GetValue(); - - if (value.IsEmpty()) - value = Undefined(isolate); - unhandledRejections++; - } else if (event == v8::kPromiseHandlerAddedAfterReject) { - callback = env->promise_reject_handled_function(); + TRACE_COUNTER2(TRACING_CATEGORY_NODE2(promises, rejections), + "rejections", + "unhandled", unhandledRejections, + "handledAfter", rejectionsHandledAfter); + } else if (event == kPromiseHandlerAddedAfterReject) { value = Undefined(isolate); - rejectionsHandledAfter++; + TRACE_COUNTER2(TRACING_CATEGORY_NODE2(promises, rejections), + "rejections", + "unhandled", unhandledRejections, + "handledAfter", rejectionsHandledAfter); + } else if (event == kPromiseResolveAfterResolved) { + value = message.GetValue(); + } else if (event == kPromiseRejectAfterResolved) { + value = message.GetValue(); } else { return; } - TRACE_COUNTER2(TRACING_CATEGORY_NODE2(promises, rejections), - "rejections", - "unhandled", unhandledRejections, - "handledAfter", rejectionsHandledAfter); - + if (value.IsEmpty()) { + value = Undefined(isolate); + } - Local args[] = { promise, value }; + Local args[] = { type, promise, value }; MaybeLocal ret = callback->Call(env->context(), Undefined(isolate), arraysize(args), @@ -103,11 +114,17 @@ void SetupPromises(const FunctionCallbackInfo& args) { Isolate* isolate = env->isolate(); CHECK(args[0]->IsFunction()); - CHECK(args[1]->IsFunction()); + CHECK(args[1]->IsObject()); + + Local constants = args[1].As(); + + NODE_DEFINE_CONSTANT(constants, kPromiseRejectWithNoHandler); + NODE_DEFINE_CONSTANT(constants, kPromiseHandlerAddedAfterReject); + NODE_DEFINE_CONSTANT(constants, kPromiseResolveAfterResolved); + NODE_DEFINE_CONSTANT(constants, kPromiseRejectAfterResolved); isolate->SetPromiseRejectCallback(PromiseRejectCallback); - env->set_promise_reject_unhandled_function(args[0].As()); - env->set_promise_reject_handled_function(args[1].As()); + env->set_promise_handler_function(args[0].As()); } #define BOOTSTRAP_METHOD(name, fn) env->SetMethod(bootstrapper, #name, fn) diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc index a3de844d7ec97e..8799f4a3cd0c37 100644 --- a/src/cares_wrap.cc +++ b/src/cares_wrap.cc @@ -127,8 +127,9 @@ struct node_ares_task : public MemoryRetainer { ares_socket_t sock; uv_poll_t poll_watcher; - void MemoryInfo(MemoryTracker* tracker) const override; - ADD_MEMORY_INFO_NAME(node_ares_task) + inline void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(node_ares_task) + SET_SELF_SIZE(node_ares_task) }; struct TaskHash { @@ -172,13 +173,13 @@ class ChannelWrap : public AsyncWrap { inline node_ares_task_list* task_list() { return &task_list_; } void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); if (timer_handle_ != nullptr) - tracker->TrackFieldWithSize("timer handle", sizeof(*timer_handle_)); - tracker->TrackField("node_ares_task_list", task_list_); + tracker->TrackField("timer_handle", *timer_handle_); + tracker->TrackField("task_list", task_list_, "node_ares_task_list"); } - ADD_MEMORY_INFO_NAME(ChannelWrap) + SET_MEMORY_INFO_NAME(ChannelWrap) + SET_SELF_SIZE(ChannelWrap) static void AresTimeout(uv_timer_t* handle); @@ -192,11 +193,6 @@ class ChannelWrap : public AsyncWrap { node_ares_task_list task_list_; }; -void node_ares_task::MemoryInfo(MemoryTracker* tracker) const { - tracker->TrackThis(this); - tracker->TrackField("channel", channel); -} - ChannelWrap::ChannelWrap(Environment* env, Local object) : AsyncWrap(env, object, PROVIDER_DNSCHANNEL), @@ -225,11 +221,9 @@ class GetAddrInfoReqWrap : public ReqWrap { Local req_wrap_obj, bool verbatim); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(GetAddrInfoReqWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(GetAddrInfoReqWrap) + SET_SELF_SIZE(GetAddrInfoReqWrap) bool verbatim() const { return verbatim_; } @@ -249,11 +243,9 @@ class GetNameInfoReqWrap : public ReqWrap { public: GetNameInfoReqWrap(Environment* env, Local req_wrap_obj); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(GetNameInfoReqWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(GetNameInfoReqWrap) + SET_SELF_SIZE(GetNameInfoReqWrap) }; GetNameInfoReqWrap::GetNameInfoReqWrap(Environment* env, @@ -298,6 +290,9 @@ void ares_poll_close_cb(uv_poll_t* watcher) { delete task; } +void node_ares_task::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackField("channel", channel); +} /* Allocates and returns a new node_ares_task */ node_ares_task* ares_task_create(ChannelWrap* channel, ares_socket_t sock) { @@ -434,7 +429,6 @@ void cares_wrap_hostent_cpy(struct hostent* dest, struct hostent* src) { /* copy `h_aliases` */ size_t alias_count; - size_t cur_alias_length; for (alias_count = 0; src->h_aliases[alias_count] != nullptr; alias_count++) { @@ -442,9 +436,9 @@ void cares_wrap_hostent_cpy(struct hostent* dest, struct hostent* src) { dest->h_aliases = node::Malloc(alias_count + 1); for (size_t i = 0; i < alias_count; i++) { - cur_alias_length = strlen(src->h_aliases[i]); - dest->h_aliases[i] = node::Malloc(cur_alias_length + 1); - memcpy(dest->h_aliases[i], src->h_aliases[i], cur_alias_length + 1); + const size_t cur_alias_size = strlen(src->h_aliases[i]) + 1; + dest->h_aliases[i] = node::Malloc(cur_alias_size); + memcpy(dest->h_aliases[i], src->h_aliases[i], cur_alias_size); } dest->h_aliases[alias_count] = nullptr; @@ -1070,7 +1064,6 @@ int ParseSoaReply(Environment* env, /* Can't use ares_parse_soa_reply() here which can only parse single record */ unsigned int ancount = cares_get_16bit(buf + 6); unsigned char* ptr = buf + NS_HFIXEDSZ; - int rr_type, rr_len; char* name; char* rr_name; long temp_len; // NOLINT(runtime/int) @@ -1099,8 +1092,8 @@ int ParseSoaReply(Environment* env, break; } - rr_type = cares_get_16bit(ptr); - rr_len = cares_get_16bit(ptr + 8); + const int rr_type = cares_get_16bit(ptr); + const int rr_len = cares_get_16bit(ptr + 8); ptr += NS_RRFIXEDSZ; /* only need SOA */ @@ -1195,11 +1188,9 @@ class QueryAnyWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QueryAnyWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QueryAnyWrap) + SET_SELF_SIZE(QueryAnyWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1376,11 +1367,9 @@ class QueryAWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QueryAWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QueryAWrap) + SET_SELF_SIZE(QueryAWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1424,11 +1413,9 @@ class QueryAaaaWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QueryAaaaWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QueryAaaaWrap) + SET_SELF_SIZE(QueryAaaaWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1472,11 +1459,9 @@ class QueryCnameWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QueryCnameWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QueryCnameWrap) + SET_SELF_SIZE(QueryCnameWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1507,11 +1492,9 @@ class QueryMxWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QueryMxWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QueryMxWrap) + SET_SELF_SIZE(QueryMxWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1542,11 +1525,9 @@ class QueryNsWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QueryNsWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QueryNsWrap) + SET_SELF_SIZE(QueryNsWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1577,11 +1558,9 @@ class QueryTxtWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QueryTxtWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QueryTxtWrap) + SET_SELF_SIZE(QueryTxtWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1611,11 +1590,9 @@ class QuerySrvWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QuerySrvWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QuerySrvWrap) + SET_SELF_SIZE(QuerySrvWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1644,11 +1621,9 @@ class QueryPtrWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QueryPtrWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QueryPtrWrap) + SET_SELF_SIZE(QueryPtrWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1679,11 +1654,9 @@ class QueryNaptrWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QueryNaptrWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QueryNaptrWrap) + SET_SELF_SIZE(QueryNaptrWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1713,11 +1686,9 @@ class QuerySoaWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(QuerySoaWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(QuerySoaWrap) + SET_SELF_SIZE(QuerySoaWrap) protected: void Parse(unsigned char* buf, int len) override { @@ -1801,11 +1772,9 @@ class GetHostByAddrWrap: public QueryWrap { return 0; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(GetHostByAddrWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(GetHostByAddrWrap) + SET_SELF_SIZE(GetHostByAddrWrap) protected: void Parse(struct hostent* host) override { @@ -2220,32 +2189,32 @@ void Initialize(Local target, Local aiw = BaseObject::MakeLazilyInitializedJSTemplate(env); - AsyncWrap::AddWrapMethods(env, aiw); + aiw->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local addrInfoWrapString = FIXED_ONE_BYTE_STRING(env->isolate(), "GetAddrInfoReqWrap"); aiw->SetClassName(addrInfoWrapString); - target->Set(addrInfoWrapString, aiw->GetFunction()); + target->Set(addrInfoWrapString, aiw->GetFunction(context).ToLocalChecked()); Local niw = BaseObject::MakeLazilyInitializedJSTemplate(env); - AsyncWrap::AddWrapMethods(env, niw); + niw->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local nameInfoWrapString = FIXED_ONE_BYTE_STRING(env->isolate(), "GetNameInfoReqWrap"); niw->SetClassName(nameInfoWrapString); - target->Set(nameInfoWrapString, niw->GetFunction()); + target->Set(nameInfoWrapString, niw->GetFunction(context).ToLocalChecked()); Local qrw = BaseObject::MakeLazilyInitializedJSTemplate(env); - AsyncWrap::AddWrapMethods(env, qrw); + qrw->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local queryWrapString = FIXED_ONE_BYTE_STRING(env->isolate(), "QueryReqWrap"); qrw->SetClassName(queryWrapString); - target->Set(queryWrapString, qrw->GetFunction()); + target->Set(queryWrapString, qrw->GetFunction(context).ToLocalChecked()); Local channel_wrap = env->NewFunctionTemplate(ChannelWrap::New); channel_wrap->InstanceTemplate()->SetInternalFieldCount(1); - AsyncWrap::AddWrapMethods(env, channel_wrap); + channel_wrap->Inherit(AsyncWrap::GetConstructorTemplate(env)); env->SetProtoMethod(channel_wrap, "queryAny", Query); env->SetProtoMethod(channel_wrap, "queryA", Query); @@ -2267,7 +2236,8 @@ void Initialize(Local target, Local channelWrapString = FIXED_ONE_BYTE_STRING(env->isolate(), "ChannelWrap"); channel_wrap->SetClassName(channelWrapString); - target->Set(channelWrapString, channel_wrap->GetFunction()); + target->Set(channelWrapString, + channel_wrap->GetFunction(context).ToLocalChecked()); } } // anonymous namespace diff --git a/src/connect_wrap.h b/src/connect_wrap.h index 2370157eaa2a11..88221b77468631 100644 --- a/src/connect_wrap.h +++ b/src/connect_wrap.h @@ -16,11 +16,9 @@ class ConnectWrap : public ReqWrap { v8::Local req_wrap_obj, AsyncWrap::ProviderType provider); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(ConnectWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(ConnectWrap) + SET_SELF_SIZE(ConnectWrap) }; } // namespace node diff --git a/src/connection_wrap.cc b/src/connection_wrap.cc index 3021307c065511..db239f9becdb53 100644 --- a/src/connection_wrap.cc +++ b/src/connection_wrap.cc @@ -77,7 +77,8 @@ void ConnectionWrap::OnConnection(uv_stream_t* handle, template void ConnectionWrap::AfterConnect(uv_connect_t* req, int status) { - ConnectWrap* req_wrap = static_cast(req->data); + std::unique_ptr req_wrap + (static_cast(req->data)); CHECK_NOT_NULL(req_wrap); WrapType* wrap = static_cast(req->handle->data); CHECK_EQ(req_wrap->env(), wrap->env()); @@ -108,8 +109,6 @@ void ConnectionWrap::AfterConnect(uv_connect_t* req, }; req_wrap->MakeCallback(env->oncomplete_string(), arraysize(argv), argv); - - delete req_wrap; } template ConnectionWrap::ConnectionWrap( diff --git a/src/env-inl.h b/src/env-inl.h index 4e0a95ed424cd9..208cc5381c9008 100644 --- a/src/env-inl.h +++ b/src/env-inl.h @@ -710,13 +710,15 @@ inline v8::Local inline void Environment::SetMethod(v8::Local that, const char* name, v8::FunctionCallback callback) { + v8::Local context = isolate()->GetCurrentContext(); v8::Local function = - NewFunctionTemplate(callback, - v8::Local(), + NewFunctionTemplate(callback, v8::Local(), // TODO(TimothyGu): Investigate if SetMethod is ever // used for constructors. v8::ConstructorBehavior::kAllow, - v8::SideEffectType::kHasSideEffect)->GetFunction(); + v8::SideEffectType::kHasSideEffect) + ->GetFunction(context) + .ToLocalChecked(); // kInternalized strings are created in the old space. const v8::NewStringType type = v8::NewStringType::kInternalized; v8::Local name_string = @@ -728,13 +730,15 @@ inline void Environment::SetMethod(v8::Local that, inline void Environment::SetMethodNoSideEffect(v8::Local that, const char* name, v8::FunctionCallback callback) { + v8::Local context = isolate()->GetCurrentContext(); v8::Local function = - NewFunctionTemplate(callback, - v8::Local(), + NewFunctionTemplate(callback, v8::Local(), // TODO(TimothyGu): Investigate if SetMethod is ever // used for constructors. v8::ConstructorBehavior::kAllow, - v8::SideEffectType::kHasNoSideEffect)->GetFunction(); + v8::SideEffectType::kHasNoSideEffect) + ->GetFunction(context) + .ToLocalChecked(); // kInternalized strings are created in the old space. const v8::NewStringType type = v8::NewStringType::kInternalized; v8::Local name_string = diff --git a/src/env.cc b/src/env.cc index 7356f04db38c95..57c0be960f7784 100644 --- a/src/env.cc +++ b/src/env.cc @@ -230,8 +230,10 @@ void Environment::Start(const std::vector& args, auto process_template = FunctionTemplate::New(isolate()); process_template->SetClassName(FIXED_ONE_BYTE_STRING(isolate(), "process")); - auto process_object = - process_template->GetFunction()->NewInstance(context()).ToLocalChecked(); + auto process_object = process_template->GetFunction(context()) + .ToLocalChecked() + ->NewInstance(context()) + .ToLocalChecked(); set_process_object(process_object); SetupProcessObject(this, args, exec_args); diff --git a/src/env.h b/src/env.h index ae88727822d3de..80fc750f0b555a 100644 --- a/src/env.h +++ b/src/env.h @@ -113,6 +113,7 @@ struct PackageConfig { #define PER_ISOLATE_SYMBOL_PROPERTIES(V) \ V(handle_onclose_symbol, "handle_onclose") \ V(owner_symbol, "owner") \ + V(oninit_symbol, "oninit") \ // Strings are per-isolate primitives but Environment proxies them // for the sake of convenience. Strings should be ASCII-only. @@ -219,15 +220,16 @@ struct PackageConfig { V(onhandshakedone_string, "onhandshakedone") \ V(onhandshakestart_string, "onhandshakestart") \ V(onheaders_string, "onheaders") \ - V(oninit_string, "oninit") \ V(onmessage_string, "onmessage") \ V(onnewsession_string, "onnewsession") \ V(onocspresponse_string, "onocspresponse") \ V(ongoawaydata_string, "ongoawaydata") \ + V(onorigin_string, "onorigin") \ V(onpriority_string, "onpriority") \ V(onread_string, "onread") \ V(onreadstart_string, "onreadstart") \ V(onreadstop_string, "onreadstop") \ + V(onping_string, "onping") \ V(onsettings_string, "onsettings") \ V(onshutdown_string, "onshutdown") \ V(onsignal_string, "onsignal") \ @@ -317,7 +319,8 @@ struct PackageConfig { V(async_hooks_destroy_function, v8::Function) \ V(async_hooks_init_function, v8::Function) \ V(async_hooks_promise_resolve_function, v8::Function) \ - V(async_wrap_constructor_template, v8::FunctionTemplate) \ + V(async_wrap_object_ctor_template, v8::FunctionTemplate) \ + V(async_wrap_ctor_template, v8::FunctionTemplate) \ V(buffer_prototype_object, v8::Object) \ V(context, v8::Context) \ V(domain_callback, v8::Function) \ @@ -327,6 +330,7 @@ struct PackageConfig { V(filehandlereadwrap_template, v8::ObjectTemplate) \ V(fsreqpromise_constructor_template, v8::ObjectTemplate) \ V(fs_use_promises_symbol, v8::Symbol) \ + V(handle_wrap_ctor_template, v8::FunctionTemplate) \ V(host_import_module_dynamically_callback, v8::Function) \ V(host_initialize_import_meta_object_callback, v8::Function) \ V(http2ping_constructor_template, v8::ObjectTemplate) \ @@ -334,14 +338,14 @@ struct PackageConfig { V(http2stream_constructor_template, v8::ObjectTemplate) \ V(immediate_callback_function, v8::Function) \ V(inspector_console_api_object, v8::Object) \ + V(libuv_stream_wrap_ctor_template, v8::FunctionTemplate) \ V(message_port, v8::Object) \ V(message_port_constructor_template, v8::FunctionTemplate) \ V(pipe_constructor_template, v8::FunctionTemplate) \ V(performance_entry_callback, v8::Function) \ V(performance_entry_template, v8::Function) \ V(process_object, v8::Object) \ - V(promise_reject_handled_function, v8::Function) \ - V(promise_reject_unhandled_function, v8::Function) \ + V(promise_handler_function, v8::Function) \ V(promise_wrap_template, v8::ObjectTemplate) \ V(push_values_to_array_function, v8::Function) \ V(sab_lifetimepartner_constructor_template, v8::FunctionTemplate) \ diff --git a/src/exceptions.cc b/src/exceptions.cc index d1c0794e82fde4..5924701208a311 100644 --- a/src/exceptions.cc +++ b/src/exceptions.cc @@ -137,7 +137,9 @@ Local UVException(Isolate* isolate, String::Concat(isolate, js_msg, FIXED_ONE_BYTE_STRING(isolate, "'")); } - Local e = Exception::Error(js_msg)->ToObject(isolate); + Local e = + Exception::Error(js_msg)->ToObject(isolate->GetCurrentContext()) + .ToLocalChecked(); e->Set(env->errno_string(), Integer::New(isolate, errorno)); e->Set(env->code_string(), js_code); diff --git a/src/fs_event_wrap.cc b/src/fs_event_wrap.cc index e0cdab4d3e20f1..130996a6b7fcdd 100644 --- a/src/fs_event_wrap.cc +++ b/src/fs_event_wrap.cc @@ -57,11 +57,9 @@ class FSEventWrap: public HandleWrap { static void Start(const FunctionCallbackInfo& args); static void GetInitialized(const FunctionCallbackInfo& args); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(FSEventWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(FSEventWrap) + SET_SELF_SIZE(FSEventWrap) private: static const encoding kDefaultEncoding = UTF8; @@ -105,7 +103,7 @@ void FSEventWrap::Initialize(Local target, t->InstanceTemplate()->SetInternalFieldCount(1); t->SetClassName(fsevent_string); - AsyncWrap::AddWrapMethods(env, t); + t->Inherit(AsyncWrap::GetConstructorTemplate(env)); env->SetProtoMethod(t, "start", Start); env->SetProtoMethod(t, "close", Close); @@ -121,7 +119,7 @@ void FSEventWrap::Initialize(Local target, Local(), static_cast(ReadOnly | DontDelete | v8::DontEnum)); - target->Set(fsevent_string, t->GetFunction()); + target->Set(fsevent_string, t->GetFunction(context).ToLocalChecked()); } diff --git a/src/handle_wrap.cc b/src/handle_wrap.cc index 9281300146c4f3..d4c5962c35e806 100644 --- a/src/handle_wrap.cc +++ b/src/handle_wrap.cc @@ -130,13 +130,19 @@ void HandleWrap::OnClose(uv_handle_t* handle) { } } - -void HandleWrap::AddWrapMethods(Environment* env, - Local t) { - env->SetProtoMethod(t, "close", HandleWrap::Close); - env->SetProtoMethodNoSideEffect(t, "hasRef", HandleWrap::HasRef); - env->SetProtoMethod(t, "ref", HandleWrap::Ref); - env->SetProtoMethod(t, "unref", HandleWrap::Unref); +Local HandleWrap::GetConstructorTemplate(Environment* env) { + Local tmpl = env->handle_wrap_ctor_template(); + if (tmpl.IsEmpty()) { + tmpl = env->NewFunctionTemplate(nullptr); + tmpl->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "HandleWrap")); + tmpl->Inherit(AsyncWrap::GetConstructorTemplate(env)); + env->SetProtoMethod(tmpl, "close", HandleWrap::Close); + env->SetProtoMethodNoSideEffect(tmpl, "hasRef", HandleWrap::HasRef); + env->SetProtoMethod(tmpl, "ref", HandleWrap::Ref); + env->SetProtoMethod(tmpl, "unref", HandleWrap::Unref); + env->set_handle_wrap_ctor_template(tmpl); + } + return tmpl; } diff --git a/src/handle_wrap.h b/src/handle_wrap.h index 443d28bf523933..b2722511c3c09f 100644 --- a/src/handle_wrap.h +++ b/src/handle_wrap.h @@ -73,8 +73,8 @@ class HandleWrap : public AsyncWrap { virtual void Close( v8::Local close_callback = v8::Local()); - static void AddWrapMethods(Environment* env, - v8::Local constructor); + static v8::Local GetConstructorTemplate( + Environment* env); protected: HandleWrap(Environment* env, diff --git a/src/heap_utils.cc b/src/heap_utils.cc index 2d339c580fa076..c4c42bb3a17fd4 100644 --- a/src/heap_utils.cc +++ b/src/heap_utils.cc @@ -77,7 +77,14 @@ class JSGraph : public EmbedderGraph { } void AddEdge(Node* from, Node* to) override { - edges_[from].insert(to); + edges_[from].insert(std::make_pair(nullptr, to)); + } + + // For ABI compatibility, we did not backport the virtual function + // AddEdge() with the name as last argument back to v10.x. + // This is only here to reduce the amount of churn. + void AddEdge(Node* from, Node* to, const char* name = nullptr) { + edges_[from].insert(std::make_pair(name, to)); } MaybeLocal CreateObject() const { @@ -92,6 +99,7 @@ class JSGraph : public EmbedderGraph { Local size_string = FIXED_ONE_BYTE_STRING(isolate_, "size"); Local value_string = FIXED_ONE_BYTE_STRING(isolate_, "value"); Local wraps_string = FIXED_ONE_BYTE_STRING(isolate_, "wraps"); + Local to_string = FIXED_ONE_BYTE_STRING(isolate_, "to"); for (const std::unique_ptr& n : nodes_) info_objects[n.get()] = Object::New(isolate_); @@ -102,15 +110,28 @@ class JSGraph : public EmbedderGraph { for (const std::unique_ptr& n : nodes_) { Local obj = info_objects[n.get()]; Local value; - if (!String::NewFromUtf8(isolate_, n->Name(), - v8::NewStringType::kNormal).ToLocal(&value) || + std::string name_str; + const char* prefix = n->NamePrefix(); + if (prefix == nullptr) { + name_str = n->Name(); + } else { + name_str = n->NamePrefix(); + name_str += " "; + name_str += n->Name(); + } + if (!String::NewFromUtf8( + isolate_, name_str.c_str(), v8::NewStringType::kNormal) + .ToLocal(&value) || obj->Set(context, name_string, value).IsNothing() || - obj->Set(context, is_root_string, - Boolean::New(isolate_, n->IsRootNode())).IsNothing() || - obj->Set(context, size_string, - Number::New(isolate_, n->SizeInBytes())).IsNothing() || - obj->Set(context, edges_string, - Array::New(isolate_)).IsNothing()) { + obj->Set(context, + is_root_string, + Boolean::New(isolate_, n->IsRootNode())) + .IsNothing() || + obj->Set(context, + size_string, + Number::New(isolate_, n->SizeInBytes())) + .IsNothing() || + obj->Set(context, edges_string, Array::New(isolate_)).IsNothing()) { return MaybeLocal(); } if (nodes->Set(context, i++, obj).IsNothing()) @@ -141,10 +162,24 @@ class JSGraph : public EmbedderGraph { } size_t i = 0; - for (Node* target : edge_info.second) { - if (edges.As()->Set(context, - i++, - info_objects[target]).IsNothing()) { + size_t j = 0; + for (const auto& edge : edge_info.second) { + Local to_object = info_objects[edge.second]; + Local edge_obj = Object::New(isolate_); + Local edge_name_value; + const char* edge_name = edge.first; + if (edge_name != nullptr) { + if (!String::NewFromUtf8( + isolate_, edge_name, v8::NewStringType::kNormal) + .ToLocal(&edge_name_value)) { + return MaybeLocal(); + } + } else { + edge_name_value = Number::New(isolate_, j++); + } + if (edge_obj->Set(context, name_string, edge_name_value).IsNothing() || + edge_obj->Set(context, to_string, to_object).IsNothing() || + edges.As()->Set(context, i++, edge_obj).IsNothing()) { return MaybeLocal(); } } @@ -158,7 +193,7 @@ class JSGraph : public EmbedderGraph { std::unordered_set> nodes_; std::unordered_set engine_nodes_; - std::unordered_map> edges_; + std::unordered_map>> edges_; }; void BuildEmbedderGraph(const FunctionCallbackInfo& args) { diff --git a/src/inspector/main_thread_interface.cc b/src/inspector/main_thread_interface.cc index d8ee737ce2fce0..d3f553caac8f9f 100644 --- a/src/inspector/main_thread_interface.cc +++ b/src/inspector/main_thread_interface.cc @@ -354,13 +354,6 @@ void MainThreadHandle::Reset() { main_thread_ = nullptr; } -Agent* MainThreadHandle::GetInspectorAgent() { - Mutex::ScopedLock scoped_lock(block_lock_); - if (main_thread_ == nullptr) - return nullptr; - return main_thread_->inspector_agent(); -} - std::unique_ptr MainThreadHandle::MakeDelegateThreadSafe( std::unique_ptr delegate) { diff --git a/src/inspector/main_thread_interface.h b/src/inspector/main_thread_interface.h index db79db43821a89..7092310e553c19 100644 --- a/src/inspector/main_thread_interface.h +++ b/src/inspector/main_thread_interface.h @@ -54,7 +54,6 @@ class MainThreadHandle : public std::enable_shared_from_this { return ++next_object_id_; } bool Post(std::unique_ptr request); - Agent* GetInspectorAgent(); std::unique_ptr MakeDelegateThreadSafe( std::unique_ptr delegate); bool Expired(); diff --git a/src/inspector/node_inspector.gypi b/src/inspector/node_inspector.gypi new file mode 100644 index 00000000000000..aea4de894fbe99 --- /dev/null +++ b/src/inspector/node_inspector.gypi @@ -0,0 +1,149 @@ +{ + 'variables': { + 'protocol_tool_path': '../../tools/inspector_protocol', + 'node_inspector_path': '../../src/inspector', + 'node_inspector_generated_sources': [ + '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Forward.h', + '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Protocol.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Protocol.h', + '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeWorker.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeWorker.h', + '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeTracing.cpp', + '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeTracing.h', + ], + 'node_protocol_files': [ + '<(protocol_tool_path)/lib/Allocator_h.template', + '<(protocol_tool_path)/lib/Array_h.template', + '<(protocol_tool_path)/lib/Collections_h.template', + '<(protocol_tool_path)/lib/DispatcherBase_cpp.template', + '<(protocol_tool_path)/lib/DispatcherBase_h.template', + '<(protocol_tool_path)/lib/ErrorSupport_cpp.template', + '<(protocol_tool_path)/lib/ErrorSupport_h.template', + '<(protocol_tool_path)/lib/Forward_h.template', + '<(protocol_tool_path)/lib/FrontendChannel_h.template', + '<(protocol_tool_path)/lib/Maybe_h.template', + '<(protocol_tool_path)/lib/Object_cpp.template', + '<(protocol_tool_path)/lib/Object_h.template', + '<(protocol_tool_path)/lib/Parser_cpp.template', + '<(protocol_tool_path)/lib/Parser_h.template', + '<(protocol_tool_path)/lib/Protocol_cpp.template', + '<(protocol_tool_path)/lib/ValueConversions_h.template', + '<(protocol_tool_path)/lib/Values_cpp.template', + '<(protocol_tool_path)/lib/Values_h.template', + '<(protocol_tool_path)/templates/Exported_h.template', + '<(protocol_tool_path)/templates/Imported_h.template', + '<(protocol_tool_path)/templates/TypeBuilder_cpp.template', + '<(protocol_tool_path)/templates/TypeBuilder_h.template', + '<(protocol_tool_path)/CodeGenerator.py', + ] + }, + 'defines': [ + 'HAVE_INSPECTOR=1', + ], + 'sources': [ + '../../src/inspector_agent.cc', + '../../src/inspector_io.cc', + '../../src/inspector_agent.h', + '../../src/inspector_io.h', + '../../src/inspector_js_api.cc', + '../../src/inspector_socket.cc', + '../../src/inspector_socket.h', + '../../src/inspector_socket_server.cc', + '../../src/inspector_socket_server.h', + '../../src/inspector/main_thread_interface.cc', + '../../src/inspector/main_thread_interface.h', + '../../src/inspector/node_string.cc', + '../../src/inspector/node_string.h', + '../../src/inspector/tracing_agent.cc', + '../../src/inspector/tracing_agent.h', + '../../src/inspector/worker_agent.cc', + '../../src/inspector/worker_agent.h', + '../../src/inspector/worker_inspector.cc', + '../../src/inspector/worker_inspector.h', + ], + 'include_dirs': [ + '<(SHARED_INTERMEDIATE_DIR)/include', # for inspector + '<(SHARED_INTERMEDIATE_DIR)', + '<(SHARED_INTERMEDIATE_DIR)/src', # for inspector + ], + 'copies': [ + { + 'files': [ + '<(node_inspector_path)/node_protocol_config.json', + '<(node_inspector_path)/node_protocol.pdl' + ], + 'destination': '<(SHARED_INTERMEDIATE_DIR)', + } + ], + 'actions': [ + { + 'action_name': 'convert_node_protocol_to_json', + 'inputs': [ + '<(SHARED_INTERMEDIATE_DIR)/node_protocol.pdl', + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/node_protocol.json', + ], + 'action': [ + 'python', + 'tools/inspector_protocol/ConvertProtocolToJSON.py', + '<@(_inputs)', + '<@(_outputs)', + ], + }, + { + 'action_name': 'node_protocol_generated_sources', + 'process_outputs_as_sources': 0, + 'inputs': [ + '<(SHARED_INTERMEDIATE_DIR)/node_protocol_config.json', + '<(SHARED_INTERMEDIATE_DIR)/node_protocol.json', + '<@(node_protocol_files)', + ], + 'outputs': [ + '<@(node_inspector_generated_sources)', + ], + 'process_outputs_as_sources': 1, + 'action': [ + 'python', + 'tools/inspector_protocol/CodeGenerator.py', + '--jinja_dir', '<@(protocol_tool_path)/..', + '--output_base', '<(SHARED_INTERMEDIATE_DIR)/src/', + '--config', '<(SHARED_INTERMEDIATE_DIR)/node_protocol_config.json', + ], + 'message': 'Generating node protocol sources from protocol json', + }, + { + 'action_name': 'concatenate_protocols', + 'inputs': [ + '../../deps/v8/src/inspector/js_protocol.json', + '<(SHARED_INTERMEDIATE_DIR)/node_protocol.json', + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/concatenated_protocol.json', + ], + 'action': [ + 'python', + 'tools/inspector_protocol/ConcatenateProtocols.py', + '<@(_inputs)', + '<@(_outputs)', + ], + }, + { + 'action_name': 'v8_inspector_compress_protocol_json', + 'process_outputs_as_sources': 0, + 'inputs': [ + '<(SHARED_INTERMEDIATE_DIR)/concatenated_protocol.json', + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/v8_inspector_protocol_json.h', + ], + 'process_outputs_as_sources': 1, + 'action': [ + 'python', + 'tools/compress_json.py', + '<@(_inputs)', + '<@(_outputs)', + ], + }, + ], +} diff --git a/src/inspector/node_protocol.pdl b/src/inspector/node_protocol.pdl index 27b3d814c88d0a..9fb9f1c55fa191 100644 --- a/src/inspector/node_protocol.pdl +++ b/src/inspector/node_protocol.pdl @@ -37,3 +37,58 @@ experimental domain NodeTracing # Signals that tracing is stopped and there is no trace buffers pending flush, all data were # delivered via dataCollected events. event tracingComplete + +# Support for sending messages to Node worker Inspector instances. +experimental domain NodeWorker + + type WorkerID extends string + + # Unique identifier of attached debugging session. + type SessionID extends string + + type WorkerInfo extends object + properties + WorkerID workerId + string type + string title + string url + + # Sends protocol message over session with given id. + command sendMessageToWorker + parameters + string message + # Identifier of the session. + SessionID sessionId + + # Instructs the inspector to attach to running workers. Will also attach to new workers + # as they start + command enable + parameters + # Whether to new workers should be paused until the frontend sends `Runtime.runIfWaitingForDebugger` + # message to run them. + boolean waitForDebuggerOnStart + + # Detaches from all running workers and disables attaching to new workers as they are started. + command disable + + # Issued when attached to a worker. + event attachedToWorker + parameters + # Identifier assigned to the session used to send/receive messages. + SessionID sessionId + WorkerInfo workerInfo + boolean waitingForDebugger + + # Issued when detached from the worker. + event detachedFromWorker + parameters + # Detached session identifier. + SessionID sessionId + + # Notifies about a new protocol message received from the session + # (session ID is provided in attachedToWorker notification). + event receivedMessageFromWorker + parameters + # Identifier of a session which sends a message. + SessionID sessionId + string message diff --git a/src/inspector/node_protocol_config.json b/src/inspector/node_protocol_config.json index 7cea20ae937616..4ef37856068093 100644 --- a/src/inspector/node_protocol_config.json +++ b/src/inspector/node_protocol_config.json @@ -3,12 +3,7 @@ "path": "node_protocol.json", "package": "src/node/inspector/protocol", "output": "node/inspector/protocol", - "namespace": ["node", "inspector", "protocol"], - "options": [ - { - "domain": "NodeTracing" - } - ] + "namespace": ["node", "inspector", "protocol"] }, "exported": { "package": "include/inspector", diff --git a/src/inspector/tracing_agent.cc b/src/inspector/tracing_agent.cc index 6e962b289ab36f..fe69e6f863e2a6 100644 --- a/src/inspector/tracing_agent.cc +++ b/src/inspector/tracing_agent.cc @@ -74,11 +74,14 @@ DispatchResponse TracingAgent::start( if (categories_set.empty()) return DispatchResponse::Error("At least one category should be enabled"); - trace_writer_ = env_->tracing_agent_writer()->agent()->AddClient( - categories_set, - std::unique_ptr( - new InspectorTraceWriter(frontend_.get())), - tracing::Agent::kIgnoreDefaultCategories); + auto* writer = env_->tracing_agent_writer(); + if (writer != nullptr) { + trace_writer_ = env_->tracing_agent_writer()->agent()->AddClient( + categories_set, + std::unique_ptr( + new InspectorTraceWriter(frontend_.get())), + tracing::Agent::kIgnoreDefaultCategories); + } return DispatchResponse::OK(); } diff --git a/src/inspector/worker_agent.cc b/src/inspector/worker_agent.cc new file mode 100644 index 00000000000000..fccd6d57a53c2a --- /dev/null +++ b/src/inspector/worker_agent.cc @@ -0,0 +1,154 @@ +#include "worker_agent.h" + +#include "main_thread_interface.h" +#include "worker_inspector.h" + +namespace node { +namespace inspector { +namespace protocol { + +class NodeWorkers + : public std::enable_shared_from_this { + public: + explicit NodeWorkers(std::weak_ptr frontend, + std::shared_ptr thread) + : frontend_(frontend), thread_(thread) {} + void WorkerCreated(const std::string& title, + const std::string& url, + bool waiting, + std::shared_ptr target); + void Receive(const std::string& id, const std::string& message); + void Send(const std::string& id, const std::string& message); + void Detached(const std::string& id); + + private: + std::weak_ptr frontend_; + std::shared_ptr thread_; + std::unordered_map> sessions_; + int next_target_id_ = 0; +}; + +namespace { +class AgentWorkerInspectorDelegate : public WorkerDelegate { + public: + explicit AgentWorkerInspectorDelegate(std::shared_ptr workers) + : workers_(workers) {} + + void WorkerCreated(const std::string& title, + const std::string& url, + bool waiting, + std::shared_ptr target) override { + workers_->WorkerCreated(title, url, waiting, target); + } + + private: + std::shared_ptr workers_; +}; + +class ParentInspectorSessionDelegate : public InspectorSessionDelegate { + public: + ParentInspectorSessionDelegate(const std::string& id, + std::shared_ptr workers) + : id_(id), workers_(workers) {} + + ~ParentInspectorSessionDelegate() override { + workers_->Detached(id_); + } + + void SendMessageToFrontend(const v8_inspector::StringView& msg) override { + std::string message = protocol::StringUtil::StringViewToUtf8(msg); + workers_->Send(id_, message); + } + + private: + std::string id_; + std::shared_ptr workers_; +}; + +std::unique_ptr WorkerInfo(const std::string& id, + const std::string& title, + const std::string& url) { + return NodeWorker::WorkerInfo::create() + .setWorkerId(id) + .setTitle(title) + .setUrl(url) + .setType("worker").build(); +} +} // namespace + +WorkerAgent::WorkerAgent(std::weak_ptr manager) + : manager_(manager) {} + + +void WorkerAgent::Wire(UberDispatcher* dispatcher) { + frontend_.reset(new NodeWorker::Frontend(dispatcher->channel())); + NodeWorker::Dispatcher::wire(dispatcher, this); + auto manager = manager_.lock(); + CHECK_NOT_NULL(manager); + workers_ = + std::make_shared(frontend_, manager->MainThread()); +} + +DispatchResponse WorkerAgent::sendMessageToWorker(const String& message, + const String& sessionId) { + workers_->Receive(sessionId, message); + return DispatchResponse::OK(); +} + +DispatchResponse WorkerAgent::enable(bool waitForDebuggerOnStart) { + auto manager = manager_.lock(); + if (!manager) { + return DispatchResponse::OK(); + } + if (!event_handle_) { + std::unique_ptr delegate( + new AgentWorkerInspectorDelegate(workers_)); + event_handle_ = manager->SetAutoAttach(std::move(delegate)); + } + event_handle_->SetWaitOnStart(waitForDebuggerOnStart); + return DispatchResponse::OK(); +} + +DispatchResponse WorkerAgent::disable() { + event_handle_.reset(); + return DispatchResponse::OK(); +} + +void NodeWorkers::WorkerCreated(const std::string& title, + const std::string& url, + bool waiting, + std::shared_ptr target) { + auto frontend = frontend_.lock(); + if (!frontend) + return; + std::string id = std::to_string(++next_target_id_); + auto delegate = thread_->MakeDelegateThreadSafe( + std::unique_ptr( + new ParentInspectorSessionDelegate(id, shared_from_this()))); + sessions_[id] = target->Connect(std::move(delegate), true); + frontend->attachedToWorker(id, WorkerInfo(id, title, url), waiting); +} + +void NodeWorkers::Send(const std::string& id, const std::string& message) { + auto frontend = frontend_.lock(); + if (frontend) + frontend->receivedMessageFromWorker(id, message); +} + +void NodeWorkers::Receive(const std::string& id, const std::string& message) { + auto it = sessions_.find(id); + if (it != sessions_.end()) + it->second->Dispatch(Utf8ToStringView(message)->string()); +} + +void NodeWorkers::Detached(const std::string& id) { + if (sessions_.erase(id) == 0) + return; + auto frontend = frontend_.lock(); + if (frontend) { + frontend->detachedFromWorker(id); + } +} +} // namespace protocol +} // namespace inspector +} // namespace node diff --git a/src/inspector/worker_agent.h b/src/inspector/worker_agent.h new file mode 100644 index 00000000000000..402c7194163967 --- /dev/null +++ b/src/inspector/worker_agent.h @@ -0,0 +1,39 @@ +#ifndef SRC_INSPECTOR_WORKER_AGENT_H_ +#define SRC_INSPECTOR_WORKER_AGENT_H_ + +#include "node/inspector/protocol/NodeWorker.h" +#include "v8.h" + + +namespace node { +namespace inspector { +class WorkerManagerEventHandle; +class WorkerManager; + +namespace protocol { +class NodeWorkers; + +class WorkerAgent : public NodeWorker::Backend { + public: + explicit WorkerAgent(std::weak_ptr manager); + ~WorkerAgent() override = default; + + void Wire(UberDispatcher* dispatcher); + + DispatchResponse sendMessageToWorker(const String& message, + const String& sessionId) override; + + DispatchResponse enable(bool waitForDebuggerOnStart) override; + DispatchResponse disable() override; + + private: + std::shared_ptr frontend_; + std::weak_ptr manager_; + std::unique_ptr event_handle_; + std::shared_ptr workers_; +}; +} // namespace protocol +} // namespace inspector +} // namespace node + +#endif // SRC_INSPECTOR_WORKER_AGENT_H_ diff --git a/src/inspector/worker_inspector.cc b/src/inspector/worker_inspector.cc new file mode 100644 index 00000000000000..52e71a562daeb6 --- /dev/null +++ b/src/inspector/worker_inspector.cc @@ -0,0 +1,128 @@ +#include "worker_inspector.h" + +#include "main_thread_interface.h" + +namespace node { +namespace inspector { +namespace { + +class WorkerStartedRequest : public Request { + public: + WorkerStartedRequest( + int id, + const std::string& url, + std::shared_ptr worker_thread, + bool waiting) + : id_(id), + info_(BuildWorkerTitle(id), url, worker_thread), + waiting_(waiting) {} + void Call(MainThreadInterface* thread) override { + auto manager = thread->inspector_agent()->GetWorkerManager(); + manager->WorkerStarted(id_, info_, waiting_); + } + + private: + static std::string BuildWorkerTitle(int id) { + return "Worker " + std::to_string(id); + } + + int id_; + WorkerInfo info_; + bool waiting_; +}; + + +void Report(const std::unique_ptr& delegate, + const WorkerInfo& info, bool waiting) { + if (info.worker_thread) + delegate->WorkerCreated(info.title, info.url, waiting, info.worker_thread); +} + +class WorkerFinishedRequest : public Request { + public: + explicit WorkerFinishedRequest(int worker_id) : worker_id_(worker_id) {} + + void Call(MainThreadInterface* thread) override { + thread->inspector_agent()->GetWorkerManager()->WorkerFinished(worker_id_); + } + + private: + int worker_id_; +}; +} // namespace + + +ParentInspectorHandle::ParentInspectorHandle( + int id, const std::string& url, + std::shared_ptr parent_thread, bool wait_for_connect) + : id_(id), url_(url), parent_thread_(parent_thread), + wait_(wait_for_connect) {} + +ParentInspectorHandle::~ParentInspectorHandle() { + parent_thread_->Post( + std::unique_ptr(new WorkerFinishedRequest(id_))); +} + +void ParentInspectorHandle::WorkerStarted( + std::shared_ptr worker_thread, bool waiting) { + std::unique_ptr request( + new WorkerStartedRequest(id_, url_, worker_thread, waiting)); + parent_thread_->Post(std::move(request)); +} + +void WorkerManager::WorkerFinished(int session_id) { + children_.erase(session_id); +} + +void WorkerManager::WorkerStarted(int session_id, + const WorkerInfo& info, + bool waiting) { + if (info.worker_thread->Expired()) + return; + children_.emplace(session_id, info); + for (const auto& delegate : delegates_) { + Report(delegate.second, info, waiting); + } +} + +std::unique_ptr +WorkerManager::NewParentHandle(int thread_id, const std::string& url) { + bool wait = !delegates_waiting_on_start_.empty(); + return std::unique_ptr( + new ParentInspectorHandle(thread_id, url, thread_, wait)); +} + +void WorkerManager::RemoveAttachDelegate(int id) { + delegates_.erase(id); + delegates_waiting_on_start_.erase(id); +} + +std::unique_ptr WorkerManager::SetAutoAttach( + std::unique_ptr attach_delegate) { + int id = ++next_delegate_id_; + delegates_[id] = std::move(attach_delegate); + const auto& delegate = delegates_[id]; + for (const auto& worker : children_) { + // Waiting is only reported when a worker is started, same as browser + Report(delegate, worker.second, false); + } + return std::unique_ptr( + new WorkerManagerEventHandle(shared_from_this(), id)); +} + +void WorkerManager::SetWaitOnStartForDelegate(int id, bool wait) { + if (wait) + delegates_waiting_on_start_.insert(id); + else + delegates_waiting_on_start_.erase(id); +} + +void WorkerManagerEventHandle::SetWaitOnStart(bool wait_on_start) { + manager_->SetWaitOnStartForDelegate(id_, wait_on_start); +} + +WorkerManagerEventHandle::~WorkerManagerEventHandle() { + manager_->RemoveAttachDelegate(id_); +} +} // namespace inspector +} // namespace node diff --git a/src/inspector/worker_inspector.h b/src/inspector/worker_inspector.h new file mode 100644 index 00000000000000..c1d3b8a5711740 --- /dev/null +++ b/src/inspector/worker_inspector.h @@ -0,0 +1,99 @@ +#ifndef SRC_INSPECTOR_WORKER_INSPECTOR_H_ +#define SRC_INSPECTOR_WORKER_INSPECTOR_H_ + +#if !HAVE_INSPECTOR +#error("This header can only be used when inspector is enabled") +#endif + +#include +#include +#include +#include + +namespace node { +namespace inspector { +class MainThreadHandle; +class WorkerManager; + +class WorkerDelegate { + public: + virtual void WorkerCreated(const std::string& title, + const std::string& url, + bool waiting, + std::shared_ptr worker) = 0; + virtual ~WorkerDelegate() {} +}; + +class WorkerManagerEventHandle { + public: + explicit WorkerManagerEventHandle(std::shared_ptr manager, + int id) + : manager_(manager), id_(id) {} + void SetWaitOnStart(bool wait_on_start); + ~WorkerManagerEventHandle(); + + private: + std::shared_ptr manager_; + int id_; +}; + +struct WorkerInfo { + WorkerInfo(const std::string& target_title, + const std::string& target_url, + std::shared_ptr worker_thread) + : title(target_title), + url(target_url), + worker_thread(worker_thread) {} + std::string title; + std::string url; + std::shared_ptr worker_thread; +}; + +class ParentInspectorHandle { + public: + ParentInspectorHandle(int id, const std::string& url, + std::shared_ptr parent_thread, + bool wait_for_connect); + ~ParentInspectorHandle(); + void WorkerStarted(std::shared_ptr worker_thread, + bool waiting); + bool WaitForConnect() { + return wait_; + } + + private: + int id_; + std::string url_; + std::shared_ptr parent_thread_; + bool wait_; +}; + +class WorkerManager : public std::enable_shared_from_this { + public: + explicit WorkerManager(std::shared_ptr thread) + : thread_(thread) {} + + std::unique_ptr NewParentHandle( + int thread_id, const std::string& url); + void WorkerStarted(int session_id, const WorkerInfo& info, bool waiting); + void WorkerFinished(int session_id); + std::unique_ptr SetAutoAttach( + std::unique_ptr attach_delegate); + void SetWaitOnStartForDelegate(int id, bool wait); + void RemoveAttachDelegate(int id); + std::shared_ptr MainThread() { + return thread_; + } + + private: + std::shared_ptr thread_; + std::unordered_map children_; + std::unordered_map> delegates_; + // If any one needs it, workers stop for all + std::unordered_set delegates_waiting_on_start_; + int next_delegate_id_ = 0; +}; +} // namespace inspector +} // namespace node + +#endif // SRC_INSPECTOR_WORKER_INSPECTOR_H_ diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index da19eefe368efd..ebb7b7d5bc3e72 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -4,8 +4,11 @@ #include "inspector/main_thread_interface.h" #include "inspector/node_string.h" #include "inspector/tracing_agent.h" +#include "inspector/worker_agent.h" +#include "inspector/worker_inspector.h" #include "node/inspector/protocol/Protocol.h" #include "node_internals.h" +#include "node_url.h" #include "v8-inspector.h" #include "v8-platform.h" @@ -189,11 +192,18 @@ static int StartDebugSignalHandler() { const int CONTEXT_GROUP_ID = 1; +std::string GetWorkerLabel(node::Environment* env) { + std::ostringstream result; + result << "Worker[" << env->thread_id() << "]"; + return result.str(); +} + class ChannelImpl final : public v8_inspector::V8Inspector::Channel, public protocol::FrontendChannel { public: explicit ChannelImpl(Environment* env, const std::unique_ptr& inspector, + std::shared_ptr worker_manager, std::unique_ptr delegate, bool prevent_shutdown) : delegate_(std::move(delegate)), @@ -202,11 +212,15 @@ class ChannelImpl final : public v8_inspector::V8Inspector::Channel, node_dispatcher_.reset(new protocol::UberDispatcher(this)); tracing_agent_.reset(new protocol::TracingAgent(env)); tracing_agent_->Wire(node_dispatcher_.get()); + worker_agent_.reset(new protocol::WorkerAgent(worker_manager)); + worker_agent_->Wire(node_dispatcher_.get()); } virtual ~ChannelImpl() { tracing_agent_->disable(); tracing_agent_.reset(); // Dispose before the dispatchers + worker_agent_->disable(); + worker_agent_.reset(); // Dispose before the dispatchers } std::string dispatchProtocolMessage(const StringView& message) { @@ -266,6 +280,7 @@ class ChannelImpl final : public v8_inspector::V8Inspector::Channel, } std::unique_ptr tracing_agent_; + std::unique_ptr worker_agent_; std::unique_ptr delegate_; std::unique_ptr session_; std::unique_ptr node_dispatcher_; @@ -369,14 +384,36 @@ void NotifyClusterWorkersDebugEnabled(Environment* env) { MakeCallback(env->isolate(), process_object, emit_fn.As(), arraysize(argv), argv, {0, 0}); } + +#ifdef _WIN32 +bool IsFilePath(const std::string& path) { + // '\\' + if (path.length() > 2 && path[0] == '\\' && path[1] == '\\') + return true; + // '[A-Z]:[/\\]' + if (path.length() < 3) + return false; + if ((path[0] >= 'A' && path[0] <= 'Z') || (path[0] >= 'a' && path[0] <= 'z')) + return path[1] == ':' && (path[2] == '/' || path[2] == '\\'); + return false; +} +#else +bool IsFilePath(const std::string& path) { + return path.length() && path[0] == '/'; +} +#endif // __POSIX__ + } // namespace class NodeInspectorClient : public V8InspectorClient { public: - explicit NodeInspectorClient(node::Environment* env) : env_(env) { + explicit NodeInspectorClient(node::Environment* env, bool is_main) + : env_(env), is_main_(is_main) { client_ = V8Inspector::create(env->isolate(), this); // TODO(bnoordhuis) Make name configurable from src/node.cc. - ContextInfo info(GetHumanReadableProcessName()); + std::string name = + is_main_ ? GetHumanReadableProcessName() : GetWorkerLabel(env); + ContextInfo info(name); info.is_default = true; contextCreated(env->context(), info); } @@ -440,7 +477,8 @@ class NodeInspectorClient : public V8InspectorClient { // TODO(addaleax): Revert back to using make_unique once we get issues // with CI resolved (i.e. revert the patch that added this comment). channels_[session_id].reset( - new ChannelImpl(env_, client_, std::move(delegate), prevent_shutdown)); + new ChannelImpl(env_, client_, getWorkerManager(), + std::move(delegate), prevent_shutdown)); return session_id; } @@ -560,6 +598,14 @@ class NodeInspectorClient : public V8InspectorClient { return interface_->GetHandle(); } + std::shared_ptr getWorkerManager() { + if (worker_manager_ == nullptr) { + worker_manager_ = + std::make_shared(getThreadHandle()); + } + return worker_manager_; + } + bool IsActive() { return !channels_.empty(); } @@ -592,7 +638,20 @@ class NodeInspectorClient : public V8InspectorClient { return env_->isolate_data()->platform()->CurrentClockTimeMillis(); } + std::unique_ptr resourceNameToUrl( + const StringView& resource_name_view) override { + std::string resource_name = + protocol::StringUtil::StringViewToUtf8(resource_name_view); + if (!IsFilePath(resource_name)) + return nullptr; + node::url::URL url = node::url::URL::FromFilePath(resource_name); + // TODO(ak239spb): replace this code with url.href(). + // Refs: https://github.com/nodejs/node/issues/22610 + return Utf8ToStringView(url.protocol() + "//" + url.path()); + } + node::Environment* env_; + bool is_main_; bool running_nested_loop_ = false; std::unique_ptr client_; std::unordered_map> channels_; @@ -604,19 +663,30 @@ class NodeInspectorClient : public V8InspectorClient { bool waiting_for_io_shutdown_ = false; // Allows accessing Inspector from non-main threads std::unique_ptr interface_; + std::shared_ptr worker_manager_; }; Agent::Agent(Environment* env) : parent_env_(env), debug_options_(env->options()->debug_options) {} -Agent::~Agent() = default; +Agent::~Agent() { + if (start_io_thread_async.data == this) { + start_io_thread_async.data = nullptr; + // This is global, will never get freed + uv_close(reinterpret_cast(&start_io_thread_async), nullptr); + } +} bool Agent::Start(const std::string& path, - std::shared_ptr options) { + std::shared_ptr options, + bool is_main) { + if (options == nullptr) { + options = std::make_shared(); + } path_ = path; debug_options_ = options; - client_ = std::make_shared(parent_env_); + client_ = std::make_shared(parent_env_, is_main); if (parent_env_->is_main_thread()) { CHECK_EQ(0, uv_async_init(parent_env_->event_loop(), &start_io_thread_async, @@ -628,7 +698,10 @@ bool Agent::Start(const std::string& path, } bool wait_for_connect = options->wait_for_connect(); - if (!options->inspector_enabled || !StartIoThread()) { + if (parent_handle_) { + wait_for_connect = parent_handle_->WaitForConnect(); + parent_handle_->WorkerStarted(client_->getThreadHandle(), wait_for_connect); + } else if (!options->inspector_enabled || !StartIoThread()) { return false; } if (wait_for_connect) { @@ -675,7 +748,9 @@ std::unique_ptr Agent::Connect( void Agent::WaitForDisconnect() { CHECK_NOT_NULL(client_); - if (client_->hasConnectedSessions()) { + bool is_worker = parent_handle_ != nullptr; + parent_handle_.reset(); + if (client_->hasConnectedSessions() && !is_worker) { fprintf(stderr, "Waiting for the debugger to disconnect...\n"); fflush(stderr); } @@ -790,7 +865,11 @@ void Agent::ContextCreated(Local context, const ContextInfo& info) { } bool Agent::WillWaitForConnect() { - return debug_options_->wait_for_connect(); + if (debug_options_->wait_for_connect()) + return true; + if (parent_handle_) + return parent_handle_->WaitForConnect(); + return false; } bool Agent::IsActive() { @@ -799,11 +878,24 @@ bool Agent::IsActive() { return io_ != nullptr || client_->IsActive(); } +void Agent::AddWorkerInspector(int thread_id, + const std::string& url, + Agent* agent) { + CHECK_NOT_NULL(client_); + agent->parent_handle_ = + client_->getWorkerManager()->NewParentHandle(thread_id, url); +} + void Agent::WaitForConnect() { CHECK_NOT_NULL(client_); client_->waitForFrontend(); } +std::shared_ptr Agent::GetWorkerManager() { + CHECK_NOT_NULL(client_); + return client_->getWorkerManager(); +} + SameThreadInspectorSession::~SameThreadInspectorSession() { auto client = client_.lock(); if (client) diff --git a/src/inspector_agent.h b/src/inspector_agent.h index d9e2232dcc4d7b..9537ae05b61691 100644 --- a/src/inspector_agent.h +++ b/src/inspector_agent.h @@ -26,7 +26,9 @@ struct ContextInfo; namespace inspector { class InspectorIo; +class ParentInspectorHandle; class NodeInspectorClient; +class WorkerManager; class InspectorSession { public: @@ -47,13 +49,15 @@ class Agent { ~Agent(); // Create client_, may create io_ if option enabled - bool Start(const std::string& path, std::shared_ptr options); + bool Start(const std::string& path, + std::shared_ptr options, + bool is_worker); // Stop and destroy io_ void Stop(); bool IsListening() { return io_ != nullptr; } // Returns true if the Node inspector is actually in use. It will be true - // if either the user explicitely opted into inspector (e.g. with the + // if either the user explicitly opted into inspector (e.g. with the // --inspect command line flag) or if inspector JS API had been used. bool IsActive(); @@ -80,6 +84,8 @@ class Agent { void EnableAsyncHook(); void DisableAsyncHook(); + void AddWorkerInspector(int thread_id, const std::string& url, Agent* agent); + // Called to create inspector sessions that can be used from the main thread. // The inspector responds by using the delegate to send messages back. std::unique_ptr Connect( @@ -101,6 +107,9 @@ class Agent { std::shared_ptr options() { return debug_options_; } void ContextCreated(v8::Local context, const ContextInfo& info); + // Interface for interacting with inspectors in worker threads + std::shared_ptr GetWorkerManager(); + private: void ToggleAsyncHook(v8::Isolate* isolate, const node::Persistent& fn); @@ -110,6 +119,7 @@ class Agent { std::shared_ptr client_; // Interface for transports, e.g. WebSocket server std::unique_ptr io_; + std::unique_ptr parent_handle_; std::string path_; std::shared_ptr debug_options_; diff --git a/src/inspector_js_api.cc b/src/inspector_js_api.cc index 54b7c4d01c6d3b..8ec6603e5b4bc3 100644 --- a/src/inspector_js_api.cc +++ b/src/inspector_js_api.cc @@ -105,12 +105,13 @@ class JSBindingsConnection : public AsyncWrap { } void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("callback", callback_); - tracker->TrackFieldWithSize("session", sizeof(*session_)); + tracker->TrackFieldWithSize( + "session", sizeof(*session_), "InspectorSession"); } - ADD_MEMORY_INFO_NAME(JSBindingsConnection) + SET_MEMORY_INFO_NAME(JSBindingsConnection) + SET_SELF_SIZE(JSBindingsConnection) private: std::unique_ptr session_; @@ -307,10 +308,13 @@ void Initialize(Local target, Local unused, env->NewFunctionTemplate(JSBindingsConnection::New); tmpl->InstanceTemplate()->SetInternalFieldCount(1); tmpl->SetClassName(conn_str); - AsyncWrap::AddWrapMethods(env, tmpl); + tmpl->Inherit(AsyncWrap::GetConstructorTemplate(env)); env->SetProtoMethod(tmpl, "dispatch", JSBindingsConnection::Dispatch); env->SetProtoMethod(tmpl, "disconnect", JSBindingsConnection::Disconnect); - target->Set(env->context(), conn_str, tmpl->GetFunction()).ToChecked(); + target + ->Set(env->context(), conn_str, + tmpl->GetFunction(env->context()).ToLocalChecked()) + .ToChecked(); } } // namespace diff --git a/src/js_stream.cc b/src/js_stream.cc index 4769a9c56d633f..e3d734c01516c2 100644 --- a/src/js_stream.cc +++ b/src/js_stream.cc @@ -202,8 +202,7 @@ void JSStream::Initialize(Local target, FIXED_ONE_BYTE_STRING(env->isolate(), "JSStream"); t->SetClassName(jsStreamString); t->InstanceTemplate()->SetInternalFieldCount(1); - - AsyncWrap::AddWrapMethods(env, t); + t->Inherit(AsyncWrap::GetConstructorTemplate(env)); env->SetProtoMethod(t, "finishWrite", Finish); env->SetProtoMethod(t, "finishShutdown", Finish); @@ -211,7 +210,7 @@ void JSStream::Initialize(Local target, env->SetProtoMethod(t, "emitEOF", EmitEOF); StreamBase::AddMethods(env, t); - target->Set(jsStreamString, t->GetFunction()); + target->Set(jsStreamString, t->GetFunction(context).ToLocalChecked()); } } // namespace node diff --git a/src/js_stream.h b/src/js_stream.h index 05fb688f2f4115..6612e558aea1d7 100644 --- a/src/js_stream.h +++ b/src/js_stream.h @@ -27,11 +27,9 @@ class JSStream : public AsyncWrap, public StreamBase { size_t count, uv_stream_t* send_handle) override; - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(JSStream) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(JSStream) + SET_SELF_SIZE(JSStream) protected: JSStream(Environment* env, v8::Local obj); diff --git a/src/memory_tracker-inl.h b/src/memory_tracker-inl.h index 568a4364f9c64d..20300297043ea7 100644 --- a/src/memory_tracker-inl.h +++ b/src/memory_tracker-inl.h @@ -7,23 +7,40 @@ namespace node { +// Fallback edge_name if node_name is not available, or "" if edge_name +// is not available either. +inline const char* GetNodeName(const char* node_name, const char* edge_name) { + if (node_name != nullptr) { + return node_name; + } + if (edge_name != nullptr) { + return edge_name; + } + return ""; +} + class MemoryRetainerNode : public v8::EmbedderGraph::Node { public: - explicit inline MemoryRetainerNode(MemoryTracker* tracker, - const MemoryRetainer* retainer, - const char* name) - : retainer_(retainer) { - if (retainer_ != nullptr) { - v8::HandleScope handle_scope(tracker->isolate()); - v8::Local obj = retainer_->WrappedObject(); - if (!obj.IsEmpty()) - wrapper_node_ = tracker->graph()->V8Node(obj); + inline MemoryRetainerNode(MemoryTracker* tracker, + const MemoryRetainer* retainer) + : retainer_(retainer) { + CHECK_NOT_NULL(retainer_); + v8::HandleScope handle_scope(tracker->isolate()); + v8::Local obj = retainer_->WrappedObject(); + if (!obj.IsEmpty()) wrapper_node_ = tracker->graph()->V8Node(obj); + + name_ = retainer_->MemoryInfoName(); + size_ = retainer_->SelfSize(); + } - name_ = retainer_->MemoryInfoName(); - } - if (name_.empty() && name != nullptr) { - name_ = name; - } + inline MemoryRetainerNode(MemoryTracker* tracker, + const char* name, + size_t size, + bool is_root_node = false) + : retainer_(nullptr) { + name_ = name; + size_ = size; + is_root_node_ = is_root_node; } const char* Name() override { return name_.c_str(); } @@ -35,60 +52,92 @@ class MemoryRetainerNode : public v8::EmbedderGraph::Node { Node* JSWrapperNode() { return wrapper_node_; } bool IsRootNode() override { - return retainer_ != nullptr && retainer_->IsRootNode(); + if (retainer_ != nullptr) { + return retainer_->IsRootNode(); + } + return is_root_node_; } private: friend class MemoryTracker; - Node* wrapper_node_ = nullptr; + // If retainer_ is not nullptr, then it must have a wrapper_node_, + // and we have + // name_ == retainer_->MemoryInfoName() + // size_ == retainer_->SelfSize() + // is_root_node_ == retainer_->IsRootNode() const MemoryRetainer* retainer_; + Node* wrapper_node_ = nullptr; + + // Otherwise (retainer == nullptr), we set these fields in an ad-hoc way + bool is_root_node_ = false; std::string name_; size_t size_ = 0; }; -template -void MemoryTracker::TrackThis(const T* obj) { - CurrentNode()->size_ = sizeof(T); -} - -void MemoryTracker::TrackFieldWithSize(const char* name, size_t size) { - if (size > 0) - AddNode(name)->size_ = size; +void MemoryTracker::TrackFieldWithSize(const char* edge_name, + size_t size, + const char* node_name) { + if (size > 0) AddNode(GetNodeName(node_name, edge_name), size, edge_name); } -void MemoryTracker::TrackField(const char* name, const MemoryRetainer& value) { - TrackField(name, &value); +void MemoryTracker::TrackField(const char* edge_name, + const MemoryRetainer& value, + const char* node_name) { + TrackField(edge_name, &value); } -void MemoryTracker::TrackField(const char* name, const MemoryRetainer* value) { - if (track_only_self_ || value == nullptr) return; +void MemoryTracker::TrackField(const char* edge_name, + const MemoryRetainer* value, + const char* node_name) { + if (value == nullptr) return; auto it = seen_.find(value); if (it != seen_.end()) { - graph_->AddEdge(CurrentNode(), it->second); + // For ABI compatibility, we did not backport the virtual function + // AddEdge() with a name as last argument back to v10.x. + graph_->AddEdge(CurrentNode(), it->second/*, edge_name */); } else { - Track(value, name); + Track(value, edge_name); } } template -void MemoryTracker::TrackField(const char* name, - const std::unique_ptr& value) { - TrackField(name, value.get()); +void MemoryTracker::TrackField(const char* edge_name, + const std::unique_ptr& value, + const char* node_name) { + if (value.get() == nullptr) { + return; + } + TrackField(edge_name, value.get(), node_name); } template -void MemoryTracker::TrackField(const char* name, const T& value) { +void MemoryTracker::TrackField(const char* edge_name, + const T& value, + const char* node_name, + const char* element_name, + bool subtract_from_self) { + // If the container is empty, the size has been accounted into the parent's + // self size if (value.begin() == value.end()) return; - size_t index = 0; - PushNode(name); - for (Iterator it = value.begin(); it != value.end(); ++it) - TrackField(std::to_string(index++).c_str(), *it); + // Fall back to edge name if node names are not provided + if (CurrentNode() != nullptr && subtract_from_self) { + // Shift the self size of this container out to a separate node + CurrentNode()->size_ -= sizeof(T); + } + PushNode(GetNodeName(node_name, edge_name), sizeof(T), edge_name); + for (Iterator it = value.begin(); it != value.end(); ++it) { + // Use nullptr as edge names so the elements appear as indexed properties + TrackField(nullptr, *it, element_name); + } PopNode(); } template -void MemoryTracker::TrackField(const char* name, const std::queue& value) { +void MemoryTracker::TrackField(const char* edge_name, + const std::queue& value, + const char* node_name, + const char* element_name) { struct ContainerGetter : public std::queue { static const typename std::queue::container_type& Get( const std::queue& value) { @@ -97,61 +146,103 @@ void MemoryTracker::TrackField(const char* name, const std::queue& value) { }; const auto& container = ContainerGetter::Get(value); - TrackField(name, container); + TrackField(edge_name, container, node_name, element_name); } template -void MemoryTracker::TrackField(const char* name, const T& value) { +void MemoryTracker::TrackField(const char* edge_name, + const T& value, + const char* node_name) { // For numbers, creating new nodes is not worth the overhead. CurrentNode()->size_ += sizeof(T); } template -void MemoryTracker::TrackField(const char* name, const std::pair& value) { - PushNode(name); +void MemoryTracker::TrackField(const char* edge_name, + const std::pair& value, + const char* node_name) { + PushNode(node_name == nullptr ? "pair" : node_name, + sizeof(const std::pair), + edge_name); + // TODO(joyeecheung): special case if one of these is a number type + // that meets the test_for_number trait so that their sizes don't get + // merged into the pair node TrackField("first", value.first); TrackField("second", value.second); PopNode(); } template -void MemoryTracker::TrackField(const char* name, - const std::basic_string& value) { - TrackFieldWithSize(name, value.size() * sizeof(T)); +void MemoryTracker::TrackField(const char* edge_name, + const std::basic_string& value, + const char* node_name) { + TrackFieldWithSize(edge_name, value.size() * sizeof(T), "std::basic_string"); } template -void MemoryTracker::TrackField(const char* name, - const v8::Persistent& value) { - TrackField(name, value.Get(isolate_)); +void MemoryTracker::TrackField(const char* edge_name, + const v8::Persistent& value, + const char* node_name) { + TrackField(edge_name, value.Get(isolate_)); } template -void MemoryTracker::TrackField(const char* name, const v8::Local& value) { - if (!value.IsEmpty()) - graph_->AddEdge(CurrentNode(), graph_->V8Node(value)); +void MemoryTracker::TrackField(const char* edge_name, + const v8::Local& value, + const char* node_name) { + if (!value.IsEmpty()) { + // For ABI compatibility, we did not backport the virtual function + // AddEdge() with a name as last argument back to v10.x. + graph_->AddEdge(CurrentNode(), graph_->V8Node(value)/*, edge_name */); + } } template +void MemoryTracker::TrackField(const char* edge_name, + const MallocedBuffer& value, + const char* node_name) { + TrackFieldWithSize(edge_name, value.size, "MallocedBuffer"); +} + +void MemoryTracker::TrackField(const char* name, + const uv_buf_t& value, + const char* node_name) { + TrackFieldWithSize(name, value.len, "uv_buf_t"); +} + void MemoryTracker::TrackField(const char* name, - const MallocedBuffer& value) { - TrackFieldWithSize(name, value.size); + const uv_timer_t& value, + const char* node_name) { + TrackFieldWithSize(name, sizeof(value), "uv_timer_t"); } -void MemoryTracker::TrackField(const char* name, const uv_buf_t& value) { - TrackFieldWithSize(name, value.len); +void MemoryTracker::TrackField(const char* name, + const uv_async_t& value, + const char* node_name) { + TrackFieldWithSize(name, sizeof(value), "uv_async_t"); } template void MemoryTracker::TrackField(const char* name, - const AliasedBuffer& value) { - TrackField(name, value.GetJSArray()); + const AliasedBuffer& value, + const char* node_name) { + TrackField(name, value.GetJSArray(), "AliasedBuffer"); } -void MemoryTracker::Track(const MemoryRetainer* value, const char* name) { +void MemoryTracker::Track(const MemoryRetainer* retainer, + const char* edge_name) { v8::HandleScope handle_scope(isolate_); - MemoryRetainerNode* n = PushNode(name, value); - value->MemoryInfo(this); + auto it = seen_.find(retainer); + if (it != seen_.end()) { + if (CurrentNode() != nullptr) { + // For ABI compatibility, we did not backport the virtual function + // AddEdge() with a name as last argument back to v10.x. + graph_->AddEdge(CurrentNode(), it->second/*, edge_name */); + } + return; // It has already been tracked, no need to call MemoryInfo again + } + MemoryRetainerNode* n = PushNode(retainer, edge_name); + retainer->MemoryInfo(this); CHECK_EQ(CurrentNode(), n); CHECK_NE(n->size_, 0); PopNode(); @@ -162,27 +253,56 @@ MemoryRetainerNode* MemoryTracker::CurrentNode() const { return node_stack_.top(); } -MemoryRetainerNode* MemoryTracker::AddNode( - const char* name, const MemoryRetainer* retainer) { - MemoryRetainerNode* n = new MemoryRetainerNode(this, retainer, name); - graph_->AddNode(std::unique_ptr(n)); - if (retainer != nullptr) - seen_[retainer] = n; +MemoryRetainerNode* MemoryTracker::AddNode(const MemoryRetainer* retainer, + const char* edge_name) { + auto it = seen_.find(retainer); + if (it != seen_.end()) { + return it->second; + } - if (CurrentNode() != nullptr) - graph_->AddEdge(CurrentNode(), n); + MemoryRetainerNode* n = new MemoryRetainerNode(this, retainer); + graph_->AddNode(std::unique_ptr(n)); + seen_[retainer] = n; + if (CurrentNode() != nullptr) { + // For ABI compatibility, we did not backport the virtual function + // AddEdge() with a name as last argument back to v10.x. + graph_->AddEdge(CurrentNode(), n/*, edge_name */); + } if (n->JSWrapperNode() != nullptr) { - graph_->AddEdge(n, n->JSWrapperNode()); - graph_->AddEdge(n->JSWrapperNode(), n); + graph_->AddEdge(n, n->JSWrapperNode()/*, "wrapped" */); + graph_->AddEdge(n->JSWrapperNode(), n/*, "wrapper" */); + } + + return n; +} + +MemoryRetainerNode* MemoryTracker::AddNode(const char* node_name, + size_t size, + const char* edge_name) { + MemoryRetainerNode* n = new MemoryRetainerNode(this, node_name, size); + graph_->AddNode(std::unique_ptr(n)); + + if (CurrentNode() != nullptr) { + // For ABI compatibility, we did not backport the virtual function + // AddEdge() with a name as last argument back to v10.x. + graph_->AddEdge(CurrentNode(), n/*, edge_name*/); } return n; } -MemoryRetainerNode* MemoryTracker::PushNode( - const char* name, const MemoryRetainer* retainer) { - MemoryRetainerNode* n = AddNode(name, retainer); +MemoryRetainerNode* MemoryTracker::PushNode(const MemoryRetainer* retainer, + const char* edge_name) { + MemoryRetainerNode* n = AddNode(retainer, edge_name); + node_stack_.push(n); + return n; +} + +MemoryRetainerNode* MemoryTracker::PushNode(const char* node_name, + size_t size, + const char* edge_name) { + MemoryRetainerNode* n = AddNode(node_name, size, edge_name); node_stack_.push(n); return n; } diff --git a/src/memory_tracker.h b/src/memory_tracker.h index d0f9e0dcad8f1e..17992792128809 100644 --- a/src/memory_tracker.h +++ b/src/memory_tracker.h @@ -14,6 +14,19 @@ namespace node { +// Set the node name of a MemoryRetainer to klass +#define SET_MEMORY_INFO_NAME(Klass) \ + inline std::string MemoryInfoName() const override { return #Klass; } + +// Set the self size of a MemoryRetainer to the stack-allocated size of a +// certain class +#define SET_SELF_SIZE(Klass) \ + inline size_t SelfSize() const override { return sizeof(Klass); } + +// Used when there is no additional fields to track +#define SET_NO_MEMORY_INFO() \ + inline void MemoryInfo(node::MemoryTracker* tracker) const override {} + class MemoryTracker; class MemoryRetainerNode; @@ -21,61 +34,169 @@ namespace crypto { class NodeBIO; } +/* Example: + * + * class ExampleRetainer : public MemoryRetainer { + * public: + * // Or use SET_NO_MEMORY_INFO() when there is no additional fields + * // to track. + * void MemoryInfo(MemoryTracker* tracker) const override { + * // Node name and size comes from the MemoryInfoName and SelfSize of + * // AnotherRetainerClass + * tracker->TrackField("another_retainer", another_retainer_); + * // Specify node name and size explicitly + * tracker->TrackFieldWithSize("internal_member", + * internal_member_.size(), + * "InternalClass"); + * // Node name falls back to the edge name, + * // elements in the container appear as grandchildren nodes + * tracker->TrackField("vector", vector_); + * // Node name and size come from the JS object + * tracker->TrackField("target", target_); + * } + * + * // Or use SET_MEMORY_INFO_NAME(ExampleRetainer) + * std::string MemoryInfoName() const override { + * return "ExampleRetainer"; + * } + * + * // Or use SET_SELF_SIZE(ExampleRetainer) + * size_t SelfSize() const override { + * return sizeof(ExampleRetainer); + * } + * + * // Note: no need to implement these two methods when implementing + * // a BaseObject or an AsyncWrap class + * bool IsRootNode() const override { return !wrapped_.IsWeak(); } + * v8::Local WrappedObject() const override { + * return node::PersistentToLocal(wrapped_); + * } + * private: + * AnotherRetainerClass another_retainer_; + * InternalClass internal_member_; + * std::vector vector_; + * node::Persistent target_; + * + * node::Persistent wrapped_; + * } + * + * This creates the following graph: + * Node / ExampleRetainer + * |> another_retainer :: Node / AnotherRetainerClass + * |> internal_member :: Node / InternalClass + * |> vector :: Node / vector (elements will be grandchildren) + * |> [1] :: Node / uv_async_t (uv_async_t has predefined names) + * |> [2] :: Node / uv_async_t + * |> ... + * |> target :: TargetClass (JS class name of the target object) + * |> wrapped :: WrappedClass (JS class name of the wrapped object) + * |> wrapper :: Node / ExampleRetainer (back reference) + */ class MemoryRetainer { public: virtual ~MemoryRetainer() {} - // Subclasses should implement this to provide information for heap snapshots. + // Subclasses should implement these methods to provide information + // for the V8 heap snapshot generator. + // The MemoryInfo() method is assumed to be called within a context + // where all the edges start from the node of the current retainer, + // and point to the nodes as specified by tracker->Track* calls. virtual void MemoryInfo(MemoryTracker* tracker) const = 0; + virtual std::string MemoryInfoName() const = 0; + virtual size_t SelfSize() const = 0; virtual v8::Local WrappedObject() const { return v8::Local(); } virtual bool IsRootNode() const { return false; } - - virtual std::string MemoryInfoName() const { return std::string(); } }; class MemoryTracker { public: + // Used to specify node name and size explicitly + inline void TrackFieldWithSize(const char* edge_name, + size_t size, + const char* node_name = nullptr); + // Shortcut to extract the underlying object out of the smart pointer template - inline void TrackThis(const T* obj); - - inline void TrackFieldWithSize(const char* name, size_t size); - - inline void TrackField(const char* name, const MemoryRetainer& value); - inline void TrackField(const char* name, const MemoryRetainer* value); - template - inline void TrackField(const char* name, const std::unique_ptr& value); + inline void TrackField(const char* edge_name, + const std::unique_ptr& value, + const char* node_name = nullptr); + + // For containers, the elements will be graphed as grandchildren nodes + // if the container is not empty. + // By default, we assume the parent count the stack size of the container + // into its SelfSize so that will be subtracted from the parent size when we + // spin off a new node for the container. + // TODO(joyeecheung): use RTTI to retrieve the class name at runtime? template - inline void TrackField(const char* name, const T& value); + inline void TrackField(const char* edge_name, + const T& value, + const char* node_name = nullptr, + const char* element_name = nullptr, + bool subtract_from_self = true); template - inline void TrackField(const char* name, const std::queue& value); - template - inline void TrackField(const char* name, const std::basic_string& value); - template ::is_specialized, bool>::type, - typename dummy = bool> - inline void TrackField(const char* name, const T& value); + inline void TrackField(const char* edge_name, + const std::queue& value, + const char* node_name = nullptr, + const char* element_name = nullptr); template - inline void TrackField(const char* name, const std::pair& value); + inline void TrackField(const char* edge_name, + const std::pair& value, + const char* node_name = nullptr); + + // For the following types, node_name will be ignored and predefined names + // will be used instead. They are only in the signature for template + // expansion. + inline void TrackField(const char* edge_name, + const MemoryRetainer& value, + const char* node_name = nullptr); + inline void TrackField(const char* edge_name, + const MemoryRetainer* value, + const char* node_name = nullptr); + template + inline void TrackField(const char* edge_name, + const std::basic_string& value, + const char* node_name = nullptr); + template ::is_specialized, bool>::type, + typename dummy = bool> + inline void TrackField(const char* edge_name, + const T& value, + const char* node_name = nullptr); template - inline void TrackField(const char* name, - const v8::Persistent& value); + inline void TrackField(const char* edge_name, + const v8::Persistent& value, + const char* node_name = nullptr); template - inline void TrackField(const char* name, const v8::Local& value); + inline void TrackField(const char* edge_name, + const v8::Local& value, + const char* node_name = nullptr); template - inline void TrackField(const char* name, const MallocedBuffer& value); - inline void TrackField(const char* name, const uv_buf_t& value); + inline void TrackField(const char* edge_name, + const MallocedBuffer& value, + const char* node_name = nullptr); + inline void TrackField(const char* edge_name, + const uv_buf_t& value, + const char* node_name = nullptr); + inline void TrackField(const char* edge_name, + const uv_timer_t& value, + const char* node_name = nullptr); + inline void TrackField(const char* edge_name, + const uv_async_t& value, + const char* node_name = nullptr); template - inline void TrackField(const char* name, - const AliasedBuffer& value); + inline void TrackField(const char* edge_name, + const AliasedBuffer& value, + const char* node_name = nullptr); - inline void Track(const MemoryRetainer* value, const char* name = nullptr); + // Put a memory container into the graph, create an edge from + // the current node if there is one on the stack. + inline void Track(const MemoryRetainer* retainer, + const char* edge_name = nullptr); - inline void set_track_only_self(bool value) { track_only_self_ = value; } inline v8::EmbedderGraph* graph() { return graph_; } inline v8::Isolate* isolate() { return isolate_; } @@ -88,13 +209,18 @@ class MemoryTracker { NodeMap; inline MemoryRetainerNode* CurrentNode() const; - inline MemoryRetainerNode* AddNode(const char* name, - const MemoryRetainer* retainer = nullptr); - inline MemoryRetainerNode* PushNode(const char* name, - const MemoryRetainer* retainer = nullptr); + inline MemoryRetainerNode* AddNode(const MemoryRetainer* retainer, + const char* edge_name = nullptr); + inline MemoryRetainerNode* PushNode(const MemoryRetainer* retainer, + const char* edge_name = nullptr); + inline MemoryRetainerNode* AddNode(const char* node_name, + size_t size, + const char* edge_name = nullptr); + inline MemoryRetainerNode* PushNode(const char* node_name, + size_t size, + const char* edge_name = nullptr); inline void PopNode(); - bool track_only_self_ = false; v8::Isolate* isolate_; v8::EmbedderGraph* graph_; std::stack node_stack_; diff --git a/src/module_wrap.cc b/src/module_wrap.cc index 5249ccb8dccd28..816c68d55d16ce 100644 --- a/src/module_wrap.cc +++ b/src/module_wrap.cc @@ -433,16 +433,15 @@ std::string ReadFile(uv_file file) { uv_fs_t req; char buffer_memory[4096]; uv_buf_t buf = uv_buf_init(buffer_memory, sizeof(buffer_memory)); - int r; do { - r = uv_fs_read(uv_default_loop(), - &req, - file, - &buf, - 1, - contents.length(), // offset - nullptr); + const int r = uv_fs_read(uv_default_loop(), + &req, + file, + &buf, + 1, + contents.length(), // offset + nullptr); uv_fs_req_cleanup(&req); if (r <= 0) @@ -801,7 +800,8 @@ void ModuleWrap::Initialize(Local target, env->SetProtoMethodNoSideEffect(tpl, "getStaticDependencySpecifiers", GetStaticDependencySpecifiers); - target->Set(FIXED_ONE_BYTE_STRING(isolate, "ModuleWrap"), tpl->GetFunction()); + target->Set(FIXED_ONE_BYTE_STRING(isolate, "ModuleWrap"), + tpl->GetFunction(context).ToLocalChecked()); env->SetMethod(target, "resolve", Resolve); env->SetMethod(target, "setImportModuleDynamicallyCallback", diff --git a/src/module_wrap.h b/src/module_wrap.h index 3e19b6c9eb3ebe..d6593c48135d18 100644 --- a/src/module_wrap.h +++ b/src/module_wrap.h @@ -34,12 +34,12 @@ class ModuleWrap : public BaseObject { v8::Local meta); void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("url", url_); tracker->TrackField("resolve_cache", resolve_cache_); } - ADD_MEMORY_INFO_NAME(ModuleWrap) + SET_MEMORY_INFO_NAME(ModuleWrap) + SET_SELF_SIZE(ModuleWrap) private: ModuleWrap(Environment* env, diff --git a/src/node.cc b/src/node.cc index 657822b68bad63..e52b2811aced95 100644 --- a/src/node.cc +++ b/src/node.cc @@ -76,7 +76,6 @@ #include #include // _O_RDWR #include // PATH_MAX -#include #include #include #include @@ -129,7 +128,6 @@ namespace node { using options_parser::kAllowedInEnvironment; using options_parser::kDisallowedInEnvironment; using v8::Array; -using v8::ArrayBuffer; using v8::Boolean; using v8::Context; using v8::DEFAULT; @@ -149,16 +147,13 @@ using v8::Maybe; using v8::MaybeLocal; using v8::Message; using v8::MicrotasksPolicy; -using v8::Name; using v8::NamedPropertyHandlerConfiguration; using v8::NewStringType; using v8::None; using v8::Nothing; using v8::Null; -using v8::Number; using v8::Object; using v8::ObjectTemplate; -using v8::Promise; using v8::PropertyAttribute; using v8::ReadOnly; using v8::Script; @@ -327,7 +322,7 @@ static struct { // right away on the websocket port and fails to bind/etc, this will return // false. return env->inspector_agent()->Start( - script_path == nullptr ? "" : script_path, options); + script_path == nullptr ? "" : script_path, options, true); } bool InspectorStarted(Environment* env) { @@ -2273,19 +2268,32 @@ static int GetDebugSignalHandlerMappingName(DWORD pid, wchar_t* buf, static void DebugProcess(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); Isolate* isolate = args.GetIsolate(); + + if (args.Length() != 1) { + env->ThrowError("Invalid number of arguments."); + return; + } + HANDLE process = nullptr; HANDLE thread = nullptr; HANDLE mapping = nullptr; wchar_t mapping_name[32]; LPTHREAD_START_ROUTINE* handler = nullptr; - - if (args.Length() != 1) { - env->ThrowError("Invalid number of arguments."); - goto out; - } + DWORD pid = 0; + + OnScopeLeave cleanup([&]() { + if (process != nullptr) + CloseHandle(process); + if (thread != nullptr) + CloseHandle(thread); + if (handler != nullptr) + UnmapViewOfFile(handler); + if (mapping != nullptr) + CloseHandle(mapping); + }); CHECK(args[0]->IsNumber()); - DWORD pid = args[0].As()->Value(); + pid = args[0].As()->Value(); process = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | @@ -2295,14 +2303,14 @@ static void DebugProcess(const FunctionCallbackInfo& args) { if (process == nullptr) { isolate->ThrowException( WinapiErrnoException(isolate, GetLastError(), "OpenProcess")); - goto out; + return; } if (GetDebugSignalHandlerMappingName(pid, mapping_name, arraysize(mapping_name)) < 0) { env->ThrowErrnoException(errno, "sprintf"); - goto out; + return; } mapping = OpenFileMappingW(FILE_MAP_READ, FALSE, mapping_name); @@ -2310,7 +2318,7 @@ static void DebugProcess(const FunctionCallbackInfo& args) { isolate->ThrowException(WinapiErrnoException(isolate, GetLastError(), "OpenFileMappingW")); - goto out; + return; } handler = reinterpret_cast( @@ -2322,7 +2330,7 @@ static void DebugProcess(const FunctionCallbackInfo& args) { if (handler == nullptr || *handler == nullptr) { isolate->ThrowException( WinapiErrnoException(isolate, GetLastError(), "MapViewOfFile")); - goto out; + return; } thread = CreateRemoteThread(process, @@ -2336,7 +2344,7 @@ static void DebugProcess(const FunctionCallbackInfo& args) { isolate->ThrowException(WinapiErrnoException(isolate, GetLastError(), "CreateRemoteThread")); - goto out; + return; } // Wait for the thread to terminate @@ -2344,18 +2352,8 @@ static void DebugProcess(const FunctionCallbackInfo& args) { isolate->ThrowException(WinapiErrnoException(isolate, GetLastError(), "WaitForSingleObject")); - goto out; + return; } - - out: - if (process != nullptr) - CloseHandle(process); - if (thread != nullptr) - CloseHandle(thread); - if (handler != nullptr) - UnmapViewOfFile(handler); - if (mapping != nullptr) - CloseHandle(mapping); } #endif // _WIN32 @@ -2466,7 +2464,7 @@ void ProcessArgv(std::vector* args, bool is_env) { // Parse a few arguments which are specific to Node. std::vector v8_args; - std::string error; + std::vector errors{}; { // TODO(addaleax): The mutex here should ideally be held during the @@ -2478,11 +2476,13 @@ void ProcessArgv(std::vector* args, &v8_args, per_process_opts.get(), is_env ? kAllowedInEnvironment : kDisallowedInEnvironment, - &error); + &errors); } - if (!error.empty()) { - fprintf(stderr, "%s: %s\n", args->at(0).c_str(), error.c_str()); + if (!errors.empty()) { + for (auto const& error : errors) { + fprintf(stderr, "%s: %s\n", args->at(0).c_str(), error.c_str()); + } exit(9); } @@ -2499,30 +2499,7 @@ void ProcessArgv(std::vector* args, for (const std::string& cve : per_process_opts->security_reverts) Revert(cve.c_str()); - // TODO(addaleax): Move this validation to the option parsers. auto env_opts = per_process_opts->per_isolate->per_env; - if (!env_opts->userland_loader.empty() && - !env_opts->experimental_modules) { - fprintf(stderr, "%s: --loader requires --experimental-modules be enabled\n", - args->at(0).c_str()); - exit(9); - } - - if (env_opts->syntax_check_only && env_opts->has_eval_string) { - fprintf(stderr, "%s: either --check or --eval can be used, not both\n", - args->at(0).c_str()); - exit(9); - } - -#if HAVE_OPENSSL - if (per_process_opts->use_openssl_ca && per_process_opts->use_bundled_ca) { - fprintf(stderr, "%s: either --use-openssl-ca or --use-bundled-ca can be " - "used, not both\n", - args->at(0).c_str()); - exit(9); - } -#endif - if (std::find(v8_args.begin(), v8_args.end(), "--abort-on-uncaught-exception") != v8_args.end() || std::find(v8_args.begin(), v8_args.end(), diff --git a/src/node.h b/src/node.h index be0135125f6a30..bb2a9d2e0533ac 100644 --- a/src/node.h +++ b/src/node.h @@ -139,7 +139,8 @@ NODE_DEPRECATED("Use ErrnoException(isolate, ...)", path); }) -inline v8::Local UVException(int errorno, +NODE_DEPRECATED("Use UVException(isolate, ...)", + inline v8::Local UVException(int errorno, const char* syscall = nullptr, const char* message = nullptr, const char* path = nullptr) { @@ -148,7 +149,7 @@ inline v8::Local UVException(int errorno, syscall, message, path); -} +}) /* * These methods need to be called in a HandleScope. @@ -309,9 +310,16 @@ NODE_EXTERN void RunAtExit(Environment* env); NODE_EXTERN struct uv_loop_s* GetCurrentEventLoop(v8::Isolate* isolate); /* Converts a unixtime to V8 Date */ -#define NODE_UNIXTIME_V8(t) v8::Date::New(v8::Isolate::GetCurrent(), \ - 1000 * static_cast(t)) -#define NODE_V8_UNIXTIME(v) (static_cast((v)->NumberValue())/1000.0); +NODE_DEPRECATED("Use v8::Date::New() directly", + inline v8::Local NODE_UNIXTIME_V8(double time) { + return v8::Date::New(v8::Isolate::GetCurrent(), 1000 * time); +}) +#define NODE_UNIXTIME_V8 node::NODE_UNIXTIME_V8 +NODE_DEPRECATED("Use v8::Date::ValueOf() directly", + inline double NODE_V8_UNIXTIME(v8::Local date) { + return date->ValueOf() / 1000; +}) +#define NODE_V8_UNIXTIME node::NODE_V8_UNIXTIME #define NODE_DEFINE_CONSTANT(target, constant) \ do { \ @@ -372,9 +380,10 @@ inline void NODE_SET_METHOD(v8::Local recv, v8::FunctionCallback callback) { v8::Isolate* isolate = v8::Isolate::GetCurrent(); v8::HandleScope handle_scope(isolate); + v8::Local context = isolate->GetCurrentContext(); v8::Local t = v8::FunctionTemplate::New(isolate, callback); - v8::Local fn = t->GetFunction(); + v8::Local fn = t->GetFunction(context).ToLocalChecked(); v8::Local fn_name = v8::String::NewFromUtf8(isolate, name, v8::NewStringType::kInternalized).ToLocalChecked(); fn->SetName(fn_name); @@ -760,84 +769,84 @@ v8::MaybeLocal MakeCallback(v8::Isolate* isolate, * `AsyncResource::MakeCallback()` is used, then all four callbacks will be * called automatically. */ class AsyncResource { - public: - AsyncResource(v8::Isolate* isolate, - v8::Local resource, - const char* name, - async_id trigger_async_id = -1) - : isolate_(isolate), - resource_(isolate, resource) { - async_context_ = EmitAsyncInit(isolate, resource, name, - trigger_async_id); - } - - AsyncResource(v8::Isolate* isolate, - v8::Local resource, - v8::Local name, - async_id trigger_async_id = -1) - : isolate_(isolate), - resource_(isolate, resource) { - async_context_ = EmitAsyncInit(isolate, resource, name, - trigger_async_id); - } - - virtual ~AsyncResource() { - EmitAsyncDestroy(isolate_, async_context_); - resource_.Reset(); - } - - v8::MaybeLocal MakeCallback( - v8::Local callback, - int argc, - v8::Local* argv) { - return node::MakeCallback(isolate_, get_resource(), - callback, argc, argv, - async_context_); - } - - v8::MaybeLocal MakeCallback( - const char* method, - int argc, - v8::Local* argv) { - return node::MakeCallback(isolate_, get_resource(), - method, argc, argv, - async_context_); - } - - v8::MaybeLocal MakeCallback( - v8::Local symbol, - int argc, - v8::Local* argv) { - return node::MakeCallback(isolate_, get_resource(), - symbol, argc, argv, - async_context_); - } - - v8::Local get_resource() { - return resource_.Get(isolate_); - } - - async_id get_async_id() const { - return async_context_.async_id; - } - - async_id get_trigger_async_id() const { - return async_context_.trigger_async_id; - } - - protected: - class CallbackScope : public node::CallbackScope { - public: - explicit CallbackScope(AsyncResource* res) - : node::CallbackScope(res->isolate_, - res->resource_.Get(res->isolate_), - res->async_context_) {} - }; - - private: - v8::Isolate* isolate_; - v8::Persistent resource_; - async_context async_context_; + public: + AsyncResource(v8::Isolate* isolate, + v8::Local resource, + const char* name, + async_id trigger_async_id = -1) + : isolate_(isolate), + resource_(isolate, resource) { + async_context_ = EmitAsyncInit(isolate, resource, name, + trigger_async_id); + } + + AsyncResource(v8::Isolate* isolate, + v8::Local resource, + v8::Local name, + async_id trigger_async_id = -1) + : isolate_(isolate), + resource_(isolate, resource) { + async_context_ = EmitAsyncInit(isolate, resource, name, + trigger_async_id); + } + + virtual ~AsyncResource() { + EmitAsyncDestroy(isolate_, async_context_); + resource_.Reset(); + } + + v8::MaybeLocal MakeCallback( + v8::Local callback, + int argc, + v8::Local* argv) { + return node::MakeCallback(isolate_, get_resource(), + callback, argc, argv, + async_context_); + } + + v8::MaybeLocal MakeCallback( + const char* method, + int argc, + v8::Local* argv) { + return node::MakeCallback(isolate_, get_resource(), + method, argc, argv, + async_context_); + } + + v8::MaybeLocal MakeCallback( + v8::Local symbol, + int argc, + v8::Local* argv) { + return node::MakeCallback(isolate_, get_resource(), + symbol, argc, argv, + async_context_); + } + + v8::Local get_resource() { + return resource_.Get(isolate_); + } + + async_id get_async_id() const { + return async_context_.async_id; + } + + async_id get_trigger_async_id() const { + return async_context_.trigger_async_id; + } + + protected: + class CallbackScope : public node::CallbackScope { + public: + explicit CallbackScope(AsyncResource* res) + : node::CallbackScope(res->isolate_, + res->resource_.Get(res->isolate_), + res->async_context_) {} + }; + + private: + v8::Isolate* isolate_; + v8::Persistent resource_; + async_context async_context_; }; } // namespace node diff --git a/src/node_api.cc b/src/node_api.cc index 3dd5b383310a03..83eef0ff2eea47 100644 --- a/src/node_api.cc +++ b/src/node_api.cc @@ -1518,7 +1518,9 @@ napi_status napi_define_class(napi_env env, } } - *result = v8impl::JsValueFromV8LocalValue(scope.Escape(tpl->GetFunction())); + v8::Local context = isolate->GetCurrentContext(); + *result = v8impl::JsValueFromV8LocalValue( + scope.Escape(tpl->GetFunction(context).ToLocalChecked())); if (static_property_count > 0) { std::vector static_descriptors; diff --git a/src/node_api.h b/src/node_api.h index 10a2c8ff3098be..e8c1f79de7cd91 100644 --- a/src/node_api.h +++ b/src/node_api.h @@ -598,7 +598,7 @@ NAPI_EXTERN napi_status napi_adjust_external_memory(napi_env env, int64_t change_in_bytes, int64_t* adjusted_value); -// Runnig a script +// Running a script NAPI_EXTERN napi_status napi_run_script(napi_env env, napi_value script, napi_value* result); diff --git a/src/node_buffer.cc b/src/node_buffer.cc index dd285156b5644b..8642477db4d927 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -33,8 +33,6 @@ #include #include -#define BUFFER_ID 0xB0E4 - #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define THROW_AND_RETURN_UNLESS_BUFFER(env, obj) \ @@ -144,7 +142,6 @@ CallbackInfo::CallbackInfo(Isolate* isolate, CHECK_NOT_NULL(data_); persistent_.SetWeak(this, WeakCallback, v8::WeakCallbackType::kParameter); - persistent_.SetWrapperClassId(BUFFER_ID); isolate->AdjustAmountOfExternalAllocatedMemory(sizeof(*this)); } diff --git a/src/node_constants.cc b/src/node_constants.cc index b6c7bf37a3ad86..753b8f8fe16602 100644 --- a/src/node_constants.cc +++ b/src/node_constants.cc @@ -1241,69 +1241,6 @@ void DefineCryptoConstants(Local target) { NODE_DEFINE_CONSTANT(target, INT_MAX); } -void DefineZlibConstants(Local target) { - NODE_DEFINE_CONSTANT(target, Z_NO_FLUSH); - NODE_DEFINE_CONSTANT(target, Z_PARTIAL_FLUSH); - NODE_DEFINE_CONSTANT(target, Z_SYNC_FLUSH); - NODE_DEFINE_CONSTANT(target, Z_FULL_FLUSH); - NODE_DEFINE_CONSTANT(target, Z_FINISH); - NODE_DEFINE_CONSTANT(target, Z_BLOCK); - - // return/error codes - NODE_DEFINE_CONSTANT(target, Z_OK); - NODE_DEFINE_CONSTANT(target, Z_STREAM_END); - NODE_DEFINE_CONSTANT(target, Z_NEED_DICT); - NODE_DEFINE_CONSTANT(target, Z_ERRNO); - NODE_DEFINE_CONSTANT(target, Z_STREAM_ERROR); - NODE_DEFINE_CONSTANT(target, Z_DATA_ERROR); - NODE_DEFINE_CONSTANT(target, Z_MEM_ERROR); - NODE_DEFINE_CONSTANT(target, Z_BUF_ERROR); - NODE_DEFINE_CONSTANT(target, Z_VERSION_ERROR); - - NODE_DEFINE_CONSTANT(target, Z_NO_COMPRESSION); - NODE_DEFINE_CONSTANT(target, Z_BEST_SPEED); - NODE_DEFINE_CONSTANT(target, Z_BEST_COMPRESSION); - NODE_DEFINE_CONSTANT(target, Z_DEFAULT_COMPRESSION); - NODE_DEFINE_CONSTANT(target, Z_FILTERED); - NODE_DEFINE_CONSTANT(target, Z_HUFFMAN_ONLY); - NODE_DEFINE_CONSTANT(target, Z_RLE); - NODE_DEFINE_CONSTANT(target, Z_FIXED); - NODE_DEFINE_CONSTANT(target, Z_DEFAULT_STRATEGY); - NODE_DEFINE_CONSTANT(target, ZLIB_VERNUM); - - enum node_zlib_mode { - NONE, - DEFLATE, - INFLATE, - GZIP, - GUNZIP, - DEFLATERAW, - INFLATERAW, - UNZIP - }; - - NODE_DEFINE_CONSTANT(target, DEFLATE); - NODE_DEFINE_CONSTANT(target, INFLATE); - NODE_DEFINE_CONSTANT(target, GZIP); - NODE_DEFINE_CONSTANT(target, GUNZIP); - NODE_DEFINE_CONSTANT(target, DEFLATERAW); - NODE_DEFINE_CONSTANT(target, INFLATERAW); - NODE_DEFINE_CONSTANT(target, UNZIP); - - NODE_DEFINE_CONSTANT(target, Z_MIN_WINDOWBITS); - NODE_DEFINE_CONSTANT(target, Z_MAX_WINDOWBITS); - NODE_DEFINE_CONSTANT(target, Z_DEFAULT_WINDOWBITS); - NODE_DEFINE_CONSTANT(target, Z_MIN_CHUNK); - NODE_DEFINE_CONSTANT(target, Z_MAX_CHUNK); - NODE_DEFINE_CONSTANT(target, Z_DEFAULT_CHUNK); - NODE_DEFINE_CONSTANT(target, Z_MIN_MEMLEVEL); - NODE_DEFINE_CONSTANT(target, Z_MAX_MEMLEVEL); - NODE_DEFINE_CONSTANT(target, Z_DEFAULT_MEMLEVEL); - NODE_DEFINE_CONSTANT(target, Z_MIN_LEVEL); - NODE_DEFINE_CONSTANT(target, Z_MAX_LEVEL); - NODE_DEFINE_CONSTANT(target, Z_DEFAULT_LEVEL); -} - void DefineDLOpenConstants(Local target) { #ifdef RTLD_LAZY NODE_DEFINE_CONSTANT(target, RTLD_LAZY); diff --git a/src/node_contextify.cc b/src/node_contextify.cc index f0c0b142f09cc1..f46193d77510b7 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -202,7 +202,8 @@ void ContextifyContext::Init(Environment* env, Local target) { Local function_template = FunctionTemplate::New(env->isolate()); function_template->InstanceTemplate()->SetInternalFieldCount(1); - env->set_script_data_constructor_function(function_template->GetFunction()); + env->set_script_data_constructor_function( + function_template->GetFunction(env->context()).ToLocalChecked()); env->SetMethod(target, "makeContext", MakeContext); env->SetMethod(target, "isContext", IsContext); @@ -588,13 +589,11 @@ class ContextifyScript : public BaseObject { private: Persistent script_; - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(ContextifyScript) - public: + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(ContextifyScript) + SET_SELF_SIZE(ContextifyScript) + static void Init(Environment* env, Local target) { HandleScope scope(env->isolate()); Local class_name = @@ -607,7 +606,8 @@ class ContextifyScript : public BaseObject { env->SetProtoMethod(script_tmpl, "runInContext", RunInContext); env->SetProtoMethod(script_tmpl, "runInThisContext", RunInThisContext); - target->Set(class_name, script_tmpl->GetFunction()); + target->Set(class_name, + script_tmpl->GetFunction(env->context()).ToLocalChecked()); env->set_script_context_constructor_template(script_tmpl); } diff --git a/src/node_crypto.cc b/src/node_crypto.cc index b4a6aaa87dd075..69d48b8c9a3b42 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -45,13 +45,6 @@ #include #include -static const char PUBLIC_KEY_PFX[] = "-----BEGIN PUBLIC KEY-----"; -static const int PUBLIC_KEY_PFX_LEN = sizeof(PUBLIC_KEY_PFX) - 1; -static const char PUBRSA_KEY_PFX[] = "-----BEGIN RSA PUBLIC KEY-----"; -static const int PUBRSA_KEY_PFX_LEN = sizeof(PUBRSA_KEY_PFX) - 1; -static const char CERTIFICATE_PFX[] = "-----BEGIN CERTIFICATE-----"; -static const int CERTIFICATE_PFX_LEN = sizeof(CERTIFICATE_PFX) - 1; - static const int X509_NAME_FLAGS = ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_UTF8_CONVERT | XN_FLAG_SEP_MULTILINE @@ -88,6 +81,7 @@ using v8::SideEffectType; using v8::Signature; using v8::String; using v8::Uint32; +using v8::Undefined; using v8::Value; @@ -365,7 +359,8 @@ void SecureContext::Initialize(Environment* env, Local target) { t->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "kTicketKeyIVIndex"), Integer::NewFromUnsigned(env->isolate(), kTicketKeyIVIndex)); - target->Set(secureContextString, t->GetFunction()); + target->Set(secureContextString, + t->GetFunction(env->context()).ToLocalChecked()); env->set_secure_context_constructor_template(t); } @@ -405,7 +400,7 @@ void SecureContext::Init(const FunctionCallbackInfo& args) { } else if (strcmp(*sslmethod, "SSLv3_client_method") == 0) { return env->ThrowError("SSLv3 methods disabled"); } else if (strcmp(*sslmethod, "SSLv23_method") == 0) { - method = TLS_method(); + // noop } else if (strcmp(*sslmethod, "SSLv23_server_method") == 0) { method = TLS_server_method(); } else if (strcmp(*sslmethod, "SSLv23_client_method") == 0) { @@ -413,7 +408,6 @@ void SecureContext::Init(const FunctionCallbackInfo& args) { } else if (strcmp(*sslmethod, "TLSv1_method") == 0) { min_version = TLS1_VERSION; max_version = TLS1_VERSION; - method = TLS_method(); } else if (strcmp(*sslmethod, "TLSv1_server_method") == 0) { min_version = TLS1_VERSION; max_version = TLS1_VERSION; @@ -425,7 +419,6 @@ void SecureContext::Init(const FunctionCallbackInfo& args) { } else if (strcmp(*sslmethod, "TLSv1_1_method") == 0) { min_version = TLS1_1_VERSION; max_version = TLS1_1_VERSION; - method = TLS_method(); } else if (strcmp(*sslmethod, "TLSv1_1_server_method") == 0) { min_version = TLS1_1_VERSION; max_version = TLS1_1_VERSION; @@ -437,7 +430,6 @@ void SecureContext::Init(const FunctionCallbackInfo& args) { } else if (strcmp(*sslmethod, "TLSv1_2_method") == 0) { min_version = TLS1_2_VERSION; max_version = TLS1_2_VERSION; - method = TLS_method(); } else if (strcmp(*sslmethod, "TLSv1_2_server_method") == 0) { min_version = TLS1_2_VERSION; max_version = TLS1_2_VERSION; @@ -461,6 +453,11 @@ void SecureContext::Init(const FunctionCallbackInfo& args) { SSL_CTX_set_options(sc->ctx_.get(), SSL_OP_NO_SSLv2); SSL_CTX_set_options(sc->ctx_.get(), SSL_OP_NO_SSLv3); + // Enable automatic cert chaining. This is enabled by default in OpenSSL, but + // disabled by default in BoringSSL. Enable it explicitly to make the + // behavior match when Node is built with BoringSSL. + SSL_CTX_clear_mode(sc->ctx_.get(), SSL_MODE_NO_AUTO_CHAIN); + // SSL session cache configuration SSL_CTX_set_session_cache_mode(sc->ctx_.get(), SSL_SESS_CACHE_SERVER | @@ -576,20 +573,16 @@ int SSL_CTX_use_certificate_chain(SSL_CTX* ctx, if (ret) { // If we could set up our certificate, now proceed to // the CA certificates. - int r; - SSL_CTX_clear_extra_chain_certs(ctx); for (int i = 0; i < sk_X509_num(extra_certs); i++) { X509* ca = sk_X509_value(extra_certs, i); // NOTE: Increments reference count on `ca` - r = SSL_CTX_add1_chain_cert(ctx, ca); - - if (!r) { + if (!SSL_CTX_add1_chain_cert(ctx, ca)) { ret = 0; issuer = nullptr; - goto end; + break; } // Note that we must not free r if it was successfully // added to the chain (while we must free the main @@ -616,12 +609,10 @@ int SSL_CTX_use_certificate_chain(SSL_CTX* ctx, issuer = X509_dup(issuer); if (issuer == nullptr) { ret = 0; - goto end; } } } - end: issuer_->reset(issuer); if (ret && x != nullptr) { @@ -652,50 +643,39 @@ int SSL_CTX_use_certificate_chain(SSL_CTX* ctx, if (!x) return 0; - // TODO(addaleax): Turn this into smart pointer as well. - X509* extra = nullptr; - int ret = 0; unsigned long err = 0; // NOLINT(runtime/int) StackOfX509 extra_certs(sk_X509_new_null()); if (!extra_certs) - goto done; + return 0; - while ((extra = PEM_read_bio_X509(in.get(), + while (X509Pointer extra {PEM_read_bio_X509(in.get(), nullptr, NoPasswordCallback, - nullptr))) { - if (sk_X509_push(extra_certs.get(), extra)) + nullptr)}) { + if (sk_X509_push(extra_certs.get(), extra.get())) { + extra.release(); continue; + } - // Failure, free all certs - goto done; + return 0; } - extra = nullptr; // When the while loop ends, it's usually just EOF. err = ERR_peek_last_error(); if (ERR_GET_LIB(err) == ERR_LIB_PEM && ERR_GET_REASON(err) == PEM_R_NO_START_LINE) { ERR_clear_error(); - } else { + } else { // some real error - goto done; + return 0; } - ret = SSL_CTX_use_certificate_chain(ctx, - std::move(x), - extra_certs.get(), - cert, - issuer); - if (!ret) - goto done; - - done: - if (extra != nullptr) - X509_free(extra); - - return ret; + return SSL_CTX_use_certificate_chain(ctx, + std::move(x), + extra_certs.get(), + cert, + issuer); } @@ -1592,15 +1572,11 @@ static Local X509ToObject(Environment* env, X509* cert) { if (index < 0) continue; - X509_EXTENSION* ext; - int rv; - - ext = X509_get_ext(cert, index); + X509_EXTENSION* ext = X509_get_ext(cert, index); CHECK_NOT_NULL(ext); if (!SafeX509ExtPrint(bio.get(), ext)) { - rv = X509V3_EXT_print(bio.get(), ext, 0, 0); - CHECK_EQ(rv, 1); + CHECK_EQ(1, X509V3_EXT_print(bio.get(), ext, 0, 0)); } BIO_get_mem_ptr(bio.get(), &mem); @@ -2180,7 +2156,8 @@ void SSLWrap::VerifyError(const FunctionCallbackInfo& args) { Isolate* isolate = args.GetIsolate(); Local reason_string = OneByteString(isolate, reason); Local exception_value = Exception::Error(reason_string); - Local exception_object = exception_value->ToObject(isolate); + Local exception_object = + exception_value->ToObject(isolate->GetCurrentContext()).ToLocalChecked(); exception_object->Set(w->env()->context(), w->env()->code_string(), OneByteString(isolate, code)).FromJust(); args.GetReturnValue().Set(exception_object); @@ -2534,11 +2511,17 @@ int VerifyCallback(int preverify_ok, X509_STORE_CTX* ctx) { // // Since we cannot perform I/O quickly enough in this callback, we ignore // all preverify_ok errors and let the handshake continue. It is - // imparative that the user use Connection::VerifyError after the + // imperative that the user use Connection::VerifyError after the // 'secure' callback has been made. return 1; } +static bool IsSupportedAuthenticatedMode(int mode) { + return mode == EVP_CIPH_CCM_MODE || + mode == EVP_CIPH_GCM_MODE || + mode == EVP_CIPH_OCB_MODE; +} + void CipherBase::Initialize(Environment* env, Local target) { Local t = env->NewFunctionTemplate(New); @@ -2554,7 +2537,7 @@ void CipherBase::Initialize(Environment* env, Local target) { env->SetProtoMethod(t, "setAAD", SetAAD); target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "CipherBase"), - t->GetFunction()); + t->GetFunction(env->context()).ToLocalChecked()); } @@ -2565,6 +2548,43 @@ void CipherBase::New(const FunctionCallbackInfo& args) { new CipherBase(env, args.This(), kind); } +void CipherBase::CommonInit(const char* cipher_type, + const EVP_CIPHER* cipher, + const unsigned char* key, + int key_len, + const unsigned char* iv, + int iv_len, + unsigned int auth_tag_len) { + CHECK(!ctx_); + ctx_.reset(EVP_CIPHER_CTX_new()); + + const int mode = EVP_CIPHER_mode(cipher); + if (mode == EVP_CIPH_WRAP_MODE) + EVP_CIPHER_CTX_set_flags(ctx_.get(), EVP_CIPHER_CTX_FLAG_WRAP_ALLOW); + + const bool encrypt = (kind_ == kCipher); + if (1 != EVP_CipherInit_ex(ctx_.get(), cipher, nullptr, + nullptr, nullptr, encrypt)) { + return ThrowCryptoError(env(), ERR_get_error(), + "Failed to initialize cipher"); + } + + if (IsSupportedAuthenticatedMode(mode)) { + CHECK_GE(iv_len, 0); + if (!InitAuthenticated(cipher_type, iv_len, auth_tag_len)) + return; + } + + if (!EVP_CIPHER_CTX_set_key_length(ctx_.get(), key_len)) { + ctx_.reset(); + return env()->ThrowError("Invalid key length"); + } + + if (1 != EVP_CipherInit_ex(ctx_.get(), nullptr, nullptr, key, iv, encrypt)) { + return ThrowCryptoError(env(), ERR_get_error(), + "Failed to initialize cipher"); + } +} void CipherBase::Init(const char* cipher_type, const char* key_buf, @@ -2580,7 +2600,6 @@ void CipherBase::Init(const char* cipher_type, } #endif // NODE_FIPS_MODE - CHECK(!ctx_); const EVP_CIPHER* const cipher = EVP_get_cipherbyname(cipher_type); if (cipher == nullptr) return env()->ThrowError("Unknown cipher"); @@ -2598,21 +2617,10 @@ void CipherBase::Init(const char* cipher_type, iv); CHECK_NE(key_len, 0); - ctx_.reset(EVP_CIPHER_CTX_new()); - const int mode = EVP_CIPHER_mode(cipher); - if (mode == EVP_CIPH_WRAP_MODE) - EVP_CIPHER_CTX_set_flags(ctx_.get(), EVP_CIPHER_CTX_FLAG_WRAP_ALLOW); - - const bool encrypt = (kind_ == kCipher); - if (1 != EVP_CipherInit_ex(ctx_.get(), cipher, nullptr, - nullptr, nullptr, encrypt)) { - return ThrowCryptoError(env(), ERR_get_error(), - "Failed to initialize cipher"); - } - - if (encrypt && (mode == EVP_CIPH_CTR_MODE || mode == EVP_CIPH_GCM_MODE || - mode == EVP_CIPH_CCM_MODE)) { + if (kind_ == kCipher && (mode == EVP_CIPH_CTR_MODE || + mode == EVP_CIPH_GCM_MODE || + mode == EVP_CIPH_CCM_MODE)) { // Ignore the return value (i.e. possible exception) because we are // not calling back into JS anyway. ProcessEmitWarning(env(), @@ -2620,23 +2628,8 @@ void CipherBase::Init(const char* cipher_type, cipher_type); } - if (IsAuthenticatedMode()) { - if (!InitAuthenticated(cipher_type, EVP_CIPHER_iv_length(cipher), - auth_tag_len)) - return; - } - - CHECK_EQ(1, EVP_CIPHER_CTX_set_key_length(ctx_.get(), key_len)); - - if (1 != EVP_CipherInit_ex(ctx_.get(), - nullptr, - nullptr, - reinterpret_cast(key), - reinterpret_cast(iv), - encrypt)) { - return ThrowCryptoError(env(), ERR_get_error(), - "Failed to initialize cipher"); - } + CommonInit(cipher_type, cipher, key, key_len, iv, + EVP_CIPHER_iv_length(cipher), auth_tag_len); } @@ -2663,16 +2656,10 @@ void CipherBase::Init(const FunctionCallbackInfo& args) { cipher->Init(*cipher_type, key_buf, key_buf_len, auth_tag_len); } -static bool IsSupportedAuthenticatedMode(int mode) { - return mode == EVP_CIPH_CCM_MODE || - mode == EVP_CIPH_GCM_MODE || - mode == EVP_CIPH_OCB_MODE; -} - void CipherBase::InitIv(const char* cipher_type, - const char* key, + const unsigned char* key, int key_len, - const char* iv, + const unsigned char* iv, int iv_len, unsigned int auth_tag_len) { HandleScope scope(env()->isolate()); @@ -2700,38 +2687,7 @@ void CipherBase::InitIv(const char* cipher_type, return env()->ThrowError("Invalid IV length"); } - ctx_.reset(EVP_CIPHER_CTX_new()); - - if (mode == EVP_CIPH_WRAP_MODE) - EVP_CIPHER_CTX_set_flags(ctx_.get(), EVP_CIPHER_CTX_FLAG_WRAP_ALLOW); - - const bool encrypt = (kind_ == kCipher); - if (1 != EVP_CipherInit_ex(ctx_.get(), cipher, nullptr, - nullptr, nullptr, encrypt)) { - return ThrowCryptoError(env(), ERR_get_error(), - "Failed to initialize cipher"); - } - - if (is_authenticated_mode) { - CHECK(has_iv); - if (!InitAuthenticated(cipher_type, iv_len, auth_tag_len)) - return; - } - - if (!EVP_CIPHER_CTX_set_key_length(ctx_.get(), key_len)) { - ctx_.reset(); - return env()->ThrowError("Invalid key length"); - } - - if (1 != EVP_CipherInit_ex(ctx_.get(), - nullptr, - nullptr, - reinterpret_cast(key), - reinterpret_cast(iv), - encrypt)) { - return ThrowCryptoError(env(), ERR_get_error(), - "Failed to initialize cipher"); - } + CommonInit(cipher_type, cipher, key, key_len, iv, iv_len, auth_tag_len); } @@ -2744,14 +2700,15 @@ void CipherBase::InitIv(const FunctionCallbackInfo& args) { const node::Utf8Value cipher_type(env->isolate(), args[0]); ssize_t key_len = Buffer::Length(args[1]); - const char* key_buf = Buffer::Data(args[1]); + const unsigned char* key_buf = reinterpret_cast( + Buffer::Data(args[1])); ssize_t iv_len; - const char* iv_buf; + const unsigned char* iv_buf; if (args[2]->IsNull()) { iv_buf = nullptr; iv_len = -1; } else { - iv_buf = Buffer::Data(args[2]); + iv_buf = reinterpret_cast(Buffer::Data(args[2])); iv_len = Buffer::Length(args[2]); } @@ -3200,7 +3157,8 @@ void Hmac::Initialize(Environment* env, v8::Local target) { env->SetProtoMethod(t, "update", HmacUpdate); env->SetProtoMethod(t, "digest", HmacDigest); - target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "Hmac"), t->GetFunction()); + target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "Hmac"), + t->GetFunction(env->context()).ToLocalChecked()); } @@ -3319,7 +3277,8 @@ void Hash::Initialize(Environment* env, v8::Local target) { env->SetProtoMethod(t, "update", HashUpdate); env->SetProtoMethod(t, "digest", HashDigest); - target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "Hash"), t->GetFunction()); + target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "Hash"), + t->GetFunction(env->context()).ToLocalChecked()); } @@ -3513,7 +3472,8 @@ void Sign::Initialize(Environment* env, v8::Local target) { env->SetProtoMethod(t, "update", SignUpdate); env->SetProtoMethod(t, "sign", SignFinal); - target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "Sign"), t->GetFunction()); + target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "Sign"), + t->GetFunction(env->context()).ToLocalChecked()); } @@ -3671,6 +3631,31 @@ enum ParsePublicKeyResult { kParsePublicFailed }; +static ParsePublicKeyResult TryParsePublicKey( + EVPKeyPointer* pkey, + const BIOPointer& bp, + const char* name, + // NOLINTNEXTLINE(runtime/int) + std::function parse) { + unsigned char* der_data; + long der_len; // NOLINT(runtime/int) + + // This skips surrounding data and decodes PEM to DER. + { + MarkPopErrorOnReturn mark_pop_error_on_return; + if (PEM_bytes_read_bio(&der_data, &der_len, nullptr, name, + bp.get(), nullptr, nullptr) != 1) + return kParsePublicNotRecognized; + } + + // OpenSSL might modify the pointer, so we need to make a copy before parsing. + const unsigned char* p = der_data; + pkey->reset(parse(&p, der_len)); + OPENSSL_clear_free(der_data, der_len); + + return *pkey ? kParsePublicOk : kParsePublicFailed; +} + static ParsePublicKeyResult ParsePublicKey(EVPKeyPointer* pkey, const char* key_pem, int key_pem_len) { @@ -3678,31 +3663,32 @@ static ParsePublicKeyResult ParsePublicKey(EVPKeyPointer* pkey, if (!bp) return kParsePublicFailed; - // Check if this is a PKCS#8 or RSA public key before trying as X.509. - if (strncmp(key_pem, PUBLIC_KEY_PFX, PUBLIC_KEY_PFX_LEN) == 0) { - pkey->reset( - PEM_read_bio_PUBKEY(bp.get(), nullptr, NoPasswordCallback, nullptr)); - } else if (strncmp(key_pem, PUBRSA_KEY_PFX, PUBRSA_KEY_PFX_LEN) == 0) { - RSAPointer rsa(PEM_read_bio_RSAPublicKey( - bp.get(), nullptr, PasswordCallback, nullptr)); - if (rsa) { - pkey->reset(EVP_PKEY_new()); - if (*pkey) - EVP_PKEY_set1_RSA(pkey->get(), rsa.get()); - } - } else if (strncmp(key_pem, CERTIFICATE_PFX, CERTIFICATE_PFX_LEN) == 0) { - // X.509 fallback - X509Pointer x509(PEM_read_bio_X509( - bp.get(), nullptr, NoPasswordCallback, nullptr)); - if (!x509) - return kParsePublicFailed; - - pkey->reset(X509_get_pubkey(x509.get())); - } else { - return kParsePublicNotRecognized; - } - - return *pkey ? kParsePublicOk : kParsePublicFailed; + ParsePublicKeyResult ret; + + // Try PKCS#8 first. + ret = TryParsePublicKey(pkey, bp, "PUBLIC KEY", + [](const unsigned char** p, long l) { // NOLINT(runtime/int) + return d2i_PUBKEY(nullptr, p, l); + }); + if (ret != kParsePublicNotRecognized) + return ret; + + // Maybe it is PKCS#1. + CHECK(BIO_reset(bp.get())); + ret = TryParsePublicKey(pkey, bp, "RSA PUBLIC KEY", + [](const unsigned char** p, long l) { // NOLINT(runtime/int) + return d2i_PublicKey(EVP_PKEY_RSA, nullptr, p, l); + }); + if (ret != kParsePublicNotRecognized) + return ret; + + // X.509 fallback. + CHECK(BIO_reset(bp.get())); + return TryParsePublicKey(pkey, bp, "CERTIFICATE", + [](const unsigned char** p, long l) { // NOLINT(runtime/int) + X509Pointer x509(d2i_X509(nullptr, p, l)); + return x509 ? X509_get_pubkey(x509.get()) : nullptr; + }); } void Verify::Initialize(Environment* env, v8::Local target) { @@ -3715,7 +3701,7 @@ void Verify::Initialize(Environment* env, v8::Local target) { env->SetProtoMethod(t, "verify", VerifyFinal); target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "Verify"), - t->GetFunction()); + t->GetFunction(env->context()).ToLocalChecked()); } @@ -3760,7 +3746,6 @@ SignBase::Error Verify::VerifyFinal(const char* key_pem, EVPKeyPointer pkey; unsigned char m[EVP_MAX_MD_SIZE]; unsigned int m_len; - int r = 0; *verify_result = false; EVPMDPointer mdctx = std::move(mdctx_); @@ -3776,11 +3761,11 @@ SignBase::Error Verify::VerifyFinal(const char* key_pem, ApplyRSAOptions(pkey, pkctx.get(), padding, saltlen) && EVP_PKEY_CTX_set_signature_md(pkctx.get(), EVP_MD_CTX_md(mdctx.get())) > 0) { - r = EVP_PKEY_verify(pkctx.get(), - reinterpret_cast(sig), - siglen, - m, - m_len); + const int r = EVP_PKEY_verify(pkctx.get(), + reinterpret_cast(sig), + siglen, + m, + m_len); *verify_result = r == 1; } @@ -3953,7 +3938,7 @@ void DiffieHellman::Initialize(Environment* env, Local target) { attributes); target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "DiffieHellman"), - t->GetFunction()); + t->GetFunction(env->context()).ToLocalChecked()); Local t2 = env->NewFunctionTemplate(DiffieHellmanGroup); t2->InstanceTemplate()->SetInternalFieldCount(1); @@ -3982,7 +3967,7 @@ void DiffieHellman::Initialize(Environment* env, Local target) { attributes); target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "DiffieHellmanGroup"), - t2->GetFunction()); + t2->GetFunction(env->context()).ToLocalChecked()); } @@ -4331,7 +4316,7 @@ void ECDH::Initialize(Environment* env, Local target) { env->SetProtoMethod(t, "setPrivateKey", SetPrivateKey); target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "ECDH"), - t->GetFunction()); + t->GetFunction(env->context()).ToLocalChecked()); } @@ -4835,6 +4820,462 @@ void Scrypt(const FunctionCallbackInfo& args) { #endif // OPENSSL_NO_SCRYPT +class KeyPairGenerationConfig { + public: + virtual EVPKeyCtxPointer Setup() = 0; + virtual bool Configure(const EVPKeyCtxPointer& ctx) { + return true; + } + virtual ~KeyPairGenerationConfig() {} +}; + +class RSAKeyPairGenerationConfig : public KeyPairGenerationConfig { + public: + RSAKeyPairGenerationConfig(unsigned int modulus_bits, unsigned int exponent) + : modulus_bits_(modulus_bits), exponent_(exponent) {} + + EVPKeyCtxPointer Setup() override { + return EVPKeyCtxPointer(EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, nullptr)); + } + + bool Configure(const EVPKeyCtxPointer& ctx) override { + if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx.get(), modulus_bits_) <= 0) + return false; + + // 0x10001 is the default RSA exponent. + if (exponent_ != 0x10001) { + BignumPointer bn(BN_new()); + CHECK_NOT_NULL(bn.get()); + CHECK(BN_set_word(bn.get(), exponent_)); + if (EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx.get(), bn.get()) <= 0) + return false; + } + + return true; + } + + private: + const unsigned int modulus_bits_; + const unsigned int exponent_; +}; + +class DSAKeyPairGenerationConfig : public KeyPairGenerationConfig { + public: + DSAKeyPairGenerationConfig(unsigned int modulus_bits, int divisor_bits) + : modulus_bits_(modulus_bits), divisor_bits_(divisor_bits) {} + + EVPKeyCtxPointer Setup() override { + EVPKeyCtxPointer param_ctx(EVP_PKEY_CTX_new_id(EVP_PKEY_DSA, nullptr)); + if (!param_ctx) + return nullptr; + + if (EVP_PKEY_paramgen_init(param_ctx.get()) <= 0) + return nullptr; + + if (EVP_PKEY_CTX_set_dsa_paramgen_bits(param_ctx.get(), modulus_bits_) <= 0) + return nullptr; + + if (divisor_bits_ != -1) { + if (EVP_PKEY_CTX_ctrl(param_ctx.get(), EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, + EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS, divisor_bits_, + nullptr) <= 0) { + return nullptr; + } + } + + EVP_PKEY* params = nullptr; + if (EVP_PKEY_paramgen(param_ctx.get(), ¶ms) <= 0) + return nullptr; + param_ctx.reset(); + + EVPKeyCtxPointer key_ctx(EVP_PKEY_CTX_new(params, nullptr)); + EVP_PKEY_free(params); + return key_ctx; + } + + private: + const unsigned int modulus_bits_; + const int divisor_bits_; +}; + +class ECKeyPairGenerationConfig : public KeyPairGenerationConfig { + public: + ECKeyPairGenerationConfig(int curve_nid, int param_encoding) + : curve_nid_(curve_nid), param_encoding_(param_encoding) {} + + EVPKeyCtxPointer Setup() override { + EVPKeyCtxPointer param_ctx(EVP_PKEY_CTX_new_id(EVP_PKEY_EC, nullptr)); + if (!param_ctx) + return nullptr; + + if (EVP_PKEY_paramgen_init(param_ctx.get()) <= 0) + return nullptr; + + if (EVP_PKEY_CTX_set_ec_paramgen_curve_nid(param_ctx.get(), + curve_nid_) <= 0) + return nullptr; + + if (EVP_PKEY_CTX_set_ec_param_enc(param_ctx.get(), param_encoding_) <= 0) + return nullptr; + + EVP_PKEY* params = nullptr; + if (EVP_PKEY_paramgen(param_ctx.get(), ¶ms) <= 0) + return nullptr; + param_ctx.reset(); + + EVPKeyCtxPointer key_ctx(EVP_PKEY_CTX_new(params, nullptr)); + EVP_PKEY_free(params); + return key_ctx; + } + + private: + const int curve_nid_; + const int param_encoding_; +}; + +enum PKEncodingType { + // RSAPublicKey / RSAPrivateKey according to PKCS#1. + PK_ENCODING_PKCS1, + // PrivateKeyInfo or EncryptedPrivateKeyInfo according to PKCS#8. + PK_ENCODING_PKCS8, + // SubjectPublicKeyInfo according to X.509. + PK_ENCODING_SPKI, + // ECPrivateKey according to SEC1. + PK_ENCODING_SEC1 +}; + +enum PKFormatType { + PK_FORMAT_DER, + PK_FORMAT_PEM +}; + +struct KeyPairEncodingConfig { + PKEncodingType type_; + PKFormatType format_; +}; + +typedef KeyPairEncodingConfig PublicKeyEncodingConfig; + +struct PrivateKeyEncodingConfig : public KeyPairEncodingConfig { + const EVP_CIPHER* cipher_; + // This char* will be passed to OPENSSL_clear_free. + std::shared_ptr passphrase_; + unsigned int passphrase_length_; +}; + +class GenerateKeyPairJob : public CryptoJob { + public: + GenerateKeyPairJob(Environment* env, + std::unique_ptr config, + PublicKeyEncodingConfig public_key_encoding, + PrivateKeyEncodingConfig private_key_encoding) + : CryptoJob(env), + config_(std::move(config)), + public_key_encoding_(public_key_encoding), + private_key_encoding_(private_key_encoding), + pkey_(nullptr) {} + + inline void DoThreadPoolWork() override { + if (!GenerateKey()) + errors_.Capture(); + } + + inline bool GenerateKey() { + // Make sure that the CSPRNG is properly seeded so the results are secure. + CheckEntropy(); + + // Create the key generation context. + EVPKeyCtxPointer ctx = config_->Setup(); + if (!ctx) + return false; + + // Initialize key generation. + if (EVP_PKEY_keygen_init(ctx.get()) <= 0) + return false; + + // Configure key generation. + if (!config_->Configure(ctx)) + return false; + + // Generate the key. + EVP_PKEY* pkey = nullptr; + if (EVP_PKEY_keygen(ctx.get(), &pkey) != 1) + return false; + pkey_.reset(pkey); + return true; + } + + inline void AfterThreadPoolWork() override { + Local args[3]; + ToResult(&args[0], &args[1], &args[2]); + async_wrap->MakeCallback(env->ondone_string(), 3, args); + } + + inline void ToResult(Local* err, + Local* pubkey, + Local* privkey) { + if (pkey_ && EncodeKeys(pubkey, privkey)) { + CHECK(errors_.empty()); + *err = Undefined(env->isolate()); + } else { + if (errors_.empty()) + errors_.Capture(); + CHECK(!errors_.empty()); + *err = errors_.ToException(env); + *pubkey = Undefined(env->isolate()); + *privkey = Undefined(env->isolate()); + } + } + + inline bool EncodeKeys(Local* pubkey, Local* privkey) { + EVP_PKEY* pkey = pkey_.get(); + BIOPointer bio(BIO_new(BIO_s_mem())); + CHECK(bio); + + // Encode the public key. + if (public_key_encoding_.type_ == PK_ENCODING_PKCS1) { + // PKCS#1 is only valid for RSA keys. + CHECK_EQ(EVP_PKEY_id(pkey), EVP_PKEY_RSA); + RSAPointer rsa(EVP_PKEY_get1_RSA(pkey)); + if (public_key_encoding_.format_ == PK_FORMAT_PEM) { + // Encode PKCS#1 as PEM. + if (PEM_write_bio_RSAPublicKey(bio.get(), rsa.get()) != 1) + return false; + } else { + // Encode PKCS#1 as DER. + CHECK_EQ(public_key_encoding_.format_, PK_FORMAT_DER); + if (i2d_RSAPublicKey_bio(bio.get(), rsa.get()) != 1) + return false; + } + } else { + CHECK_EQ(public_key_encoding_.type_, PK_ENCODING_SPKI); + if (public_key_encoding_.format_ == PK_FORMAT_PEM) { + // Encode SPKI as PEM. + if (PEM_write_bio_PUBKEY(bio.get(), pkey) != 1) + return false; + } else { + // Encode SPKI as DER. + CHECK_EQ(public_key_encoding_.format_, PK_FORMAT_DER); + if (i2d_PUBKEY_bio(bio.get(), pkey) != 1) + return false; + } + } + + // Convert the contents of the BIO to a JavaScript object. + BIOToStringOrBuffer(bio.get(), public_key_encoding_.format_, pubkey); + USE(BIO_reset(bio.get())); + + // Now do the same for the private key (which is a bit more difficult). + if (private_key_encoding_.type_ == PK_ENCODING_PKCS1) { + // PKCS#1 is only permitted for RSA keys. + CHECK_EQ(EVP_PKEY_id(pkey), EVP_PKEY_RSA); + + RSAPointer rsa(EVP_PKEY_get1_RSA(pkey)); + if (private_key_encoding_.format_ == PK_FORMAT_PEM) { + // Encode PKCS#1 as PEM. + char* pass = private_key_encoding_.passphrase_.get(); + if (PEM_write_bio_RSAPrivateKey( + bio.get(), rsa.get(), + private_key_encoding_.cipher_, + reinterpret_cast(pass), + private_key_encoding_.passphrase_length_, + nullptr, nullptr) != 1) + return false; + } else { + // Encode PKCS#1 as DER. This does not permit encryption. + CHECK_EQ(private_key_encoding_.format_, PK_FORMAT_DER); + CHECK_NULL(private_key_encoding_.cipher_); + if (i2d_RSAPrivateKey_bio(bio.get(), rsa.get()) != 1) + return false; + } + } else if (private_key_encoding_.type_ == PK_ENCODING_PKCS8) { + if (private_key_encoding_.format_ == PK_FORMAT_PEM) { + // Encode PKCS#8 as PEM. + if (PEM_write_bio_PKCS8PrivateKey( + bio.get(), pkey, + private_key_encoding_.cipher_, + private_key_encoding_.passphrase_.get(), + private_key_encoding_.passphrase_length_, + nullptr, nullptr) != 1) + return false; + } else { + // Encode PKCS#8 as DER. + CHECK_EQ(private_key_encoding_.format_, PK_FORMAT_DER); + if (i2d_PKCS8PrivateKey_bio( + bio.get(), pkey, + private_key_encoding_.cipher_, + private_key_encoding_.passphrase_.get(), + private_key_encoding_.passphrase_length_, + nullptr, nullptr) != 1) + return false; + } + } else { + CHECK_EQ(private_key_encoding_.type_, PK_ENCODING_SEC1); + + // SEC1 is only permitted for EC keys. + CHECK_EQ(EVP_PKEY_id(pkey), EVP_PKEY_EC); + + ECKeyPointer ec_key(EVP_PKEY_get1_EC_KEY(pkey)); + if (private_key_encoding_.format_ == PK_FORMAT_PEM) { + // Encode SEC1 as PEM. + char* pass = private_key_encoding_.passphrase_.get(); + if (PEM_write_bio_ECPrivateKey( + bio.get(), ec_key.get(), + private_key_encoding_.cipher_, + reinterpret_cast(pass), + private_key_encoding_.passphrase_length_, + nullptr, nullptr) != 1) + return false; + } else { + // Encode SEC1 as DER. This does not permit encryption. + CHECK_EQ(private_key_encoding_.format_, PK_FORMAT_DER); + CHECK_NULL(private_key_encoding_.cipher_); + if (i2d_ECPrivateKey_bio(bio.get(), ec_key.get()) != 1) + return false; + } + } + + BIOToStringOrBuffer(bio.get(), private_key_encoding_.format_, privkey); + return true; + } + + inline void BIOToStringOrBuffer(BIO* bio, PKFormatType format, + Local* out) const { + BUF_MEM* bptr; + BIO_get_mem_ptr(bio, &bptr); + if (format == PK_FORMAT_PEM) { + // PEM is an ASCII format, so we will return it as a string. + *out = String::NewFromUtf8(env->isolate(), bptr->data, + NewStringType::kNormal, + bptr->length).ToLocalChecked(); + } else { + CHECK_EQ(format, PK_FORMAT_DER); + // DER is binary, return it as a buffer. + *out = Buffer::Copy(env, bptr->data, bptr->length).ToLocalChecked(); + } + } + + private: + CryptoErrorVector errors_; + std::unique_ptr config_; + PublicKeyEncodingConfig public_key_encoding_; + PrivateKeyEncodingConfig private_key_encoding_; + EVPKeyPointer pkey_; +}; + +void GenerateKeyPair(const FunctionCallbackInfo& args, + unsigned int n_opts, + std::unique_ptr config) { + Environment* env = Environment::GetCurrent(args); + PublicKeyEncodingConfig public_key_encoding; + PrivateKeyEncodingConfig private_key_encoding; + + // Public key encoding: type (int) + pem (bool) + CHECK(args[n_opts]->IsInt32()); + public_key_encoding.type_ = static_cast( + args[n_opts].As()->Value()); + CHECK(args[n_opts + 1]->IsInt32()); + public_key_encoding.format_ = static_cast( + args[n_opts + 1].As()->Value()); + + // Private key encoding: type (int) + pem (bool) + cipher (optional, string) + + // passphrase (optional, string) + CHECK(args[n_opts + 2]->IsInt32()); + private_key_encoding.type_ = static_cast( + args[n_opts + 2].As()->Value()); + CHECK(args[n_opts + 1]->IsInt32()); + private_key_encoding.format_ = static_cast( + args[n_opts + 3].As()->Value()); + if (args[n_opts + 4]->IsString()) { + String::Utf8Value cipher_name(env->isolate(), + args[n_opts + 4].As()); + private_key_encoding.cipher_ = EVP_get_cipherbyname(*cipher_name); + if (private_key_encoding.cipher_ == nullptr) + return env->ThrowError("Unknown cipher"); + + // We need to take ownership of the string and want to avoid creating an + // unnecessary copy in memory, that's why we are not using String::Utf8Value + // here. + CHECK(args[n_opts + 5]->IsString()); + Local passphrase = args[n_opts + 5].As(); + int len = passphrase->Utf8Length(env->isolate()); + private_key_encoding.passphrase_length_ = len; + void* mem = OPENSSL_malloc(private_key_encoding.passphrase_length_ + 1); + CHECK_NOT_NULL(mem); + private_key_encoding.passphrase_.reset(static_cast(mem), + [len](char* p) { + OPENSSL_clear_free(p, len); + }); + passphrase->WriteUtf8(env->isolate(), + private_key_encoding.passphrase_.get()); + } else { + CHECK(args[n_opts + 5]->IsNullOrUndefined()); + private_key_encoding.cipher_ = nullptr; + private_key_encoding.passphrase_length_ = 0; + } + + std::unique_ptr job( + new GenerateKeyPairJob(env, std::move(config), public_key_encoding, + private_key_encoding)); + if (args[n_opts + 6]->IsObject()) + return GenerateKeyPairJob::Run(std::move(job), args[n_opts + 6]); + env->PrintSyncTrace(); + job->DoThreadPoolWork(); + Local err, pubkey, privkey; + job->ToResult(&err, &pubkey, &privkey); + + bool (*IsNotTrue)(Maybe) = [](Maybe maybe) { + return maybe.IsNothing() || !maybe.ToChecked(); + }; + Local ret = Array::New(env->isolate(), 3); + if (IsNotTrue(ret->Set(env->context(), 0, err)) || + IsNotTrue(ret->Set(env->context(), 1, pubkey)) || + IsNotTrue(ret->Set(env->context(), 2, privkey))) + return; + args.GetReturnValue().Set(ret); +} + +void GenerateKeyPairRSA(const FunctionCallbackInfo& args) { + CHECK(args[0]->IsUint32()); + const uint32_t modulus_bits = args[0].As()->Value(); + CHECK(args[1]->IsUint32()); + const uint32_t exponent = args[1].As()->Value(); + std::unique_ptr config( + new RSAKeyPairGenerationConfig(modulus_bits, exponent)); + GenerateKeyPair(args, 2, std::move(config)); +} + +void GenerateKeyPairDSA(const FunctionCallbackInfo& args) { + CHECK(args[0]->IsUint32()); + const uint32_t modulus_bits = args[0].As()->Value(); + CHECK(args[1]->IsInt32()); + const int32_t divisor_bits = args[1].As()->Value(); + std::unique_ptr config( + new DSAKeyPairGenerationConfig(modulus_bits, divisor_bits)); + GenerateKeyPair(args, 2, std::move(config)); +} + +void GenerateKeyPairEC(const FunctionCallbackInfo& args) { + CHECK(args[0]->IsString()); + String::Utf8Value curve_name(args.GetIsolate(), args[0].As()); + int curve_nid = EC_curve_nist2nid(*curve_name); + if (curve_nid == NID_undef) + curve_nid = OBJ_sn2nid(*curve_name); + // TODO(tniessen): Should we also support OBJ_ln2nid? (Other APIs don't.) + if (curve_nid == NID_undef) { + Environment* env = Environment::GetCurrent(args); + return env->ThrowTypeError("Invalid ECDH curve name"); + } + CHECK(args[1]->IsUint32()); + const uint32_t param_encoding = args[1].As()->Value(); + CHECK(param_encoding == OPENSSL_EC_NAMED_CURVE || + param_encoding == OPENSSL_EC_EXPLICIT_CURVE); + std::unique_ptr config( + new ECKeyPairGenerationConfig(curve_nid, param_encoding)); + GenerateKeyPair(args, 2, std::move(config)); +} + + void GetSSLCiphers(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); @@ -5245,6 +5686,17 @@ void Initialize(Local target, #endif env->SetMethod(target, "pbkdf2", PBKDF2); + env->SetMethod(target, "generateKeyPairRSA", GenerateKeyPairRSA); + env->SetMethod(target, "generateKeyPairDSA", GenerateKeyPairDSA); + env->SetMethod(target, "generateKeyPairEC", GenerateKeyPairEC); + NODE_DEFINE_CONSTANT(target, OPENSSL_EC_NAMED_CURVE); + NODE_DEFINE_CONSTANT(target, OPENSSL_EC_EXPLICIT_CURVE); + NODE_DEFINE_CONSTANT(target, PK_ENCODING_PKCS1); + NODE_DEFINE_CONSTANT(target, PK_ENCODING_PKCS8); + NODE_DEFINE_CONSTANT(target, PK_ENCODING_SPKI); + NODE_DEFINE_CONSTANT(target, PK_ENCODING_SEC1); + NODE_DEFINE_CONSTANT(target, PK_FORMAT_DER); + NODE_DEFINE_CONSTANT(target, PK_FORMAT_PEM); env->SetMethod(target, "randomBytes", RandomBytes); env->SetMethodNoSideEffect(target, "timingSafeEqual", TimingSafeEqual); env->SetMethodNoSideEffect(target, "getSSLCiphers", GetSSLCiphers); diff --git a/src/node_crypto.h b/src/node_crypto.h index 1a93ae7a47e2cf..63d85669fa6a92 100644 --- a/src/node_crypto.h +++ b/src/node_crypto.h @@ -88,11 +88,6 @@ using ECPointPointer = DeleteFnPtr; using ECKeyPointer = DeleteFnPtr; using DHPointer = DeleteFnPtr; -enum CheckResult { - CHECK_CERT_REVOKED = 0, - CHECK_OK = 1 -}; - extern int VerifyCallback(int preverify_ok, X509_STORE_CTX* ctx); extern void UseExtraCaCerts(const std::string& file); @@ -107,11 +102,10 @@ class SecureContext : public BaseObject { static void Initialize(Environment* env, v8::Local target); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(SecureContext) + // TODO(joyeecheung): track the memory used by OpenSSL types + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(SecureContext) + SET_SELF_SIZE(SecureContext) SSLCtxPointer ctx_; X509Pointer cert_; @@ -347,11 +341,10 @@ class CipherBase : public BaseObject { public: static void Initialize(Environment* env, v8::Local target); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(CipherBase) + // TODO(joyeecheung): track the memory used by OpenSSL types + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(CipherBase) + SET_SELF_SIZE(CipherBase) protected: enum CipherKind { @@ -370,14 +363,21 @@ class CipherBase : public BaseObject { }; static const unsigned kNoAuthTagLength = static_cast(-1); + void CommonInit(const char* cipher_type, + const EVP_CIPHER* cipher, + const unsigned char* key, + int key_len, + const unsigned char* iv, + int iv_len, + unsigned int auth_tag_len); void Init(const char* cipher_type, const char* key_buf, int key_buf_len, unsigned int auth_tag_len); void InitIv(const char* cipher_type, - const char* key, + const unsigned char* key, int key_len, - const char* iv, + const unsigned char* iv, int iv_len, unsigned int auth_tag_len); bool InitAuthenticated(const char* cipher_type, int iv_len, @@ -429,11 +429,10 @@ class Hmac : public BaseObject { public: static void Initialize(Environment* env, v8::Local target); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(Hmac) + // TODO(joyeecheung): track the memory used by OpenSSL types + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(Hmac) + SET_SELF_SIZE(Hmac) protected: void HmacInit(const char* hash_type, const char* key, int key_len); @@ -458,11 +457,10 @@ class Hash : public BaseObject { public: static void Initialize(Environment* env, v8::Local target); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(Hash) + // TODO(joyeecheung): track the memory used by OpenSSL types + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(Hash) + SET_SELF_SIZE(Hash) bool HashInit(const char* hash_type); bool HashUpdate(const char* data, int len); @@ -503,11 +501,10 @@ class SignBase : public BaseObject { Error Init(const char* sign_type); Error Update(const char* data, int len); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(SignBase) + // TODO(joyeecheung): track the memory used by OpenSSL types + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(SignBase) + SET_SELF_SIZE(SignBase) protected: void CheckThrow(Error error); @@ -621,11 +618,10 @@ class DiffieHellman : public BaseObject { MakeWeak(); } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(DiffieHellman) + // TODO(joyeecheung): track the memory used by OpenSSL types + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(DiffieHellman) + SET_SELF_SIZE(DiffieHellman) private: static void GetField(const v8::FunctionCallbackInfo& args, @@ -652,11 +648,10 @@ class ECDH : public BaseObject { char* data, size_t len); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(ECDH) + // TODO(joyeecheung): track the memory used by OpenSSL types + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(ECDH) + SET_SELF_SIZE(ECDH) protected: ECDH(Environment* env, v8::Local wrap, ECKeyPointer&& key) diff --git a/src/node_crypto_bio.h b/src/node_crypto_bio.h index 0c61f19d0189d2..1c62fbbd359405 100644 --- a/src/node_crypto_bio.h +++ b/src/node_crypto_bio.h @@ -108,11 +108,11 @@ class NodeBIO : public MemoryRetainer { static NodeBIO* FromBIO(BIO* bio); void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - tracker->TrackFieldWithSize("buffer", length_); + tracker->TrackFieldWithSize("buffer", length_, "NodeBIO::Buffer"); } - ADD_MEMORY_INFO_NAME(NodeBIO) + SET_MEMORY_INFO_NAME(NodeBIO) + SET_SELF_SIZE(NodeBIO) private: static int New(BIO* bio); diff --git a/src/node_crypto_clienthello.cc b/src/node_crypto_clienthello.cc index d4d222f838c5ac..cbe1be32737058 100644 --- a/src/node_crypto_clienthello.cc +++ b/src/node_crypto_clienthello.cc @@ -88,23 +88,23 @@ void ClientHelloParser::ParseHeader(const uint8_t* data, size_t avail) { if (data[body_offset_ + 4] != 0x03 || data[body_offset_ + 5] < 0x01 || data[body_offset_ + 5] > 0x03) { - goto fail; + return End(); } if (data[body_offset_] == kClientHello) { if (state_ == kTLSHeader) { if (!ParseTLSClientHello(data, avail)) - goto fail; + return End(); } else { // We couldn't get here, but whatever - goto fail; + return End(); } // Check if we overflowed (do not reply with any private data) if (session_id_ == nullptr || session_size_ > 32 || session_id_ + session_size_ > data + avail) { - goto fail; + return End(); } } @@ -116,10 +116,6 @@ void ClientHelloParser::ParseHeader(const uint8_t* data, size_t avail) { hello.servername_ = servername_; hello.servername_size_ = static_cast(servername_size_); onhello_cb_(cb_arg_, hello); - return; - - fail: - End(); } diff --git a/src/node_dtrace.cc b/src/node_dtrace.cc index 517d32064ea232..164a602fb62a09 100644 --- a/src/node_dtrace.cc +++ b/src/node_dtrace.cc @@ -276,7 +276,9 @@ void InitDTrace(Environment* env, Local target) { for (size_t i = 0; i < arraysize(tab); i++) { Local key = OneByteString(env->isolate(), tab[i].name); - Local val = env->NewFunctionTemplate(tab[i].func)->GetFunction(); + Local val = env->NewFunctionTemplate(tab[i].func) + ->GetFunction(env->context()) + .ToLocalChecked(); target->Set(key, val); } diff --git a/src/node_file.cc b/src/node_file.cc index 1243cfd8340b95..6a2f2107d6df27 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -76,6 +76,16 @@ using v8::Value; # define MIN(a, b) ((a) < (b) ? (a) : (b)) #endif +#ifndef S_ISDIR +# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +#endif + +#ifdef __POSIX__ +const char* kPathSeparator = "/"; +#else +const char* kPathSeparator = "\\/"; +#endif + #define GET_OFFSET(a) ((a)->IsNumber() ? (a).As()->Value() : -1) #define TRACE_NAME(name) "fs.sync." #name #define GET_TRACE_ENABLED \ @@ -153,7 +163,7 @@ inline void FileHandle::Close() { // Do not unref this env()->SetImmediate([](Environment* env, void* data) { char msg[70]; - err_detail* detail = static_cast(data); + std::unique_ptr detail(static_cast(data)); snprintf(msg, arraysize(msg), "Closing file descriptor %d on garbage collection failed", detail->fd); @@ -163,7 +173,6 @@ inline void FileHandle::Close() { // down the process is the only reasonable thing we can do here. HandleScope handle_scope(env->isolate()); env->ThrowUVException(detail->ret, "close", msg); - delete detail; }, detail); return; } @@ -172,33 +181,35 @@ inline void FileHandle::Close() { // to notify that the file descriptor was gc'd. We want to be noisy about // this because not explicitly closing the FileHandle is a bug. env()->SetUnrefImmediate([](Environment* env, void* data) { - err_detail* detail = static_cast(data); + std::unique_ptr detail(static_cast(data)); ProcessEmitWarning(env, "Closing file descriptor %d on garbage collection", detail->fd); - delete detail; }, detail); } void FileHandle::CloseReq::Resolve() { - HandleScope scope(env()->isolate()); + Isolate* isolate = env()->isolate(); + HandleScope scope(isolate); InternalCallbackScope callback_scope(this); - Local promise = promise_.Get(env()->isolate()); + Local promise = promise_.Get(isolate); Local resolver = promise.As(); - resolver->Resolve(env()->context(), Undefined(env()->isolate())).FromJust(); + resolver->Resolve(env()->context(), Undefined(isolate)).FromJust(); } void FileHandle::CloseReq::Reject(Local reason) { - HandleScope scope(env()->isolate()); + Isolate* isolate = env()->isolate(); + HandleScope scope(isolate); InternalCallbackScope callback_scope(this); - Local promise = promise_.Get(env()->isolate()); + Local promise = promise_.Get(isolate); Local resolver = promise.As(); resolver->Reject(env()->context(), reason).FromJust(); } FileHandle* FileHandle::CloseReq::file_handle() { - HandleScope scope(env()->isolate()); - Local val = ref_.Get(env()->isolate()); + Isolate* isolate = env()->isolate(); + HandleScope scope(isolate); + Local val = ref_.Get(isolate); Local obj = val.As(); return Unwrap(obj); } @@ -221,7 +232,7 @@ inline MaybeLocal FileHandle::ClosePromise() { closing_ = true; CloseReq* req = new CloseReq(env(), promise, object()); auto AfterClose = uv_fs_callback_t{[](uv_fs_t* req) { - CloseReq* close = CloseReq::from_req(req); + std::unique_ptr close(CloseReq::from_req(req)); CHECK_NOT_NULL(close); close->file_handle()->AfterClose(); Isolate* isolate = close->env()->isolate(); @@ -230,7 +241,6 @@ inline MaybeLocal FileHandle::ClosePromise() { } else { close->Resolve(); } - delete close; }}; int ret = req->Dispatch(uv_fs_close, fd_, AfterClose); if (ret < 0) { @@ -267,6 +277,10 @@ void FileHandle::AfterClose() { EmitRead(UV_EOF); } +void FileHandleReadWrap::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackField("buffer", buffer_); + tracker->TrackField("file_handle", this->file_handle_); +} FileHandleReadWrap::FileHandleReadWrap(FileHandle* handle, Local obj) : ReqWrap(handle->env(), obj, AsyncWrap::PROVIDER_FSREQWRAP), @@ -611,13 +625,14 @@ void AfterScanDirWithTypes(uv_fs_t* req) { } Environment* env = req_wrap->env(); + Isolate* isolate = env->isolate(); Local error; int r; - Local names = Array::New(env->isolate(), 0); + Local names = Array::New(isolate, 0); Local fn = env->push_values_to_array_function(); Local name_argv[NODE_PUSH_VAL_TO_ARRAY_MAX]; size_t name_idx = 0; - Local types = Array::New(env->isolate(), 0); + Local types = Array::New(isolate, 0); Local type_argv[NODE_PUSH_VAL_TO_ARRAY_MAX]; size_t type_idx = 0; @@ -634,7 +649,7 @@ void AfterScanDirWithTypes(uv_fs_t* req) { } MaybeLocal filename = - StringBytes::Encode(env->isolate(), + StringBytes::Encode(isolate, ent.name, req_wrap->encoding(), &error); @@ -652,7 +667,7 @@ void AfterScanDirWithTypes(uv_fs_t* req) { name_idx = 0; } - type_argv[type_idx++] = Integer::New(env->isolate(), ent.type); + type_argv[type_idx++] = Integer::New(isolate, ent.type); if (type_idx >= arraysize(type_argv)) { MaybeLocal ret = fn->Call(env->context(), types, type_idx, @@ -680,7 +695,7 @@ void AfterScanDirWithTypes(uv_fs_t* req) { } } - Local result = Array::New(env->isolate(), 2); + Local result = Array::New(isolate, 2); result->Set(0, names); result->Set(1, types); req_wrap->Resolve(result); @@ -773,7 +788,8 @@ inline FSReqBase* GetReqWrap(Environment* env, Local value, void Access(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); - HandleScope scope(env->isolate()); + Isolate* isolate = env->isolate(); + HandleScope scope(isolate); const int argc = args.Length(); CHECK_GE(argc, 2); @@ -781,7 +797,7 @@ void Access(const FunctionCallbackInfo& args) { CHECK(args[1]->IsInt32()); int mode = args[1].As()->Value(); - BufferValue path(env->isolate(), args[0]); + BufferValue path(isolate, args[0]); CHECK_NOT_NULL(*path); FSReqBase* req_wrap_async = GetReqWrap(env, args[2]); @@ -826,10 +842,11 @@ void Close(const FunctionCallbackInfo& args) { // in the file. static void InternalModuleReadJSON(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); uv_loop_t* loop = env->event_loop(); CHECK(args[0]->IsString()); - node::Utf8Value path(env->isolate(), args[0]); + node::Utf8Value path(isolate, args[0]); if (strlen(*path) != path.length()) return; // Contains a nul byte. @@ -880,7 +897,7 @@ static void InternalModuleReadJSON(const FunctionCallbackInfo& args) { return; } else { Local chars_string = - String::NewFromUtf8(env->isolate(), + String::NewFromUtf8(isolate, &chars[start], v8::NewStringType::kNormal, size).ToLocalChecked(); @@ -1001,13 +1018,14 @@ static void FStat(const FunctionCallbackInfo& args) { static void Symlink(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); int argc = args.Length(); CHECK_GE(argc, 4); - BufferValue target(env->isolate(), args[0]); + BufferValue target(isolate, args[0]); CHECK_NOT_NULL(*target); - BufferValue path(env->isolate(), args[1]); + BufferValue path(isolate, args[1]); CHECK_NOT_NULL(*path); CHECK(args[2]->IsInt32()); @@ -1029,14 +1047,15 @@ static void Symlink(const FunctionCallbackInfo& args) { static void Link(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); int argc = args.Length(); CHECK_GE(argc, 3); - BufferValue src(env->isolate(), args[0]); + BufferValue src(isolate, args[0]); CHECK_NOT_NULL(*src); - BufferValue dest(env->isolate(), args[1]); + BufferValue dest(isolate, args[1]); CHECK_NOT_NULL(*dest); FSReqBase* req_wrap_async = GetReqWrap(env, args[2]); @@ -1055,14 +1074,15 @@ static void Link(const FunctionCallbackInfo& args) { static void ReadLink(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); int argc = args.Length(); CHECK_GE(argc, 3); - BufferValue path(env->isolate(), args[0]); + BufferValue path(isolate, args[0]); CHECK_NOT_NULL(*path); - const enum encoding encoding = ParseEncoding(env->isolate(), args[1], UTF8); + const enum encoding encoding = ParseEncoding(isolate, args[1], UTF8); FSReqBase* req_wrap_async = GetReqWrap(env, args[2]); if (req_wrap_async != nullptr) { // readlink(path, encoding, req) @@ -1081,7 +1101,7 @@ static void ReadLink(const FunctionCallbackInfo& args) { const char* link_path = static_cast(req_wrap_sync.req.ptr); Local error; - MaybeLocal rc = StringBytes::Encode(env->isolate(), + MaybeLocal rc = StringBytes::Encode(isolate, link_path, encoding, &error); @@ -1097,13 +1117,14 @@ static void ReadLink(const FunctionCallbackInfo& args) { static void Rename(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); int argc = args.Length(); CHECK_GE(argc, 3); - BufferValue old_path(env->isolate(), args[0]); + BufferValue old_path(isolate, args[0]); CHECK_NOT_NULL(*old_path); - BufferValue new_path(env->isolate(), args[1]); + BufferValue new_path(isolate, args[1]); CHECK_NOT_NULL(*new_path); FSReqBase* req_wrap_async = GetReqWrap(env, args[2]); @@ -1236,11 +1257,137 @@ static void RMDir(const FunctionCallbackInfo& args) { } } +int MKDirpSync(uv_loop_t* loop, uv_fs_t* req, const std::string& path, int mode, + uv_fs_cb cb = nullptr) { + FSContinuationData continuation_data(req, mode, cb); + continuation_data.PushPath(std::move(path)); + + while (continuation_data.paths.size() > 0) { + std::string next_path = continuation_data.PopPath(); + int err = uv_fs_mkdir(loop, req, next_path.c_str(), mode, nullptr); + while (true) { + switch (err) { + case 0: + if (continuation_data.paths.size() == 0) { + return 0; + } + break; + case UV_ENOENT: { + std::string dirname = next_path.substr(0, + next_path.find_last_of(kPathSeparator)); + if (dirname != next_path) { + continuation_data.PushPath(std::move(next_path)); + continuation_data.PushPath(std::move(dirname)); + } else if (continuation_data.paths.size() == 0) { + err = UV_EEXIST; + continue; + } + break; + } + case UV_EPERM: { + return err; + } + default: + uv_fs_req_cleanup(req); + err = uv_fs_stat(loop, req, next_path.c_str(), nullptr); + if (err == 0 && !S_ISDIR(req->statbuf.st_mode)) return UV_EEXIST; + if (err < 0) return err; + break; + } + break; + } + uv_fs_req_cleanup(req); + } + + return 0; +} + +int MKDirpAsync(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int mode, + uv_fs_cb cb) { + FSReqBase* req_wrap = FSReqBase::from_req(req); + // on the first iteration of algorithm, stash state information. + if (req_wrap->continuation_data == nullptr) { + req_wrap->continuation_data = std::unique_ptr{ + new FSContinuationData(req, mode, cb)}; + req_wrap->continuation_data->PushPath(std::move(path)); + } + + // on each iteration of algorithm, mkdir directory on top of stack. + std::string next_path = req_wrap->continuation_data->PopPath(); + int err = uv_fs_mkdir(loop, req, next_path.c_str(), mode, + uv_fs_callback_t{[](uv_fs_t* req) { + FSReqBase* req_wrap = FSReqBase::from_req(req); + Environment* env = req_wrap->env(); + uv_loop_t* loop = env->event_loop(); + std::string path = req->path; + int err = req->result; + + while (true) { + switch (err) { + case 0: { + if (req_wrap->continuation_data->paths.size() == 0) { + req_wrap->continuation_data->Done(0); + } else { + uv_fs_req_cleanup(req); + MKDirpAsync(loop, req, path.c_str(), + req_wrap->continuation_data->mode, nullptr); + } + break; + } + case UV_ENOENT: { + std::string dirname = path.substr(0, + path.find_last_of(kPathSeparator)); + if (dirname != path) { + req_wrap->continuation_data->PushPath(std::move(path)); + req_wrap->continuation_data->PushPath(std::move(dirname)); + } else if (req_wrap->continuation_data->paths.size() == 0) { + err = UV_EEXIST; + continue; + } + uv_fs_req_cleanup(req); + MKDirpAsync(loop, req, path.c_str(), + req_wrap->continuation_data->mode, nullptr); + break; + } + case UV_EPERM: { + req_wrap->continuation_data->Done(err); + break; + } + default: + if (err == UV_EEXIST && + req_wrap->continuation_data->paths.size() > 0) { + uv_fs_req_cleanup(req); + MKDirpAsync(loop, req, path.c_str(), + req_wrap->continuation_data->mode, nullptr); + } else { + // verify that the path pointed to is actually a directory. + uv_fs_req_cleanup(req); + int err = uv_fs_stat(loop, req, path.c_str(), + uv_fs_callback_t{[](uv_fs_t* req) { + FSReqBase* req_wrap = FSReqBase::from_req(req); + int err = req->result; + if (err == 0 && !S_ISDIR(req->statbuf.st_mode)) err = UV_EEXIST; + req_wrap->continuation_data->Done(err); + }}); + if (err < 0) req_wrap->continuation_data->Done(err); + } + break; + } + break; + } + }}); + + return err; +} + static void MKDir(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); const int argc = args.Length(); - CHECK_GE(argc, 3); + CHECK_GE(argc, 4); BufferValue path(env->isolate(), args[0]); CHECK_NOT_NULL(*path); @@ -1248,30 +1395,39 @@ static void MKDir(const FunctionCallbackInfo& args) { CHECK(args[1]->IsInt32()); const int mode = args[1].As()->Value(); - FSReqBase* req_wrap_async = GetReqWrap(env, args[2]); + CHECK(args[2]->IsBoolean()); + bool mkdirp = args[2]->IsTrue(); + + FSReqBase* req_wrap_async = GetReqWrap(env, args[3]); if (req_wrap_async != nullptr) { // mkdir(path, mode, req) - AsyncCall(env, req_wrap_async, args, "mkdir", UTF8, AfterNoArgs, - uv_fs_mkdir, *path, mode); + AsyncCall(env, req_wrap_async, args, "mkdir", UTF8, + AfterNoArgs, mkdirp ? MKDirpAsync : uv_fs_mkdir, *path, mode); } else { // mkdir(path, mode, undefined, ctx) - CHECK_EQ(argc, 4); + CHECK_EQ(argc, 5); FSReqWrapSync req_wrap_sync; FS_SYNC_TRACE_BEGIN(mkdir); - SyncCall(env, args[3], &req_wrap_sync, "mkdir", - uv_fs_mkdir, *path, mode); + if (mkdirp) { + SyncCall(env, args[4], &req_wrap_sync, "mkdir", + MKDirpSync, *path, mode); + } else { + SyncCall(env, args[4], &req_wrap_sync, "mkdir", + uv_fs_mkdir, *path, mode); + } FS_SYNC_TRACE_END(mkdir); } } static void RealPath(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); const int argc = args.Length(); CHECK_GE(argc, 3); - BufferValue path(env->isolate(), args[0]); + BufferValue path(isolate, args[0]); CHECK_NOT_NULL(*path); - const enum encoding encoding = ParseEncoding(env->isolate(), args[1], UTF8); + const enum encoding encoding = ParseEncoding(isolate, args[1], UTF8); FSReqBase* req_wrap_async = GetReqWrap(env, args[2]); if (req_wrap_async != nullptr) { // realpath(path, encoding, req) @@ -1291,7 +1447,7 @@ static void RealPath(const FunctionCallbackInfo& args) { const char* link_path = static_cast(req_wrap_sync.req.ptr); Local error; - MaybeLocal rc = StringBytes::Encode(env->isolate(), + MaybeLocal rc = StringBytes::Encode(isolate, link_path, encoding, &error); @@ -1307,14 +1463,15 @@ static void RealPath(const FunctionCallbackInfo& args) { static void ReadDir(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); const int argc = args.Length(); CHECK_GE(argc, 3); - BufferValue path(env->isolate(), args[0]); + BufferValue path(isolate, args[0]); CHECK_NOT_NULL(*path); - const enum encoding encoding = ParseEncoding(env->isolate(), args[1], UTF8); + const enum encoding encoding = ParseEncoding(isolate, args[1], UTF8); bool with_types = args[2]->IsTrue(); @@ -1340,7 +1497,7 @@ static void ReadDir(const FunctionCallbackInfo& args) { CHECK_GE(req_wrap_sync.req.result, 0); int r; - Local names = Array::New(env->isolate(), 0); + Local names = Array::New(isolate, 0); Local fn = env->push_values_to_array_function(); Local name_v[NODE_PUSH_VAL_TO_ARRAY_MAX]; size_t name_idx = 0; @@ -1349,7 +1506,7 @@ static void ReadDir(const FunctionCallbackInfo& args) { Local type_v[NODE_PUSH_VAL_TO_ARRAY_MAX]; size_t type_idx; if (with_types) { - types = Array::New(env->isolate(), 0); + types = Array::New(isolate, 0); type_idx = 0; } @@ -1362,14 +1519,14 @@ static void ReadDir(const FunctionCallbackInfo& args) { if (r != 0) { Local ctx = args[4].As(); ctx->Set(env->context(), env->errno_string(), - Integer::New(env->isolate(), r)).FromJust(); + Integer::New(isolate, r)).FromJust(); ctx->Set(env->context(), env->syscall_string(), - OneByteString(env->isolate(), "readdir")).FromJust(); + OneByteString(isolate, "readdir")).FromJust(); return; } Local error; - MaybeLocal filename = StringBytes::Encode(env->isolate(), + MaybeLocal filename = StringBytes::Encode(isolate, ent.name, encoding, &error); @@ -1392,7 +1549,7 @@ static void ReadDir(const FunctionCallbackInfo& args) { } if (with_types) { - type_v[type_idx++] = Integer::New(env->isolate(), ent.type); + type_v[type_idx++] = Integer::New(isolate, ent.type); if (type_idx >= arraysize(type_v)) { MaybeLocal ret = fn->Call(env->context(), types, type_idx, @@ -1420,7 +1577,7 @@ static void ReadDir(const FunctionCallbackInfo& args) { } if (with_types) { - Local result = Array::New(env->isolate(), 2); + Local result = Array::New(isolate, 2); result->Set(0, names); result->Set(1, types); args.GetReturnValue().Set(result); @@ -1462,11 +1619,12 @@ static void Open(const FunctionCallbackInfo& args) { static void OpenFileHandle(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); const int argc = args.Length(); CHECK_GE(argc, 3); - BufferValue path(env->isolate(), args[0]); + BufferValue path(isolate, args[0]); CHECK_NOT_NULL(*path); CHECK(args[1]->IsInt32()); @@ -1489,7 +1647,7 @@ static void OpenFileHandle(const FunctionCallbackInfo& args) { if (result < 0) { return; // syscall failed, no need to continue, error info is in ctx } - HandleScope scope(env->isolate()); + HandleScope scope(isolate); FileHandle* fd = new FileHandle(env, result); args.GetReturnValue().Set(fd->object()); } @@ -1497,14 +1655,15 @@ static void OpenFileHandle(const FunctionCallbackInfo& args) { static void CopyFile(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); const int argc = args.Length(); CHECK_GE(argc, 3); - BufferValue src(env->isolate(), args[0]); + BufferValue src(isolate, args[0]); CHECK_NOT_NULL(*src); - BufferValue dest(env->isolate(), args[1]); + BufferValue dest(isolate, args[1]); CHECK_NOT_NULL(*dest); CHECK(args[2]->IsInt32()); @@ -1635,6 +1794,7 @@ static void WriteBuffers(const FunctionCallbackInfo& args) { // 3 enc encoding of string static void WriteString(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); const int argc = args.Length(); CHECK_GE(argc, 4); @@ -1644,7 +1804,7 @@ static void WriteString(const FunctionCallbackInfo& args) { const int64_t pos = GET_OFFSET(args[2]); - const auto enc = ParseEncoding(env->isolate(), args[3], UTF8); + const auto enc = ParseEncoding(isolate, args[3], UTF8); Local value = args[1]; char* buf = nullptr; @@ -1675,12 +1835,12 @@ static void WriteString(const FunctionCallbackInfo& args) { if (is_async) { // write(fd, string, pos, enc, req) CHECK_NOT_NULL(req_wrap_async); - if (!StringBytes::StorageSize(env->isolate(), value, enc).To(&len)) return; + if (!StringBytes::StorageSize(isolate, value, enc).To(&len)) return; FSReqBase::FSReqBuffer& stack_buffer = req_wrap_async->Init("write", len, enc); // StorageSize may return too large a char, so correct the actual length // by the write size - len = StringBytes::Write(env->isolate(), *stack_buffer, len, args[1], enc); + len = StringBytes::Write(isolate, *stack_buffer, len, args[1], enc); stack_buffer.SetLengthAndZeroTerminate(len); uv_buf_t uvbuf = uv_buf_init(*stack_buffer, len); int err = req_wrap_async->Dispatch(uv_fs_write, @@ -1703,12 +1863,12 @@ static void WriteString(const FunctionCallbackInfo& args) { FSReqWrapSync req_wrap_sync; FSReqBase::FSReqBuffer stack_buffer; if (buf == nullptr) { - if (!StringBytes::StorageSize(env->isolate(), value, enc).To(&len)) + if (!StringBytes::StorageSize(isolate, value, enc).To(&len)) return; stack_buffer.AllocateSufficientStorage(len + 1); // StorageSize may return too large a char, so correct the actual length // by the write size - len = StringBytes::Write(env->isolate(), *stack_buffer, + len = StringBytes::Write(isolate, *stack_buffer, len, args[1], enc); stack_buffer.SetLengthAndZeroTerminate(len); buf = *stack_buffer; @@ -1994,14 +2154,15 @@ static void FUTimes(const FunctionCallbackInfo& args) { static void Mkdtemp(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); const int argc = args.Length(); CHECK_GE(argc, 2); - BufferValue tmpl(env->isolate(), args[0]); + BufferValue tmpl(isolate, args[0]); CHECK_NOT_NULL(*tmpl); - const enum encoding encoding = ParseEncoding(env->isolate(), args[1], UTF8); + const enum encoding encoding = ParseEncoding(isolate, args[1], UTF8); FSReqBase* req_wrap_async = GetReqWrap(env, args[2]); if (req_wrap_async != nullptr) { // mkdtemp(tmpl, encoding, req) @@ -2018,7 +2179,7 @@ static void Mkdtemp(const FunctionCallbackInfo& args) { Local error; MaybeLocal rc = - StringBytes::Encode(env->isolate(), path, encoding, &error); + StringBytes::Encode(isolate, path, encoding, &error); if (rc.IsEmpty()) { Local ctx = args[3].As(); ctx->Set(env->context(), env->error_string(), error).FromJust(); @@ -2033,6 +2194,7 @@ void Initialize(Local target, Local context, void* priv) { Environment* env = Environment::GetCurrent(context); + Isolate* isolate = env->isolate(); env->SetMethod(target, "access", Access); env->SetMethod(target, "close", Close); @@ -2074,17 +2236,17 @@ void Initialize(Local target, env->SetMethod(target, "mkdtemp", Mkdtemp); - target->Set(env->context(), - FIXED_ONE_BYTE_STRING(env->isolate(), "kFsStatsFieldsLength"), - Integer::New(env->isolate(), env->kFsStatsFieldsLength)) + target->Set(context, + FIXED_ONE_BYTE_STRING(isolate, "kFsStatsFieldsLength"), + Integer::New(isolate, env->kFsStatsFieldsLength)) .FromJust(); target->Set(context, - FIXED_ONE_BYTE_STRING(env->isolate(), "statValues"), + FIXED_ONE_BYTE_STRING(isolate, "statValues"), env->fs_stats_field_array()->GetJSArray()).FromJust(); target->Set(context, - FIXED_ONE_BYTE_STRING(env->isolate(), "bigintStatValues"), + FIXED_ONE_BYTE_STRING(isolate, "bigintStatValues"), env->fs_stats_field_bigint_array()->GetJSArray()).FromJust(); StatWatcher::Initialize(env, target); @@ -2092,28 +2254,30 @@ void Initialize(Local target, // Create FunctionTemplate for FSReqCallback Local fst = env->NewFunctionTemplate(NewFSReqWrap); fst->InstanceTemplate()->SetInternalFieldCount(1); - AsyncWrap::AddWrapMethods(env, fst); - Local wrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "FSReqWrap"); + fst->Inherit(AsyncWrap::GetConstructorTemplate(env)); + Local wrapString = FIXED_ONE_BYTE_STRING(isolate, "FSReqWrap"); fst->SetClassName(wrapString); - target->Set(context, wrapString, fst->GetFunction()).FromJust(); + target + ->Set(context, wrapString, + fst->GetFunction(env->context()).ToLocalChecked()) + .FromJust(); // Create FunctionTemplate for FileHandleReadWrap. There’s no need // to do anything in the constructor, so we only store the instance template. - Local fh_rw = FunctionTemplate::New(env->isolate()); + Local fh_rw = FunctionTemplate::New(isolate); fh_rw->InstanceTemplate()->SetInternalFieldCount(1); - AsyncWrap::AddWrapMethods(env, fh_rw); + fh_rw->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local fhWrapString = - FIXED_ONE_BYTE_STRING(env->isolate(), "FileHandleReqWrap"); + FIXED_ONE_BYTE_STRING(isolate, "FileHandleReqWrap"); fh_rw->SetClassName(fhWrapString); env->set_filehandlereadwrap_template( fst->InstanceTemplate()); // Create Function Template for FSReqPromise - Local fpt = FunctionTemplate::New(env->isolate()); - AsyncWrap::AddWrapMethods(env, fpt); + Local fpt = FunctionTemplate::New(isolate); + fpt->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local promiseString = - FIXED_ONE_BYTE_STRING(env->isolate(), "FSReqPromise"); + FIXED_ONE_BYTE_STRING(isolate, "FSReqPromise"); fpt->SetClassName(promiseString); Local fpo = fpt->InstanceTemplate(); fpo->SetInternalFieldCount(1); @@ -2121,33 +2285,36 @@ void Initialize(Local target, // Create FunctionTemplate for FileHandle Local fd = env->NewFunctionTemplate(FileHandle::New); - AsyncWrap::AddWrapMethods(env, fd); + fd->Inherit(AsyncWrap::GetConstructorTemplate(env)); env->SetProtoMethod(fd, "close", FileHandle::Close); env->SetProtoMethod(fd, "releaseFD", FileHandle::ReleaseFD); Local fdt = fd->InstanceTemplate(); fdt->SetInternalFieldCount(1); Local handleString = - FIXED_ONE_BYTE_STRING(env->isolate(), "FileHandle"); + FIXED_ONE_BYTE_STRING(isolate, "FileHandle"); fd->SetClassName(handleString); StreamBase::AddMethods(env, fd); - target->Set(context, handleString, fd->GetFunction()).FromJust(); + target + ->Set(context, handleString, + fd->GetFunction(env->context()).ToLocalChecked()) + .FromJust(); env->set_fd_constructor_template(fdt); // Create FunctionTemplate for FileHandle::CloseReq - Local fdclose = FunctionTemplate::New(env->isolate()); - fdclose->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), + Local fdclose = FunctionTemplate::New(isolate); + fdclose->SetClassName(FIXED_ONE_BYTE_STRING(isolate, "FileHandleCloseReq")); - AsyncWrap::AddWrapMethods(env, fdclose); + fdclose->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local fdcloset = fdclose->InstanceTemplate(); fdcloset->SetInternalFieldCount(1); env->set_fdclose_constructor_template(fdcloset); Local use_promises_symbol = - Symbol::New(env->isolate(), - FIXED_ONE_BYTE_STRING(env->isolate(), "use promises")); + Symbol::New(isolate, + FIXED_ONE_BYTE_STRING(isolate, "use promises")); env->set_fs_use_promises_symbol(use_promises_symbol); - target->Set(env->context(), - FIXED_ONE_BYTE_STRING(env->isolate(), "kUsePromises"), + target->Set(context, + FIXED_ONE_BYTE_STRING(isolate, "kUsePromises"), use_promises_symbol).FromJust(); } diff --git a/src/node_file.h b/src/node_file.h index 73202d9c4464b9..cbbb8b037d8e0a 100644 --- a/src/node_file.h +++ b/src/node_file.h @@ -21,10 +21,52 @@ using v8::Value; namespace fs { +// structure used to store state during a complex operation, e.g., mkdirp. +class FSContinuationData : public MemoryRetainer { + public: + FSContinuationData(uv_fs_t* req, int mode, uv_fs_cb done_cb) + : req(req), mode(mode), done_cb(done_cb) { + } + + uv_fs_t* req; + int mode; + std::vector paths; + + void PushPath(std::string&& path) { + paths.emplace_back(std::move(path)); + } + + void PushPath(const std::string& path) { + paths.push_back(path); + } + + std::string PopPath() { + CHECK_GT(paths.size(), 0); + std::string path = std::move(paths.back()); + paths.pop_back(); + return path; + } + + void Done(int result) { + req->result = result; + done_cb(req); + } + + void MemoryInfo(MemoryTracker* tracker) const override { + tracker->TrackField("paths", paths); + } + + SET_MEMORY_INFO_NAME(FSContinuationData) + SET_SELF_SIZE(FSContinuationData) + + private: + uv_fs_cb done_cb; +}; class FSReqBase : public ReqWrap { public: typedef MaybeStackBuffer FSReqBuffer; + std::unique_ptr continuation_data = nullptr; FSReqBase(Environment* env, Local req, AsyncWrap::ProviderType type, bool use_bigint) @@ -96,10 +138,11 @@ class FSReqWrap : public FSReqBase { void SetReturnValue(const FunctionCallbackInfo& args) override; void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); + tracker->TrackField("continuation_data", continuation_data); } - ADD_MEMORY_INFO_NAME(FSReqWrap) + SET_MEMORY_INFO_NAME(FSReqWrap) + SET_SELF_SIZE(FSReqWrap) private: DISALLOW_COPY_AND_ASSIGN(FSReqWrap); @@ -160,11 +203,12 @@ class FSReqPromise : public FSReqBase { } void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("stats_field_array", stats_field_array_); + tracker->TrackField("continuation_data", continuation_data); } - ADD_MEMORY_INFO_NAME(FSReqPromise) + SET_MEMORY_INFO_NAME(FSReqPromise) + SET_SELF_SIZE(FSReqPromise) private: bool finished_ = false; @@ -200,12 +244,9 @@ class FileHandleReadWrap : public ReqWrap { return static_cast(ReqWrap::from_req(req)); } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - tracker->TrackField("buffer", buffer_); - } - - ADD_MEMORY_INFO_NAME(FileHandleReadWrap) + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(FileHandleReadWrap) + SET_SELF_SIZE(FileHandleReadWrap) private: FileHandle* file_handle_; @@ -254,11 +295,11 @@ class FileHandle : public AsyncWrap, public StreamBase { } void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("current_read", current_read_); } - ADD_MEMORY_INFO_NAME(FileHandle) + SET_MEMORY_INFO_NAME(FileHandle) + SET_SELF_SIZE(FileHandle) private: // Synchronous close that emits a warning @@ -287,12 +328,12 @@ class FileHandle : public AsyncWrap, public StreamBase { FileHandle* file_handle(); void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("promise", promise_); tracker->TrackField("ref", ref_); } - ADD_MEMORY_INFO_NAME(CloseReq) + SET_MEMORY_INFO_NAME(CloseReq) + SET_SELF_SIZE(CloseReq) void Resolve(); diff --git a/src/node_http2.cc b/src/node_http2.cc index 8841601040cad8..36b7fc9e85643c 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -95,9 +95,13 @@ Http2Scope::~Http2Scope() { // instances to configure an appropriate nghttp2_options struct. The class // uses a single TypedArray instance that is shared with the JavaScript side // to more efficiently pass values back and forth. -Http2Options::Http2Options(Environment* env) { +Http2Options::Http2Options(Environment* env, nghttp2_session_type type) { nghttp2_option_new(&options_); + // Make sure closed connections aren't kept around, taking up memory. + // Note that this breaks the priority tree, which we don't use. + nghttp2_option_set_no_closed_streams(options_, 1); + // We manually handle flow control within a session in order to // implement backpressure -- that is, we only send WINDOW_UPDATE // frames to the remote peer as data is actually consumed by user @@ -106,10 +110,12 @@ Http2Options::Http2Options(Environment* env) { // are required to buffer. nghttp2_option_set_no_auto_window_update(options_, 1); - // Enable built in support for ALTSVC frames. Once we add support for - // other non-built in extension frames, this will need to be handled - // a bit differently. For now, let's let nghttp2 take care of it. - nghttp2_option_set_builtin_recv_extension_type(options_, NGHTTP2_ALTSVC); + // Enable built in support for receiving ALTSVC and ORIGIN frames (but + // only on client side sessions + if (type == NGHTTP2_SESSION_CLIENT) { + nghttp2_option_set_builtin_recv_extension_type(options_, NGHTTP2_ALTSVC); + nghttp2_option_set_builtin_recv_extension_type(options_, NGHTTP2_ORIGIN); + } AliasedBuffer& buffer = env->http2_state()->options_buffer; @@ -213,6 +219,7 @@ void Http2Session::Http2Settings::Init() { GRABSETTING(INITIAL_WINDOW_SIZE, "initial window size"); GRABSETTING(MAX_HEADER_LIST_SIZE, "max header list size"); GRABSETTING(ENABLE_PUSH, "enable push"); + GRABSETTING(ENABLE_CONNECT_PROTOCOL, "enable connect protocol"); #undef GRABSETTING @@ -281,6 +288,8 @@ void Http2Session::Http2Settings::Update(Environment* env, fn(**session, NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE); buffer[IDX_SETTINGS_ENABLE_PUSH] = fn(**session, NGHTTP2_SETTINGS_ENABLE_PUSH); + buffer[IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL] = + fn(**session, NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL); } // Initializes the shared TypedArray with the default settings values. @@ -413,6 +422,56 @@ Headers::Headers(Isolate* isolate, } } +Origins::Origins(Isolate* isolate, + Local context, + Local origin_string, + size_t origin_count) : count_(origin_count) { + int origin_string_len = origin_string->Length(); + if (count_ == 0) { + CHECK_EQ(origin_string_len, 0); + return; + } + + // Allocate a single buffer with count_ nghttp2_nv structs, followed + // by the raw header data as passed from JS. This looks like: + // | possible padding | nghttp2_nv | nghttp2_nv | ... | header contents | + buf_.AllocateSufficientStorage((alignof(nghttp2_origin_entry) - 1) + + count_ * sizeof(nghttp2_origin_entry) + + origin_string_len); + + // Make sure the start address is aligned appropriately for an nghttp2_nv*. + char* start = reinterpret_cast( + ROUND_UP(reinterpret_cast(*buf_), + alignof(nghttp2_origin_entry))); + char* origin_contents = start + (count_ * sizeof(nghttp2_origin_entry)); + nghttp2_origin_entry* const nva = + reinterpret_cast(start); + + CHECK_LE(origin_contents + origin_string_len, *buf_ + buf_.length()); + CHECK_EQ(origin_string->WriteOneByte( + isolate, + reinterpret_cast(origin_contents), + 0, + origin_string_len, + String::NO_NULL_TERMINATION), + origin_string_len); + + size_t n = 0; + char* p; + for (p = origin_contents; p < origin_contents + origin_string_len; n++) { + if (n >= count_) { + static uint8_t zero = '\0'; + nva[0].origin = &zero; + nva[0].origin_len = 1; + count_ = 1; + return; + } + + nva[n].origin = reinterpret_cast(p); + nva[n].origin_len = strlen(p); + p += nva[n].origin_len + 1; + } +} // Sets the various callback functions that nghttp2 will use to notify us // about significant events while processing http2 stuff. @@ -548,7 +607,7 @@ Http2Session::Http2Session(Environment* env, statistics_.start_time = uv_hrtime(); // Capture the configuration options for this session - Http2Options opts(env); + Http2Options opts(env, type); max_session_memory_ = opts.GetMaxSessionMemory(); @@ -933,6 +992,9 @@ int Http2Session::OnFrameReceive(nghttp2_session* handle, case NGHTTP2_ALTSVC: session->HandleAltSvcFrame(frame); break; + case NGHTTP2_ORIGIN: + session->HandleOriginFrame(frame); + break; default: break; } @@ -1365,8 +1427,48 @@ void Http2Session::HandleAltSvcFrame(const nghttp2_frame* frame) { MakeCallback(env()->onaltsvc_string(), arraysize(argv), argv); } +void Http2Session::HandleOriginFrame(const nghttp2_frame* frame) { + Isolate* isolate = env()->isolate(); + HandleScope scope(isolate); + Local context = env()->context(); + Context::Scope context_scope(context); + + Debug(this, "handling origin frame"); + + nghttp2_extension ext = frame->ext; + nghttp2_ext_origin* origin = static_cast(ext.payload); + + Local holder = Array::New(isolate); + Local fn = env()->push_values_to_array_function(); + Local argv[NODE_PUSH_VAL_TO_ARRAY_MAX]; + + size_t n = 0; + while (n < origin->nov) { + size_t j = 0; + while (n < origin->nov && j < arraysize(argv)) { + auto entry = origin->ov[n++]; + argv[j++] = + String::NewFromOneByte(isolate, + entry.origin, + v8::NewStringType::kNormal, + entry.origin_len).ToLocalChecked(); + } + if (j > 0) + fn->Call(context, holder, j, argv).ToLocalChecked(); + } + + Local args[1] = { holder }; + + MakeCallback(env()->onorigin_string(), arraysize(args), args); +} + // Called by OnFrameReceived when a complete PING frame has been received. void Http2Session::HandlePingFrame(const nghttp2_frame* frame) { + Isolate* isolate = env()->isolate(); + HandleScope scope(isolate); + Local context = env()->context(); + Context::Scope context_scope(context); + Local arg; bool ack = frame->hd.flags & NGHTTP2_FLAG_ACK; if (ack) { Http2Ping* ping = PopPing(); @@ -1378,13 +1480,15 @@ void Http2Session::HandlePingFrame(const nghttp2_frame* frame) { // receive an unsolicited PING ack on a connection. Either the peer // is buggy or malicious, and we're not going to tolerate such // nonsense. - Isolate* isolate = env()->isolate(); - HandleScope scope(isolate); - Local context = env()->context(); - Context::Scope context_scope(context); - Local arg = Integer::New(isolate, NGHTTP2_ERR_PROTO); + arg = Integer::New(isolate, NGHTTP2_ERR_PROTO); MakeCallback(env()->error_string(), 1, &arg); } + } else { + // Notify the session that a ping occurred + arg = Buffer::Copy(env(), + reinterpret_cast(frame->ping.opaque_data), + 8).ToLocalChecked(); + MakeCallback(env()->onping_string(), 1, &arg); } } @@ -2613,6 +2717,11 @@ void Http2Session::AltSvc(int32_t id, origin, origin_len, value, value_len), 0); } +void Http2Session::Origin(nghttp2_origin_entry* ov, size_t count) { + Http2Scope h2scope(this); + CHECK_EQ(nghttp2_submit_origin(session_, NGHTTP2_FLAG_NONE, ov, count), 0); +} + // Submits an AltSvc frame to be sent to the connected peer. void Http2Session::AltSvc(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); @@ -2641,6 +2750,24 @@ void Http2Session::AltSvc(const FunctionCallbackInfo& args) { session->AltSvc(id, *origin, origin_len, *value, value_len); } +void Http2Session::Origin(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + Local context = env->context(); + Http2Session* session; + ASSIGN_OR_RETURN_UNWRAP(&session, args.Holder()); + + Local origin_string = args[0].As(); + int count = args[1]->IntegerValue(context).ToChecked(); + + + Origins origins(env->isolate(), + env->context(), + origin_string, + count); + + session->Origin(*origins, origins.length()); +} + // Submits a PING frame to be sent to the connected peer. void Http2Session::Ping(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); @@ -2773,7 +2900,6 @@ void Http2Session::Http2Ping::Done(bool ack, const uint8_t* payload) { void nghttp2_stream_write::MemoryInfo(MemoryTracker* tracker) const { - tracker->TrackThis(this); if (req_wrap != nullptr) tracker->TrackField("req_wrap", req_wrap->GetAsyncWrap()); tracker->TrackField("buf", buf); @@ -2781,7 +2907,6 @@ void nghttp2_stream_write::MemoryInfo(MemoryTracker* tracker) const { void nghttp2_header::MemoryInfo(MemoryTracker* tracker) const { - tracker->TrackThis(this); tracker->TrackFieldWithSize("name", nghttp2_rcbuf_get_buf(name).len); tracker->TrackFieldWithSize("value", nghttp2_rcbuf_get_buf(value).len); } @@ -2836,14 +2961,14 @@ void Initialize(Local target, Local ping = FunctionTemplate::New(env->isolate()); ping->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "Http2Ping")); - AsyncWrap::AddWrapMethods(env, ping); + ping->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local pingt = ping->InstanceTemplate(); pingt->SetInternalFieldCount(1); env->set_http2ping_constructor_template(pingt); Local setting = FunctionTemplate::New(env->isolate()); setting->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "Http2Setting")); - AsyncWrap::AddWrapMethods(env, setting); + setting->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local settingt = setting->InstanceTemplate(); settingt->SetInternalFieldCount(1); env->set_http2settings_constructor_template(settingt); @@ -2860,20 +2985,21 @@ void Initialize(Local target, env->SetProtoMethod(stream, "respond", Http2Stream::Respond); env->SetProtoMethod(stream, "rstStream", Http2Stream::RstStream); env->SetProtoMethod(stream, "refreshState", Http2Stream::RefreshState); - AsyncWrap::AddWrapMethods(env, stream); + stream->Inherit(AsyncWrap::GetConstructorTemplate(env)); StreamBase::AddMethods(env, stream); Local streamt = stream->InstanceTemplate(); streamt->SetInternalFieldCount(1); env->set_http2stream_constructor_template(streamt); target->Set(context, FIXED_ONE_BYTE_STRING(env->isolate(), "Http2Stream"), - stream->GetFunction()).FromJust(); + stream->GetFunction(env->context()).ToLocalChecked()).FromJust(); Local session = env->NewFunctionTemplate(Http2Session::New); session->SetClassName(http2SessionClassName); session->InstanceTemplate()->SetInternalFieldCount(1); - AsyncWrap::AddWrapMethods(env, session); + session->Inherit(AsyncWrap::GetConstructorTemplate(env)); + env->SetProtoMethod(session, "origin", Http2Session::Origin); env->SetProtoMethod(session, "altsvc", Http2Session::AltSvc); env->SetProtoMethod(session, "ping", Http2Session::Ping); env->SetProtoMethod(session, "consume", Http2Session::Consume); @@ -2894,7 +3020,7 @@ void Initialize(Local target, Http2Session::RefreshSettings); target->Set(context, http2SessionClassName, - session->GetFunction()).FromJust(); + session->GetFunction(env->context()).ToLocalChecked()).FromJust(); Local constants = Object::New(isolate); Local name_for_error_code = Array::New(isolate); @@ -2968,6 +3094,7 @@ void Initialize(Local target, NODE_DEFINE_CONSTANT(constants, NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE); NODE_DEFINE_CONSTANT(constants, NGHTTP2_SETTINGS_MAX_FRAME_SIZE); NODE_DEFINE_CONSTANT(constants, NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE); + NODE_DEFINE_CONSTANT(constants, NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL); NODE_DEFINE_CONSTANT(constants, PADDING_STRATEGY_NONE); NODE_DEFINE_CONSTANT(constants, PADDING_STRATEGY_ALIGNED); diff --git a/src/node_http2.h b/src/node_http2.h index d7f8d9acae91cb..8ecca63aeb0c0e 100644 --- a/src/node_http2.h +++ b/src/node_http2.h @@ -92,6 +92,8 @@ struct nghttp2_stream_write : public MemoryRetainer { req_wrap(req), buf(buf_) {} void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(nghttp2_stream_write) + SET_SELF_SIZE(nghttp2_stream_write) }; struct nghttp2_header : public MemoryRetainer { @@ -100,6 +102,8 @@ struct nghttp2_header : public MemoryRetainer { uint8_t flags = 0; void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(nghttp2_header) + SET_SELF_SIZE(nghttp2_header) }; @@ -156,6 +160,7 @@ struct nghttp2_header : public MemoryRetainer { V(AUTHORITY, ":authority") \ V(SCHEME, ":scheme") \ V(PATH, ":path") \ + V(PROTOCOL, ":protocol") \ V(ACCEPT_CHARSET, "accept-charset") \ V(ACCEPT_ENCODING, "accept-encoding") \ V(ACCEPT_LANGUAGE, "accept-language") \ @@ -364,7 +369,7 @@ class Http2Scope { // configured. class Http2Options { public: - explicit Http2Options(Environment* env); + Http2Options(Environment* env, nghttp2_session_type type); ~Http2Options() { nghttp2_option_del(options_); @@ -570,12 +575,12 @@ class Http2Stream : public AsyncWrap, uv_stream_t* send_handle) override; void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("current_headers", current_headers_); tracker->TrackField("queue", queue_); } - ADD_MEMORY_INFO_NAME(Http2Stream) + SET_MEMORY_INFO_NAME(Http2Stream) + SET_SELF_SIZE(Http2Stream) std::string diagnostic_name() const override; @@ -700,6 +705,8 @@ class Http2Session : public AsyncWrap, public StreamListener { size_t origin_len, uint8_t* value, size_t value_len); + void Origin(nghttp2_origin_entry* ov, size_t count); + bool Ping(v8::Local function); @@ -753,7 +760,6 @@ class Http2Session : public AsyncWrap, public StreamListener { ssize_t Write(const uv_buf_t* bufs, size_t nbufs); void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("streams", streams_); tracker->TrackField("outstanding_pings", outstanding_pings_); tracker->TrackField("outstanding_settings", outstanding_settings_); @@ -763,7 +769,8 @@ class Http2Session : public AsyncWrap, public StreamListener { pending_rst_streams_.size() * sizeof(int32_t)); } - ADD_MEMORY_INFO_NAME(Http2Session) + SET_MEMORY_INFO_NAME(Http2Session) + SET_SELF_SIZE(Http2Session) std::string diagnostic_name() const override; @@ -796,6 +803,7 @@ class Http2Session : public AsyncWrap, public StreamListener { static void RefreshState(const FunctionCallbackInfo& args); static void Ping(const FunctionCallbackInfo& args); static void AltSvc(const FunctionCallbackInfo& args); + static void Origin(const FunctionCallbackInfo& args); template static void RefreshSettings(const FunctionCallbackInfo& args); @@ -871,6 +879,7 @@ class Http2Session : public AsyncWrap, public StreamListener { void HandleSettingsFrame(const nghttp2_frame* frame); void HandlePingFrame(const nghttp2_frame* frame); void HandleAltSvcFrame(const nghttp2_frame* frame); + void HandleOriginFrame(const nghttp2_frame* frame); // nghttp2 callbacks static int OnBeginHeadersCallback( @@ -1081,11 +1090,11 @@ class Http2Session::Http2Ping : public AsyncWrap { explicit Http2Ping(Http2Session* session); void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("session", session_); } - ADD_MEMORY_INFO_NAME(Http2Ping) + SET_MEMORY_INFO_NAME(Http2Ping) + SET_SELF_SIZE(Http2Ping) void Send(uint8_t* payload); void Done(bool ack, const uint8_t* payload = nullptr); @@ -1106,11 +1115,11 @@ class Http2Session::Http2Settings : public AsyncWrap { explicit Http2Settings(Http2Session* session); void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("session", session_); } - ADD_MEMORY_INFO_NAME(Http2Settings) + SET_MEMORY_INFO_NAME(Http2Settings) + SET_SELF_SIZE(Http2Settings) void Send(); void Done(bool ack); @@ -1224,6 +1233,27 @@ class Headers { MaybeStackBuffer buf_; }; +class Origins { + public: + Origins(Isolate* isolate, + Local context, + Local origin_string, + size_t origin_count); + ~Origins() {} + + nghttp2_origin_entry* operator*() { + return reinterpret_cast(*buf_); + } + + size_t length() const { + return count_; + } + + private: + size_t count_; + MaybeStackBuffer buf_; +}; + } // namespace http2 } // namespace node diff --git a/src/node_http2_state.h b/src/node_http2_state.h index 64a0942f7ffa67..d21d0f90096074 100644 --- a/src/node_http2_state.h +++ b/src/node_http2_state.h @@ -15,6 +15,7 @@ namespace http2 { IDX_SETTINGS_MAX_FRAME_SIZE, IDX_SETTINGS_MAX_CONCURRENT_STREAMS, IDX_SETTINGS_MAX_HEADER_LIST_SIZE, + IDX_SETTINGS_ENABLE_CONNECT_PROTOCOL, IDX_SETTINGS_COUNT }; diff --git a/src/node_http_parser.cc b/src/node_http_parser.cc index a4b92cbb20bfd1..771189d0904359 100644 --- a/src/node_http_parser.cc +++ b/src/node_http_parser.cc @@ -157,11 +157,11 @@ class Parser : public AsyncWrap, public StreamListener { void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("current_buffer", current_buffer_); } - ADD_MEMORY_INFO_NAME(Parser) + SET_MEMORY_INFO_NAME(Parser) + SET_SELF_SIZE(Parser) int on_message_begin() { num_fields_ = num_values_ = 0; @@ -617,7 +617,8 @@ class Parser : public AsyncWrap, public StreamListener { enum http_errno err = HTTP_PARSER_ERRNO(&parser_); Local e = Exception::Error(env()->parse_error_string()); - Local obj = e->ToObject(env()->isolate()); + Local obj = e->ToObject(env()->isolate()->GetCurrentContext()) + .ToLocalChecked(); obj->Set(env()->bytes_parsed_string(), nparsed_obj); obj->Set(env()->code_string(), OneByteString(env()->isolate(), http_errno_name(err))); @@ -763,7 +764,7 @@ void Initialize(Local target, #undef V target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "methods"), methods); - AsyncWrap::AddWrapMethods(env, t); + t->Inherit(AsyncWrap::GetConstructorTemplate(env)); env->SetProtoMethod(t, "close", Parser::Close); env->SetProtoMethod(t, "free", Parser::Free); env->SetProtoMethod(t, "execute", Parser::Execute); @@ -776,7 +777,7 @@ void Initialize(Local target, env->SetProtoMethod(t, "getCurrentBuffer", Parser::GetCurrentBuffer); target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "HTTPParser"), - t->GetFunction()); + t->GetFunction(env->context()).ToLocalChecked()); } } // anonymous namespace diff --git a/src/node_i18n.cc b/src/node_i18n.cc index abe8addfadccde..5966e3ff678e34 100644 --- a/src/node_i18n.cc +++ b/src/node_i18n.cc @@ -215,6 +215,13 @@ class ConverterObject : public BaseObject, Converter { result.AllocateSufficientStorage(limit); UBool flush = (flags & CONVERTER_FLAGS_FLUSH) == CONVERTER_FLAGS_FLUSH; + OnScopeLeave cleanup([&]() { + if (flush) { + // Reset the converter state. + converter->bomSeen_ = false; + ucnv_reset(converter->conv); + } + }); const char* source = input_obj_data; size_t source_length = input_obj_length; @@ -238,24 +245,15 @@ class ConverterObject : public BaseObject, Converter { result.SetLength(target - &result[0]); ret = ToBufferEndian(env, &result); args.GetReturnValue().Set(ret.ToLocalChecked()); - goto reset; + return; } args.GetReturnValue().Set(status); - - reset: - if (flush) { - // Reset the converter state - converter->bomSeen_ = false; - ucnv_reset(converter->conv); - } - } - - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); } - ADD_MEMORY_INFO_NAME(ConverterObject) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(ConverterObject) + SET_SELF_SIZE(ConverterObject) protected: ConverterObject(Environment* env, diff --git a/src/node_internals.h b/src/node_internals.h index 129cfddb46853f..cbc8fe20295927 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -936,6 +936,8 @@ void GetEGid(const v8::FunctionCallbackInfo& args); void GetGroups(const v8::FunctionCallbackInfo& args); #endif // __POSIX__ && !defined(__ANDROID__) && !defined(__CloudABI__) +void DefineZlibConstants(v8::Local target); + } // namespace node void napi_module_register_by_symbol(v8::Local exports, diff --git a/src/node_messaging.cc b/src/node_messaging.cc index 20e0c7673b8fa9..c9b5e324479975 100644 --- a/src/node_messaging.cc +++ b/src/node_messaging.cc @@ -98,7 +98,7 @@ MaybeLocal Message::Deserialize(Environment* env, message_ports_.clear(); std::vector> shared_array_buffers; - // Attach all transfered SharedArrayBuffers to their new Isolate. + // Attach all transferred SharedArrayBuffers to their new Isolate. for (uint32_t i = 0; i < shared_array_buffers_.size(); ++i) { Local sab; if (!shared_array_buffers_[i]->GetSharedArrayBuffer(env, context) @@ -116,7 +116,7 @@ MaybeLocal Message::Deserialize(Environment* env, &delegate); delegate.deserializer = &deserializer; - // Attach all transfered ArrayBuffers to their new Isolate. + // Attach all transferred ArrayBuffers to their new Isolate. for (uint32_t i = 0; i < array_buffer_contents_.size(); ++i) { Local ab = ArrayBuffer::New(env->isolate(), @@ -234,7 +234,7 @@ class SerializerDelegate : public ValueSerializer::Delegate { friend class worker::Message; }; -} // anynomous namespace +} // anonymous namespace Maybe Message::Serialize(Environment* env, Local context, @@ -326,7 +326,6 @@ Maybe Message::Serialize(Environment* env, } void Message::MemoryInfo(MemoryTracker* tracker) const { - tracker->TrackThis(this); tracker->TrackField("array_buffer_contents", array_buffer_contents_); tracker->TrackFieldWithSize("shared_array_buffers", shared_array_buffers_.size() * sizeof(shared_array_buffers_[0])); @@ -342,7 +341,6 @@ MessagePortData::~MessagePortData() { void MessagePortData::MemoryInfo(MemoryTracker* tracker) const { Mutex::ScopedLock lock(mutex_); - tracker->TrackThis(this); tracker->TrackField("incoming_messages", incoming_messages_); } @@ -421,7 +419,7 @@ MessagePort::MessagePort(Environment* env, async()->data = static_cast(this); Local fn; - if (!wrap->Get(context, env->oninit_string()).ToLocal(&fn)) + if (!wrap->Get(context, env->oninit_symbol()).ToLocal(&fn)) return; if (fn->IsFunction()) { @@ -483,14 +481,14 @@ MessagePort* MessagePort::New( Local ctor; if (!GetMessagePortConstructor(env, context).ToLocal(&ctor)) return nullptr; - MessagePort* port = nullptr; // Construct a new instance, then assign the listener instance and possibly // the MessagePortData to it. Local instance; if (!ctor->NewInstance(context).ToLocal(&instance)) return nullptr; - ASSIGN_OR_RETURN_UNWRAP(&port, instance, nullptr); + MessagePort* port = Unwrap(instance); + CHECK_NOT_NULL(port); if (data) { port->Detach(); port->data_ = std::move(data); @@ -722,9 +720,7 @@ MaybeLocal GetMessagePortConstructor( Local m = env->NewFunctionTemplate(MessagePort::New); m->SetClassName(env->message_port_constructor_string()); m->InstanceTemplate()->SetInternalFieldCount(1); - - AsyncWrap::AddWrapMethods(env, m); - HandleWrap::AddWrapMethods(env, m); + m->Inherit(HandleWrap::GetConstructorTemplate(env)); env->SetProtoMethod(m, "postMessage", MessagePort::PostMessage); env->SetProtoMethod(m, "start", MessagePort::Start); diff --git a/src/node_messaging.h b/src/node_messaging.h index b7fd392ccc6fab..e4674885d2b89e 100644 --- a/src/node_messaging.h +++ b/src/node_messaging.h @@ -57,7 +57,8 @@ class Message : public MemoryRetainer { void MemoryInfo(MemoryTracker* tracker) const override; - ADD_MEMORY_INFO_NAME(Message) + SET_MEMORY_INFO_NAME(Message) + SET_SELF_SIZE(Message) private: MallocedBuffer main_message_buf_; @@ -100,7 +101,8 @@ class MessagePortData : public MemoryRetainer { void MemoryInfo(MemoryTracker* tracker) const override; - ADD_MEMORY_INFO_NAME(MessagePortData) + SET_MEMORY_INFO_NAME(MessagePortData) + SET_SELF_SIZE(MessagePortData) private: // After disentangling this message port, the owner handle (if any) @@ -187,11 +189,11 @@ class MessagePort : public HandleWrap { inline bool IsDetached() const; void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("data", data_); } - ADD_MEMORY_INFO_NAME(MessagePort) + SET_MEMORY_INFO_NAME(MessagePort) + SET_SELF_SIZE(MessagePort) private: void OnClose() override; diff --git a/src/node_options-inl.h b/src/node_options-inl.h index ba18e7c19b03c7..277121036e519d 100644 --- a/src/node_options-inl.h +++ b/src/node_options-inl.h @@ -270,7 +270,7 @@ void OptionsParser::Parse( std::vector* const v8_args, Options* const options, OptionEnvvarSettings required_env_settings, - std::string* const error) { + std::vector* const errors) { ArgsInfo args(orig_args, exec_args); // The first entry is the process name. Make sure it ends up in the V8 argv, @@ -279,7 +279,7 @@ void OptionsParser::Parse( if (v8_args->empty()) v8_args->push_back(args.program_name()); - while (!args.empty() && error->empty()) { + while (!args.empty() && errors->empty()) { if (args.first().size() <= 1 || args.first()[0] != '-') break; // We know that we're either going to consume this @@ -288,7 +288,7 @@ void OptionsParser::Parse( if (arg == "--") { if (required_env_settings == kAllowedInEnvironment) - *error = NotAllowedInEnvErr("--"); + errors->push_back(NotAllowedInEnvErr("--")); break; } @@ -307,6 +307,12 @@ void OptionsParser::Parse( if (equals_index != std::string::npos) original_name += '='; + // Normalize by replacing `_` with `-` in options. + for (std::string::size_type i = 2; i < name.size(); ++i) { + if (name[i] == '_') + name[i] = '-'; + } + { auto it = aliases_.end(); // Expand aliases: @@ -341,23 +347,10 @@ void OptionsParser::Parse( auto it = options_.find(name); - if (it == options_.end()) { - // We would assume that this is a V8 option if neither we nor any child - // parser knows about it, so we convert - to _ for - // canonicalization (since V8 accepts both) and look up again in order - // to find a match. - // TODO(addaleax): Make the canonicalization unconditional, i.e. allow - // both - and _ in Node's own options as well. - std::string::size_type index = 2; // Start after initial '--'. - while ((index = name.find('-', index + 1)) != std::string::npos) - name[index] = '_'; - it = options_.find(name); - } - if ((it == options_.end() || it->second.env_setting == kDisallowedInEnvironment) && required_env_settings == kAllowedInEnvironment) { - *error = NotAllowedInEnvErr(original_name); + errors->push_back(NotAllowedInEnvErr(original_name)); break; } @@ -379,7 +372,7 @@ void OptionsParser::Parse( value = arg.substr(equals_index + 1); if (value.empty()) { missing_argument: - *error = RequiresArgumentErr(original_name); + errors->push_back(RequiresArgumentErr(original_name)); break; } } else { @@ -413,7 +406,7 @@ void OptionsParser::Parse( break; case kHostPort: Lookup(info.field, options) - ->Update(SplitHostPort(value, error)); + ->Update(SplitHostPort(value, errors)); break; case kNoOp: break; @@ -424,6 +417,7 @@ void OptionsParser::Parse( UNREACHABLE(); } } + options->CheckOptions(errors); } } // namespace options_parser diff --git a/src/node_options.cc b/src/node_options.cc index 46f529cff2e961..2b95b3f811b4e7 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -16,6 +16,32 @@ using v8::Undefined; using v8::Value; namespace node { + +void PerProcessOptions::CheckOptions(std::vector* errors) { +#if HAVE_OPENSSL + if (use_openssl_ca && use_bundled_ca) { + errors->push_back("either --use-openssl-ca or --use-bundled-ca can be " + "used, not both"); + } +#endif + per_isolate->CheckOptions(errors); +} + +void PerIsolateOptions::CheckOptions(std::vector* errors) { + per_env->CheckOptions(errors); +} + +void EnvironmentOptions::CheckOptions(std::vector* errors) { + if (!userland_loader.empty() && !experimental_modules) { + errors->push_back("--loader requires --experimental-modules be enabled"); + } + + if (syntax_check_only && has_eval_string) { + errors->push_back("either --check or --eval can be used, not both"); + } + debug_options->CheckOptions(errors); +} + namespace options_parser { // XXX: If you add an option here, please also add it to doc/node.1 and @@ -76,8 +102,6 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { &EnvironmentOptions::experimental_worker, kAllowedInEnvironment); AddOption("--expose-internals", "", &EnvironmentOptions::expose_internals); - // TODO(addaleax): Remove this when adding -/_ canonicalization to the parser. - AddAlias("--expose_internals", "--expose-internals"); AddOption("--loader", "(with --experimental-modules) use the specified file as a " "custom loader", @@ -180,15 +204,15 @@ PerIsolateOptionsParser::PerIsolateOptionsParser() { kAllowedInEnvironment); // Explicitly add some V8 flags to mark them as allowed in NODE_OPTIONS. - AddOption("--abort_on_uncaught_exception", + AddOption("--abort-on-uncaught-exception", "aborting instead of exiting causes a core file to be generated " "for analysis", V8Option{}, kAllowedInEnvironment); - AddOption("--max_old_space_size", "", V8Option{}, kAllowedInEnvironment); - AddOption("--perf_basic_prof", "", V8Option{}, kAllowedInEnvironment); - AddOption("--perf_prof", "", V8Option{}, kAllowedInEnvironment); - AddOption("--stack_trace_limit", "", V8Option{}, kAllowedInEnvironment); + AddOption("--max-old-space-size", "", V8Option{}, kAllowedInEnvironment); + AddOption("--perf-basic-prof", "", V8Option{}, kAllowedInEnvironment); + AddOption("--perf-prof", "", V8Option{}, kAllowedInEnvironment); + AddOption("--stack-trace-limit", "", V8Option{}, kAllowedInEnvironment); Insert(&EnvironmentOptionsParser::instance, &PerIsolateOptions::get_per_env_options); @@ -223,6 +247,9 @@ PerProcessOptionsParser::PerProcessOptionsParser() { kAllowedInEnvironment); AddOption("--security-reverts", "", &PerProcessOptions::security_reverts); + AddOption("--completion-bash", + "print source-able bash completion script", + &PerProcessOptions::print_bash_completion); AddOption("--help", "print node command line options", &PerProcessOptions::print_help); @@ -304,18 +331,20 @@ inline std::string RemoveBrackets(const std::string& host) { return host; } -inline int ParseAndValidatePort(const std::string& port, std::string* error) { +inline int ParseAndValidatePort(const std::string& port, + std::vector* errors) { char* endptr; errno = 0; const long result = strtol(port.c_str(), &endptr, 10); // NOLINT(runtime/int) if (errno != 0 || *endptr != '\0'|| (result != 0 && result < 1024) || result > 65535) { - *error = "Port must be 0 or in range 1024 to 65535."; + errors->push_back(" must be 0 or in range 1024 to 65535."); } return static_cast(result); } -HostPort SplitHostPort(const std::string& arg, std::string* error) { +HostPort SplitHostPort(const std::string& arg, + std::vector* errors) { // remove_brackets only works if no port is specified // so if it has an effect only an IPv6 address was specified. std::string host = RemoveBrackets(arg); @@ -331,11 +360,11 @@ HostPort SplitHostPort(const std::string& arg, std::string* error) { return HostPort { arg, -1 }; } } - return HostPort { "", ParseAndValidatePort(arg, error) }; + return HostPort { "", ParseAndValidatePort(arg, errors) }; } // Host and port found: return HostPort { RemoveBrackets(arg.substr(0, colon)), - ParseAndValidatePort(arg.substr(colon + 1), error) }; + ParseAndValidatePort(arg.substr(colon + 1), errors) }; } // Usage: Either: diff --git a/src/node_options.h b/src/node_options.h index 71615cf0839aa4..8c71881e64311d 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -21,11 +21,17 @@ struct HostPort { } }; +class Options { + public: + virtual void CheckOptions(std::vector* errors) {} + virtual ~Options() {} +}; + // These options are currently essentially per-Environment, but it can be nice // to keep them separate since they are a group of options applying to a very // specific part of Node. It might also make more sense for them to be // per-Isolate, rather than per-Environment. -class DebugOptions { +class DebugOptions : public Options { public: bool inspector_enabled = false; bool deprecated_debug = false; @@ -57,7 +63,7 @@ class DebugOptions { } }; -class EnvironmentOptions { +class EnvironmentOptions : public Options { public: std::shared_ptr debug_options { new DebugOptions() }; bool abort_on_uncaught_exception = false; @@ -91,17 +97,19 @@ class EnvironmentOptions { std::vector user_argv; inline DebugOptions* get_debug_options(); + void CheckOptions(std::vector* errors); }; -class PerIsolateOptions { +class PerIsolateOptions : public Options { public: std::shared_ptr per_env { new EnvironmentOptions() }; bool track_heap_objects = false; inline EnvironmentOptions* get_per_env_options(); + void CheckOptions(std::vector* errors); }; -class PerProcessOptions { +class PerProcessOptions : public Options { public: std::shared_ptr per_isolate { new PerIsolateOptions() }; @@ -112,6 +120,7 @@ class PerProcessOptions { bool zero_fill_all_buffers = false; std::vector security_reverts; + bool print_bash_completion = false; bool print_help = false; bool print_v8_help = false; bool print_version = false; @@ -138,13 +147,15 @@ class PerProcessOptions { #endif inline PerIsolateOptions* get_per_isolate_options(); + void CheckOptions(std::vector* errors); }; // The actual options parser, as opposed to the structs containing them: namespace options_parser { -HostPort SplitHostPort(const std::string& arg, std::string* error); +HostPort SplitHostPort(const std::string& arg, + std::vector* errors); void GetOptions(const v8::FunctionCallbackInfo& args); enum OptionEnvvarSettings { @@ -220,7 +231,7 @@ class OptionsParser { void AddAlias(const std::string& from, const std::initializer_list& to); - // Add implications from some arbitary option to a boolean one, either + // Add implications from some arbitrary option to a boolean one, either // in a way that makes `from` set `to` to true or to false. void Implies(const std::string& from, const std::string& to); void ImpliesNot(const std::string& from, const std::string& to); @@ -254,7 +265,7 @@ class OptionsParser { std::vector* const v8_args, Options* const options, OptionEnvvarSettings required_env_settings, - std::string* const error); + std::vector* const errors); private: // We support the wide variety of different option types by remembering @@ -278,7 +289,7 @@ class OptionsParser { } }; - // Represents a field of type T withing `Options` that can be looked up + // Represents a field of type T within `Options` that can be looked up // as a C++ member field. template class SimpleOptionField : public OptionField { diff --git a/src/node_perf.cc b/src/node_perf.cc index 828a1dd7ff4bde..204996384af3a3 100644 --- a/src/node_perf.cc +++ b/src/node_perf.cc @@ -405,7 +405,7 @@ void Initialize(Local target, Local pe = FunctionTemplate::New(isolate); pe->SetClassName(performanceEntryString); - Local fn = pe->GetFunction(); + Local fn = pe->GetFunction(context).ToLocalChecked(); target->Set(context, performanceEntryString, fn).FromJust(); env->set_performance_entry_template(fn); diff --git a/src/node_serdes.cc b/src/node_serdes.cc index 5de0ddd81909b0..a6f91d56c2b2bb 100644 --- a/src/node_serdes.cc +++ b/src/node_serdes.cc @@ -53,11 +53,9 @@ class SerializerContext : public BaseObject, static void WriteDouble(const FunctionCallbackInfo& args); static void WriteRawBytes(const FunctionCallbackInfo& args); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(SerializerContext) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(SerializerContext) + SET_SELF_SIZE(SerializerContext) private: ValueSerializer serializer_; @@ -84,11 +82,9 @@ class DeserializerContext : public BaseObject, static void ReadDouble(const FunctionCallbackInfo& args); static void ReadRawBytes(const FunctionCallbackInfo& args); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(DeserializerContext) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(DeserializerContext) + SET_SELF_SIZE(DeserializerContext) private: const uint8_t* data_; diff --git a/src/node_stat_watcher.cc b/src/node_stat_watcher.cc index 5e47476fd97a0c..ca0927af662200 100644 --- a/src/node_stat_watcher.cc +++ b/src/node_stat_watcher.cc @@ -50,13 +50,12 @@ void StatWatcher::Initialize(Environment* env, Local target) { Local statWatcherString = FIXED_ONE_BYTE_STRING(env->isolate(), "StatWatcher"); t->SetClassName(statWatcherString); - - AsyncWrap::AddWrapMethods(env, t); - HandleWrap::AddWrapMethods(env, t); + t->Inherit(HandleWrap::GetConstructorTemplate(env)); env->SetProtoMethod(t, "start", StatWatcher::Start); - target->Set(statWatcherString, t->GetFunction()); + target->Set(statWatcherString, + t->GetFunction(env->context()).ToLocalChecked()); } diff --git a/src/node_stat_watcher.h b/src/node_stat_watcher.h index 33c90ad3cde737..3d819b45787e98 100644 --- a/src/node_stat_watcher.h +++ b/src/node_stat_watcher.h @@ -44,11 +44,9 @@ class StatWatcher : public HandleWrap { static void New(const v8::FunctionCallbackInfo& args); static void Start(const v8::FunctionCallbackInfo& args); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(StatWatcher) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(StatWatcher) + SET_SELF_SIZE(StatWatcher) private: static void Callback(uv_fs_poll_t* handle, diff --git a/src/node_trace_events.cc b/src/node_trace_events.cc index d59b92555795fb..f06648b24492fd 100644 --- a/src/node_trace_events.cc +++ b/src/node_trace_events.cc @@ -28,11 +28,11 @@ class NodeCategorySet : public BaseObject { const std::set& GetCategories() const { return categories_; } void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); tracker->TrackField("categories", categories_); } - ADD_MEMORY_INFO_NAME(NodeCategorySet) + SET_MEMORY_INFO_NAME(NodeCategorySet) + SET_SELF_SIZE(NodeCategorySet) private: NodeCategorySet(Environment* env, @@ -239,7 +239,7 @@ void Initialize(Local target, env->SetProtoMethod(category_set, "disable", NodeCategorySet::Disable); target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "CategorySet"), - category_set->GetFunction()); + category_set->GetFunction(env->context()).ToLocalChecked()); Local isTraceCategoryEnabled = FIXED_ONE_BYTE_STRING(env->isolate(), "isTraceCategoryEnabled"); diff --git a/src/node_url.cc b/src/node_url.cc index 4d57027dd29ce9..f0278a5cf3d20b 100644 --- a/src/node_url.cc +++ b/src/node_url.cc @@ -792,7 +792,7 @@ void URLHost::ParseIPv6Host(const char* input, size_t length) { uint16_t* compress_pointer = nullptr; const char* pointer = input; const char* end = pointer + length; - unsigned value, len, swaps, numbers_seen; + unsigned value, len, numbers_seen; char ch = pointer < end ? pointer[0] : kEOL; if (ch == ':') { if (length < 2 || pointer[1] != ':') @@ -881,7 +881,7 @@ void URLHost::ParseIPv6Host(const char* input, size_t length) { } if (compress_pointer != nullptr) { - swaps = piece_pointer - compress_pointer; + unsigned swaps = piece_pointer - compress_pointer; piece_pointer = buffer_end - 1; while (piece_pointer != &value_.ipv6[0] && swaps > 0) { uint16_t temp = *piece_pointer; @@ -2348,6 +2348,19 @@ std::string URL::ToFilePath() const { #endif } +URL URL::FromFilePath(const std::string& file_path) { + URL url("file://"); + std::string escaped_file_path; + for (size_t i = 0; i < file_path.length(); ++i) { + escaped_file_path += file_path[i]; + if (file_path[i] == '%') + escaped_file_path += "25"; + } + URL::Parse(escaped_file_path.c_str(), escaped_file_path.length(), kPathStart, + &url.context_, true, nullptr, false); + return url; +} + // This function works by calling out to a JS function that creates and // returns the JS URL object. Be mindful of the JS<->Native boundary // crossing that is required. diff --git a/src/node_url.h b/src/node_url.h index b2eadf9923a7ea..055393d22e0f19 100644 --- a/src/node_url.h +++ b/src/node_url.h @@ -159,9 +159,8 @@ class URL { std::string path() const { std::string ret; - for (auto i = context_.path.begin(); i != context_.path.end(); i++) { - ret += '/'; - ret += *i; + for (const std::string& element : context_.path) { + ret += '/' + element; } return ret; } @@ -169,6 +168,8 @@ class URL { // Get the path of the file: URL in a format consumable by native file system // APIs. Returns an empty string if something went wrong. std::string ToFilePath() const; + // Get the file URL from native file system path. + static URL FromFilePath(const std::string& file_path); const Local ToObject(Environment* env) const; diff --git a/src/node_version.h b/src/node_version.h index 703646938bbd8b..717ff9de878011 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -23,13 +23,13 @@ #define SRC_NODE_VERSION_H_ #define NODE_MAJOR_VERSION 10 -#define NODE_MINOR_VERSION 11 -#define NODE_PATCH_VERSION 1 +#define NODE_MINOR_VERSION 12 +#define NODE_PATCH_VERSION 0 #define NODE_VERSION_IS_LTS 0 #define NODE_VERSION_LTS_CODENAME "" -#define NODE_VERSION_IS_RELEASE 0 +#define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n) diff --git a/src/node_worker.cc b/src/node_worker.cc index fa192d1291ec84..91ef9f2a96e49a 100644 --- a/src/node_worker.cc +++ b/src/node_worker.cc @@ -35,10 +35,38 @@ namespace { uint64_t next_thread_id = 1; Mutex next_thread_id_mutex; +#if NODE_USE_V8_PLATFORM && HAVE_INSPECTOR +void StartWorkerInspector(Environment* child, const std::string& url) { + child->inspector_agent()->Start(url, nullptr, false); +} + +void AddWorkerInspector(Environment* parent, + Environment* child, + int id, + const std::string& url) { + parent->inspector_agent()->AddWorkerInspector(id, url, + child->inspector_agent()); +} + +void WaitForWorkerInspectorToStop(Environment* child) { + child->inspector_agent()->WaitForDisconnect(); + child->inspector_agent()->Stop(); +} + +#else +// No-ops +void StartWorkerInspector(Environment* child, const std::string& url) {} +void AddWorkerInspector(Environment* parent, + Environment* child, + int id, + const std::string& url) {} +void WaitForWorkerInspectorToStop(Environment* child) {} +#endif + } // anonymous namespace -Worker::Worker(Environment* env, Local wrap) - : AsyncWrap(env, wrap, AsyncWrap::PROVIDER_WORKER) { +Worker::Worker(Environment* env, Local wrap, const std::string& url) + : AsyncWrap(env, wrap, AsyncWrap::PROVIDER_WORKER), url_(url) { // Generate a new thread id. { Mutex::ScopedLock next_thread_id_lock(next_thread_id_mutex); @@ -99,6 +127,8 @@ Worker::Worker(Environment* env, Local wrap) env_->Start(std::vector{}, std::vector{}, env->profiler_idle_notifier_started()); + // Done while on the parent thread + AddWorkerInspector(env, env_.get(), thread_id_, url_); } // The new isolate won't be bothered on this thread again. @@ -126,6 +156,7 @@ void Worker::Run() { Locker locker(isolate_); Isolate::Scope isolate_scope(isolate_); SealHandleScope outer_seal(isolate_); + bool inspector_started = false; { Context::Scope context_scope(env_->context()); @@ -147,6 +178,9 @@ void Worker::Run() { } if (!is_stopped()) { + StartWorkerInspector(env_.get(), url_); + inspector_started = true; + HandleScope handle_scope(isolate_); Environment::AsyncCallbackScope callback_scope(env_.get()); env_->async_hooks()->push_async_ids(1, 0); @@ -215,6 +249,8 @@ void Worker::Run() { env_->stop_sub_worker_contexts(); env_->RunCleanup(); RunAtExit(env_.get()); + if (inspector_started) + WaitForWorkerInspectorToStop(env_.get()); { Mutex::ScopedLock stopped_lock(stopped_mutex_); @@ -350,7 +386,15 @@ void Worker::New(const FunctionCallbackInfo& args) { return; } - new Worker(env, args.This()); + std::string url; + // Argument might be a string or URL + if (args.Length() == 1 && !args[0]->IsNullOrUndefined()) { + Utf8Value value( + args.GetIsolate(), + args[0]->ToString(env->context()).FromMaybe(v8::Local())); + url.append(value.out(), value.length()); + } + new Worker(env, args.This(), url); } void Worker::StartThread(const FunctionCallbackInfo& args) { @@ -437,8 +481,8 @@ void InitWorker(Local target, Local w = env->NewFunctionTemplate(Worker::New); w->InstanceTemplate()->SetInternalFieldCount(1); + w->Inherit(AsyncWrap::GetConstructorTemplate(env)); - AsyncWrap::AddWrapMethods(env, w); env->SetProtoMethod(w, "startThread", Worker::StartThread); env->SetProtoMethod(w, "stopThread", Worker::StopThread); env->SetProtoMethod(w, "ref", Worker::Ref); @@ -447,7 +491,7 @@ void InitWorker(Local target, Local workerString = FIXED_ONE_BYTE_STRING(env->isolate(), "Worker"); w->SetClassName(workerString); - target->Set(workerString, w->GetFunction()); + target->Set(workerString, w->GetFunction(env->context()).ToLocalChecked()); } env->SetMethod(target, "getEnvMessagePort", GetEnvMessagePort); diff --git a/src/node_worker.h b/src/node_worker.h index 33df36e04ce670..cbd4a861570b27 100644 --- a/src/node_worker.h +++ b/src/node_worker.h @@ -12,7 +12,7 @@ namespace worker { // A worker thread, as represented in its parent thread. class Worker : public AsyncWrap { public: - Worker(Environment* env, v8::Local wrap); + Worker(Environment* env, v8::Local wrap, const std::string& url); ~Worker(); // Run the worker. This is only called from the worker thread. @@ -26,15 +26,15 @@ class Worker : public AsyncWrap { void JoinThread(); void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - tracker->TrackFieldWithSize("isolate_data", sizeof(IsolateData)); - tracker->TrackFieldWithSize("env", sizeof(Environment)); - tracker->TrackFieldWithSize("thread_exit_async", sizeof(uv_async_t)); + tracker->TrackFieldWithSize( + "isolate_data", sizeof(IsolateData), "IsolateData"); + tracker->TrackFieldWithSize("env", sizeof(Environment), "Environment"); + tracker->TrackField("thread_exit_async", *thread_exit_async_); tracker->TrackField("parent_port", parent_port_); } - - ADD_MEMORY_INFO_NAME(Worker) + SET_MEMORY_INFO_NAME(Worker) + SET_SELF_SIZE(Worker) bool is_stopped() const; @@ -52,6 +52,7 @@ class Worker : public AsyncWrap { uv_loop_t loop_; DeleteFnPtr isolate_data_; DeleteFnPtr env_; + const std::string url_; v8::Isolate* isolate_ = nullptr; DeleteFnPtr array_buffer_allocator_; diff --git a/src/node_wrap.h b/src/node_wrap.h deleted file mode 100644 index 42caca2dc6452d..00000000000000 --- a/src/node_wrap.h +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -#ifndef SRC_NODE_WRAP_H_ -#define SRC_NODE_WRAP_H_ - -#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS - -#include "env.h" -#include "pipe_wrap.h" -#include "tcp_wrap.h" -#include "tty_wrap.h" -#include "uv.h" -#include "v8.h" - -namespace node { - -// TODO(addaleax): Use real inheritance for the JS object templates to avoid -// this unnecessary case switching. -#define WITH_GENERIC_UV_STREAM(env, obj, BODY) \ - do { \ - if (env->tcp_constructor_template().IsEmpty() == false && \ - env->tcp_constructor_template()->HasInstance(obj)) { \ - TCPWrap* const wrap = Unwrap(obj); \ - BODY \ - } else if (env->tty_constructor_template().IsEmpty() == false && \ - env->tty_constructor_template()->HasInstance(obj)) { \ - TTYWrap* const wrap = Unwrap(obj); \ - BODY \ - } else if (env->pipe_constructor_template().IsEmpty() == false && \ - env->pipe_constructor_template()->HasInstance(obj)) { \ - PipeWrap* const wrap = Unwrap(obj); \ - BODY \ - } \ - } while (0) - -inline uv_stream_t* HandleToStream(Environment* env, - v8::Local obj) { - v8::HandleScope scope(env->isolate()); - - WITH_GENERIC_UV_STREAM(env, obj, { - if (wrap == nullptr) - return nullptr; - return reinterpret_cast(wrap->UVHandle()); - }); - - return nullptr; -} - -} // namespace node - -#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS - -#endif // SRC_NODE_WRAP_H_ diff --git a/src/node_zlib.cc b/src/node_zlib.cc index 3d7c6b004797f2..6e99f68108730f 100644 --- a/src/node_zlib.cc +++ b/src/node_zlib.cc @@ -78,8 +78,6 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { ZCtx(Environment* env, Local wrap, node_zlib_mode mode) : AsyncWrap(env, wrap, AsyncWrap::PROVIDER_ZLIB), ThreadPoolWork(env), - dictionary_(nullptr), - dictionary_len_(0), err_(0), flush_(0), init_done_(false), @@ -126,10 +124,7 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { CHECK(status == Z_OK || status == Z_DATA_ERROR); mode_ = NONE; - if (dictionary_ != nullptr) { - delete[] dictionary_; - dictionary_ = nullptr; - } + dictionary_.clear(); } @@ -143,24 +138,15 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { // write(flush, in, in_off, in_len, out, out_off, out_len) template static void Write(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + Local context = env->context(); CHECK_EQ(args.Length(), 7); - ZCtx* ctx; - ASSIGN_OR_RETURN_UNWRAP(&ctx, args.Holder()); - CHECK(ctx->init_done_ && "write before init"); - CHECK(ctx->mode_ != NONE && "already finalized"); - - CHECK_EQ(false, ctx->write_in_progress_ && "write already in progress"); - CHECK_EQ(false, ctx->pending_close_ && "close is pending"); - ctx->write_in_progress_ = true; - ctx->Ref(); + uint32_t in_off, in_len, out_off, out_len, flush; + char* in; + char* out; CHECK_EQ(false, args[0]->IsUndefined() && "must provide flush value"); - - Environment* env = ctx->env(); - Local context = env->context(); - - unsigned int flush; if (!args[0]->Uint32Value(context).To(&flush)) return; if (flush != Z_NO_FLUSH && @@ -172,12 +158,6 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { CHECK(0 && "Invalid flush value"); } - AllocScope alloc_scope(ctx); - - Bytef* in; - Bytef* out; - uint32_t in_off, in_len, out_off, out_len; - if (args[1]->IsNull()) { // just a flush in = nullptr; @@ -185,43 +165,62 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { in_off = 0; } else { CHECK(Buffer::HasInstance(args[1])); - Local in_buf; - in_buf = args[1]->ToObject(context).ToLocalChecked(); + Local in_buf = args[1].As(); if (!args[2]->Uint32Value(context).To(&in_off)) return; if (!args[3]->Uint32Value(context).To(&in_len)) return; CHECK(Buffer::IsWithinBounds(in_off, in_len, Buffer::Length(in_buf))); - in = reinterpret_cast(Buffer::Data(in_buf) + in_off); + in = Buffer::Data(in_buf) + in_off; } CHECK(Buffer::HasInstance(args[4])); - Local out_buf = args[4]->ToObject(context).ToLocalChecked(); + Local out_buf = args[4].As(); if (!args[5]->Uint32Value(context).To(&out_off)) return; if (!args[6]->Uint32Value(context).To(&out_len)) return; CHECK(Buffer::IsWithinBounds(out_off, out_len, Buffer::Length(out_buf))); - out = reinterpret_cast(Buffer::Data(out_buf) + out_off); + out = Buffer::Data(out_buf) + out_off; - ctx->strm_.avail_in = in_len; - ctx->strm_.next_in = in; - ctx->strm_.avail_out = out_len; - ctx->strm_.next_out = out; - ctx->flush_ = flush; + ZCtx* ctx; + ASSIGN_OR_RETURN_UNWRAP(&ctx, args.Holder()); + + ctx->Write(flush, in, in_len, out, out_len); + } + + template + void Write(uint32_t flush, + char* in, uint32_t in_len, + char* out, uint32_t out_len) { + AllocScope alloc_scope(this); + + CHECK(init_done_ && "write before init"); + CHECK(mode_ != NONE && "already finalized"); + + CHECK_EQ(false, write_in_progress_); + CHECK_EQ(false, pending_close_); + write_in_progress_ = true; + Ref(); + + strm_.avail_in = in_len; + strm_.next_in = reinterpret_cast(in); + strm_.avail_out = out_len; + strm_.next_out = reinterpret_cast(out); + flush_ = flush; if (!async) { // sync version - env->PrintSyncTrace(); - ctx->DoThreadPoolWork(); - if (ctx->CheckError()) { - ctx->write_result_[0] = ctx->strm_.avail_out; - ctx->write_result_[1] = ctx->strm_.avail_in; - ctx->write_in_progress_ = false; + env()->PrintSyncTrace(); + DoThreadPoolWork(); + if (CheckError()) { + write_result_[0] = strm_.avail_out; + write_result_[1] = strm_.avail_in; + write_in_progress_ = false; } - ctx->Unref(); + Unref(); return; } // async version - ctx->ScheduleWork(); + ScheduleWork(); } // thread pool! @@ -294,9 +293,11 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { // SetDictionary, don't repeat that here) if (mode_ != INFLATERAW && err_ == Z_NEED_DICT && - dictionary_ != nullptr) { + !dictionary_.empty()) { // Load it - err_ = inflateSetDictionary(&strm_, dictionary_, dictionary_len_); + err_ = inflateSetDictionary(&strm_, + dictionary_.data(), + dictionary_.size()); if (err_ == Z_OK) { // And try to decode again err_ = inflate(&strm_, flush_); @@ -346,7 +347,7 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { // normal statuses, not fatal break; case Z_NEED_DICT: - if (dictionary_ == nullptr) + if (dictionary_.empty()) Error("Missing dictionary"); else Error("Bad dictionary"); @@ -483,23 +484,20 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { Local write_js_callback = args[5].As(); - char* dictionary = nullptr; - size_t dictionary_len = 0; + std::vector dictionary; if (Buffer::HasInstance(args[6])) { - const char* dictionary_ = Buffer::Data(args[6]); - dictionary_len = Buffer::Length(args[6]); - - dictionary = new char[dictionary_len]; - memcpy(dictionary, dictionary_, dictionary_len); + unsigned char* data = + reinterpret_cast(Buffer::Data(args[6])); + dictionary = std::vector( + data, + data + Buffer::Length(args[6])); } - bool ret = Init(ctx, level, windowBits, memLevel, strategy, write_result, - write_js_callback, dictionary, dictionary_len); - if (!ret) goto end; + bool ret = ctx->Init(level, windowBits, memLevel, strategy, write_result, + write_js_callback, std::move(dictionary)); + if (ret) + ctx->SetDictionary(); - ctx->SetDictionary(); - - end: return args.GetReturnValue().Set(ret); } @@ -522,79 +520,75 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { ctx->SetDictionary(); } - static bool Init(ZCtx* ctx, int level, int windowBits, int memLevel, - int strategy, uint32_t* write_result, - Local write_js_callback, char* dictionary, - size_t dictionary_len) { - AllocScope alloc_scope(ctx); - ctx->level_ = level; - ctx->windowBits_ = windowBits; - ctx->memLevel_ = memLevel; - ctx->strategy_ = strategy; + bool Init(int level, int windowBits, int memLevel, + int strategy, uint32_t* write_result, + Local write_js_callback, + std::vector&& dictionary) { + AllocScope alloc_scope(this); + level_ = level; + windowBits_ = windowBits; + memLevel_ = memLevel; + strategy_ = strategy; - ctx->strm_.zalloc = AllocForZlib; - ctx->strm_.zfree = FreeForZlib; - ctx->strm_.opaque = static_cast(ctx); + strm_.zalloc = AllocForZlib; + strm_.zfree = FreeForZlib; + strm_.opaque = static_cast(this); - ctx->flush_ = Z_NO_FLUSH; + flush_ = Z_NO_FLUSH; - ctx->err_ = Z_OK; + err_ = Z_OK; - if (ctx->mode_ == GZIP || ctx->mode_ == GUNZIP) { - ctx->windowBits_ += 16; + if (mode_ == GZIP || mode_ == GUNZIP) { + windowBits_ += 16; } - if (ctx->mode_ == UNZIP) { - ctx->windowBits_ += 32; + if (mode_ == UNZIP) { + windowBits_ += 32; } - if (ctx->mode_ == DEFLATERAW || ctx->mode_ == INFLATERAW) { - ctx->windowBits_ *= -1; + if (mode_ == DEFLATERAW || mode_ == INFLATERAW) { + windowBits_ *= -1; } - switch (ctx->mode_) { + switch (mode_) { case DEFLATE: case GZIP: case DEFLATERAW: - ctx->err_ = deflateInit2(&ctx->strm_, - ctx->level_, - Z_DEFLATED, - ctx->windowBits_, - ctx->memLevel_, - ctx->strategy_); + err_ = deflateInit2(&strm_, + level_, + Z_DEFLATED, + windowBits_, + memLevel_, + strategy_); break; case INFLATE: case GUNZIP: case INFLATERAW: case UNZIP: - ctx->err_ = inflateInit2(&ctx->strm_, ctx->windowBits_); + err_ = inflateInit2(&strm_, windowBits_); break; default: UNREACHABLE(); } - ctx->dictionary_ = reinterpret_cast(dictionary); - ctx->dictionary_len_ = dictionary_len; + dictionary_ = std::move(dictionary); - ctx->write_in_progress_ = false; - ctx->init_done_ = true; + write_in_progress_ = false; + init_done_ = true; - if (ctx->err_ != Z_OK) { - if (dictionary != nullptr) { - delete[] dictionary; - ctx->dictionary_ = nullptr; - } - ctx->mode_ = NONE; + if (err_ != Z_OK) { + dictionary_.clear(); + mode_ = NONE; return false; } - ctx->write_result_ = write_result; - ctx->write_js_callback_.Reset(ctx->env()->isolate(), write_js_callback); + write_result_ = write_result; + write_js_callback_.Reset(env()->isolate(), write_js_callback); return true; } void SetDictionary() { - if (dictionary_ == nullptr) + if (dictionary_.empty()) return; err_ = Z_OK; @@ -602,12 +596,16 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { switch (mode_) { case DEFLATE: case DEFLATERAW: - err_ = deflateSetDictionary(&strm_, dictionary_, dictionary_len_); + err_ = deflateSetDictionary(&strm_, + dictionary_.data(), + dictionary_.size()); break; case INFLATERAW: // The other inflate cases will have the dictionary set when inflate() // returns Z_NEED_DICT in Process() - err_ = inflateSetDictionary(&strm_, dictionary_, dictionary_len_); + err_ = inflateSetDictionary(&strm_, + dictionary_.data(), + dictionary_.size()); break; default: break; @@ -663,14 +661,13 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { } void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - tracker->TrackFieldWithSize("dictionary", dictionary_len_); - tracker->TrackFieldWithSize("zlib memory", - zlib_memory_ + unreported_allocations_); + tracker->TrackField("dictionary", dictionary_); + tracker->TrackFieldWithSize("zlib_memory", + zlib_memory_ + unreported_allocations_); } - - ADD_MEMORY_INFO_NAME(ZCtx) + SET_MEMORY_INFO_NAME(ZCtx) + SET_SELF_SIZE(ZCtx) private: void Ref() { @@ -732,8 +729,7 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork { ZCtx* ctx; }; - Bytef* dictionary_; - size_t dictionary_len_; + std::vector dictionary_; int err_; int flush_; bool init_done_; @@ -762,8 +758,8 @@ void Initialize(Local target, Local z = env->NewFunctionTemplate(ZCtx::New); z->InstanceTemplate()->SetInternalFieldCount(1); + z->Inherit(AsyncWrap::GetConstructorTemplate(env)); - AsyncWrap::AddWrapMethods(env, z); env->SetProtoMethod(z, "write", ZCtx::Write); env->SetProtoMethod(z, "writeSync", ZCtx::Write); env->SetProtoMethod(z, "init", ZCtx::Init); @@ -773,13 +769,66 @@ void Initialize(Local target, Local zlibString = FIXED_ONE_BYTE_STRING(env->isolate(), "Zlib"); z->SetClassName(zlibString); - target->Set(zlibString, z->GetFunction()); + target->Set(zlibString, z->GetFunction(env->context()).ToLocalChecked()); target->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "ZLIB_VERSION"), FIXED_ONE_BYTE_STRING(env->isolate(), ZLIB_VERSION)); } } // anonymous namespace + +void DefineZlibConstants(Local target) { + NODE_DEFINE_CONSTANT(target, Z_NO_FLUSH); + NODE_DEFINE_CONSTANT(target, Z_PARTIAL_FLUSH); + NODE_DEFINE_CONSTANT(target, Z_SYNC_FLUSH); + NODE_DEFINE_CONSTANT(target, Z_FULL_FLUSH); + NODE_DEFINE_CONSTANT(target, Z_FINISH); + NODE_DEFINE_CONSTANT(target, Z_BLOCK); + + // return/error codes + NODE_DEFINE_CONSTANT(target, Z_OK); + NODE_DEFINE_CONSTANT(target, Z_STREAM_END); + NODE_DEFINE_CONSTANT(target, Z_NEED_DICT); + NODE_DEFINE_CONSTANT(target, Z_ERRNO); + NODE_DEFINE_CONSTANT(target, Z_STREAM_ERROR); + NODE_DEFINE_CONSTANT(target, Z_DATA_ERROR); + NODE_DEFINE_CONSTANT(target, Z_MEM_ERROR); + NODE_DEFINE_CONSTANT(target, Z_BUF_ERROR); + NODE_DEFINE_CONSTANT(target, Z_VERSION_ERROR); + + NODE_DEFINE_CONSTANT(target, Z_NO_COMPRESSION); + NODE_DEFINE_CONSTANT(target, Z_BEST_SPEED); + NODE_DEFINE_CONSTANT(target, Z_BEST_COMPRESSION); + NODE_DEFINE_CONSTANT(target, Z_DEFAULT_COMPRESSION); + NODE_DEFINE_CONSTANT(target, Z_FILTERED); + NODE_DEFINE_CONSTANT(target, Z_HUFFMAN_ONLY); + NODE_DEFINE_CONSTANT(target, Z_RLE); + NODE_DEFINE_CONSTANT(target, Z_FIXED); + NODE_DEFINE_CONSTANT(target, Z_DEFAULT_STRATEGY); + NODE_DEFINE_CONSTANT(target, ZLIB_VERNUM); + + NODE_DEFINE_CONSTANT(target, DEFLATE); + NODE_DEFINE_CONSTANT(target, INFLATE); + NODE_DEFINE_CONSTANT(target, GZIP); + NODE_DEFINE_CONSTANT(target, GUNZIP); + NODE_DEFINE_CONSTANT(target, DEFLATERAW); + NODE_DEFINE_CONSTANT(target, INFLATERAW); + NODE_DEFINE_CONSTANT(target, UNZIP); + + NODE_DEFINE_CONSTANT(target, Z_MIN_WINDOWBITS); + NODE_DEFINE_CONSTANT(target, Z_MAX_WINDOWBITS); + NODE_DEFINE_CONSTANT(target, Z_DEFAULT_WINDOWBITS); + NODE_DEFINE_CONSTANT(target, Z_MIN_CHUNK); + NODE_DEFINE_CONSTANT(target, Z_MAX_CHUNK); + NODE_DEFINE_CONSTANT(target, Z_DEFAULT_CHUNK); + NODE_DEFINE_CONSTANT(target, Z_MIN_MEMLEVEL); + NODE_DEFINE_CONSTANT(target, Z_MAX_MEMLEVEL); + NODE_DEFINE_CONSTANT(target, Z_DEFAULT_MEMLEVEL); + NODE_DEFINE_CONSTANT(target, Z_MIN_LEVEL); + NODE_DEFINE_CONSTANT(target, Z_MAX_LEVEL); + NODE_DEFINE_CONSTANT(target, Z_DEFAULT_LEVEL); +} + } // namespace node NODE_BUILTIN_MODULE_CONTEXT_AWARE(zlib, node::Initialize) diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc index 84333f7a845290..90ba87b2d55d09 100644 --- a/src/pipe_wrap.cc +++ b/src/pipe_wrap.cc @@ -28,7 +28,6 @@ #include "node.h" #include "node_buffer.h" #include "node_internals.h" -#include "node_wrap.h" #include "connect_wrap.h" #include "stream_base-inl.h" #include "stream_wrap.h" @@ -57,7 +56,9 @@ Local PipeWrap::Instantiate(Environment* env, EscapableHandleScope handle_scope(env->isolate()); AsyncHooks::DefaultTriggerAsyncIdScope trigger_scope(parent); CHECK_EQ(false, env->pipe_constructor_template().IsEmpty()); - Local constructor = env->pipe_constructor_template()->GetFunction(); + Local constructor = env->pipe_constructor_template() + ->GetFunction(env->context()) + .ToLocalChecked(); CHECK_EQ(false, constructor.IsEmpty()); Local type_value = Int32::New(env->isolate(), type); Local instance = @@ -76,9 +77,7 @@ void PipeWrap::Initialize(Local target, t->SetClassName(pipeString); t->InstanceTemplate()->SetInternalFieldCount(1); - AsyncWrap::AddWrapMethods(env, t); - HandleWrap::AddWrapMethods(env, t); - LibuvStreamWrap::AddMethods(env, t); + t->Inherit(LibuvStreamWrap::GetConstructorTemplate(env)); env->SetProtoMethod(t, "bind", Bind); env->SetProtoMethod(t, "listen", Listen); @@ -91,16 +90,16 @@ void PipeWrap::Initialize(Local target, env->SetProtoMethod(t, "fchmod", Fchmod); - target->Set(pipeString, t->GetFunction()); + target->Set(pipeString, t->GetFunction(env->context()).ToLocalChecked()); env->set_pipe_constructor_template(t); // Create FunctionTemplate for PipeConnectWrap. auto cwt = BaseObject::MakeLazilyInitializedJSTemplate(env); - AsyncWrap::AddWrapMethods(env, cwt); + cwt->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local wrapString = FIXED_ONE_BYTE_STRING(env->isolate(), "PipeConnectWrap"); cwt->SetClassName(wrapString); - target->Set(wrapString, cwt->GetFunction()); + target->Set(wrapString, cwt->GetFunction(env->context()).ToLocalChecked()); // Define constants Local constants = Object::New(env->isolate()); diff --git a/src/pipe_wrap.h b/src/pipe_wrap.h index 7faf5145abdcfe..05a5ba6e113a18 100644 --- a/src/pipe_wrap.h +++ b/src/pipe_wrap.h @@ -45,11 +45,9 @@ class PipeWrap : public ConnectionWrap { v8::Local unused, v8::Local context); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(PipeWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(PipeWrap) + SET_SELF_SIZE(PipeWrap) private: PipeWrap(Environment* env, diff --git a/src/process_wrap.cc b/src/process_wrap.cc index a38dd082111c4b..cd443b34aa972c 100644 --- a/src/process_wrap.cc +++ b/src/process_wrap.cc @@ -20,10 +20,9 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. #include "env-inl.h" -#include "handle_wrap.h" #include "node_internals.h" -#include "node_wrap.h" #include "stream_base-inl.h" +#include "stream_wrap.h" #include "util-inl.h" #include @@ -58,20 +57,18 @@ class ProcessWrap : public HandleWrap { FIXED_ONE_BYTE_STRING(env->isolate(), "Process"); constructor->SetClassName(processString); - AsyncWrap::AddWrapMethods(env, constructor); - HandleWrap::AddWrapMethods(env, constructor); + constructor->Inherit(HandleWrap::GetConstructorTemplate(env)); env->SetProtoMethod(constructor, "spawn", Spawn); env->SetProtoMethod(constructor, "kill", Kill); - target->Set(processString, constructor->GetFunction()); + target->Set(processString, + constructor->GetFunction(context).ToLocalChecked()); } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(ProcessWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(ProcessWrap) + SET_SELF_SIZE(ProcessWrap) private: static void New(const FunctionCallbackInfo& args) { @@ -91,6 +88,17 @@ class ProcessWrap : public HandleWrap { MarkAsUninitialized(); } + static uv_stream_t* StreamForWrap(Environment* env, Local stdio) { + Local handle_key = env->handle_string(); + // This property has always been set by JS land if we are in this code path. + Local handle = + stdio->Get(env->context(), handle_key).ToLocalChecked().As(); + + uv_stream_t* stream = LibuvStreamWrap::From(env, handle)->stream(); + CHECK_NOT_NULL(stream); + return stream; + } + static void ParseStdioOptions(Environment* env, Local js_options, uv_process_options_t* options) { @@ -114,22 +122,10 @@ class ProcessWrap : public HandleWrap { } else if (type->StrictEquals(env->pipe_string())) { options->stdio[i].flags = static_cast( UV_CREATE_PIPE | UV_READABLE_PIPE | UV_WRITABLE_PIPE); - Local handle_key = env->handle_string(); - Local handle = - stdio->Get(context, handle_key).ToLocalChecked().As(); - CHECK(!handle.IsEmpty()); - options->stdio[i].data.stream = - reinterpret_cast( - Unwrap(handle)->UVHandle()); + options->stdio[i].data.stream = StreamForWrap(env, stdio); } else if (type->StrictEquals(env->wrap_string())) { - Local handle_key = env->handle_string(); - Local handle = - stdio->Get(context, handle_key).ToLocalChecked().As(); - uv_stream_t* stream = HandleToStream(env, handle); - CHECK_NOT_NULL(stream); - options->stdio[i].flags = UV_INHERIT_STREAM; - options->stdio[i].data.stream = stream; + options->stdio[i].data.stream = StreamForWrap(env, stdio); } else { Local fd_key = env->fd_string(); Local fd_value = stdio->Get(context, fd_key).ToLocalChecked(); diff --git a/src/sharedarraybuffer_metadata.cc b/src/sharedarraybuffer_metadata.cc index 3d5b96051ead6e..3e760bc50bebe6 100644 --- a/src/sharedarraybuffer_metadata.cc +++ b/src/sharedarraybuffer_metadata.cc @@ -21,7 +21,7 @@ namespace { // Yield a JS constructor for SABLifetimePartner objects in the form of a // standard API object, that has a single field for containing the raw -// SABLiftimePartner* pointer. +// SABLifetimePartner* pointer. Local GetSABLifetimePartnerConstructor( Environment* env, Local context) { Local templ; @@ -47,11 +47,9 @@ class SABLifetimePartner : public BaseObject { MakeWeak(); } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(SABLifetimePartner) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(SABLifetimePartner) + SET_SELF_SIZE(SABLifetimePartner) SharedArrayBufferMetadataReference reference; }; diff --git a/src/signal_wrap.cc b/src/signal_wrap.cc index 4ff57a72431e9b..b390066140a739 100644 --- a/src/signal_wrap.cc +++ b/src/signal_wrap.cc @@ -50,21 +50,18 @@ class SignalWrap : public HandleWrap { Local signalString = FIXED_ONE_BYTE_STRING(env->isolate(), "Signal"); constructor->SetClassName(signalString); - - AsyncWrap::AddWrapMethods(env, constructor); - HandleWrap::AddWrapMethods(env, constructor); + constructor->Inherit(HandleWrap::GetConstructorTemplate(env)); env->SetProtoMethod(constructor, "start", Start); env->SetProtoMethod(constructor, "stop", Stop); - target->Set(signalString, constructor->GetFunction()); - } - - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); + target->Set(signalString, + constructor->GetFunction(env->context()).ToLocalChecked()); } - ADD_MEMORY_INFO_NAME(SignalWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(SignalWrap) + SET_SELF_SIZE(SignalWrap) private: static void New(const FunctionCallbackInfo& args) { diff --git a/src/stream_base.cc b/src/stream_base.cc index f429f3593fd5f4..f44e188b5b818c 100644 --- a/src/stream_base.cc +++ b/src/stream_base.cc @@ -209,8 +209,6 @@ int StreamBase::WriteString(const FunctionCallbackInfo& args) { if (args[2]->IsObject()) send_handle_obj = args[2].As(); - int err; - // Compute the size of the storage that the string will be flattened into. // For UTF8 strings that are very long, go ahead and take the hit for // computing their actual size, rather than tripling the storage. @@ -243,7 +241,7 @@ int StreamBase::WriteString(const FunctionCallbackInfo& args) { uv_buf_t* bufs = &buf; size_t count = 1; - err = DoTryWrite(&bufs, &count); + const int err = DoTryWrite(&bufs, &count); // Keep track of the bytes written here, because we're taking a shortcut // by using `DoTryWrite()` directly instead of using the utilities // provided by `Write()`. diff --git a/src/stream_base.h b/src/stream_base.h index 05c2a9623625d6..d8e6df960f4f54 100644 --- a/src/stream_base.h +++ b/src/stream_base.h @@ -347,11 +347,9 @@ class SimpleShutdownWrap : public ShutdownWrap, public OtherBase { AsyncWrap* GetAsyncWrap() override { return this; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(SimpleShutdownWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(SimpleShutdownWrap) + SET_SELF_SIZE(SimpleShutdownWrap) }; template @@ -362,13 +360,9 @@ class SimpleWriteWrap : public WriteWrap, public OtherBase { AsyncWrap* GetAsyncWrap() override { return this; } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - tracker->TrackFieldWithSize("storage", StorageSize()); - } - - - ADD_MEMORY_INFO_NAME(SimpleWriteWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(SimpleWriteWrap) + SET_SELF_SIZE(SimpleWriteWrap) }; } // namespace node diff --git a/src/stream_pipe.cc b/src/stream_pipe.cc index e19f98e35d2821..0b00f225d8ad7b 100644 --- a/src/stream_pipe.cc +++ b/src/stream_pipe.cc @@ -257,10 +257,13 @@ void InitializeStreamPipe(Local target, FIXED_ONE_BYTE_STRING(env->isolate(), "StreamPipe"); env->SetProtoMethod(pipe, "unpipe", StreamPipe::Unpipe); env->SetProtoMethod(pipe, "start", StreamPipe::Start); - AsyncWrap::AddWrapMethods(env, pipe); + pipe->Inherit(AsyncWrap::GetConstructorTemplate(env)); pipe->SetClassName(stream_pipe_string); pipe->InstanceTemplate()->SetInternalFieldCount(1); - target->Set(context, stream_pipe_string, pipe->GetFunction()).FromJust(); + target + ->Set(context, stream_pipe_string, + pipe->GetFunction(context).ToLocalChecked()) + .FromJust(); } } // anonymous namespace diff --git a/src/stream_pipe.h b/src/stream_pipe.h index c76afac41689a6..51a33b7ef69776 100644 --- a/src/stream_pipe.h +++ b/src/stream_pipe.h @@ -18,11 +18,9 @@ class StreamPipe : public AsyncWrap { static void Start(const v8::FunctionCallbackInfo& args); static void Unpipe(const v8::FunctionCallbackInfo& args); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(StreamPipe) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(StreamPipe) + SET_SELF_SIZE(StreamPipe) private: inline StreamBase* source(); diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc index 60a17545427b16..ea3c98591b7409 100644 --- a/src/stream_wrap.cc +++ b/src/stream_wrap.cc @@ -67,8 +67,8 @@ void LibuvStreamWrap::Initialize(Local target, Local wrapString = FIXED_ONE_BYTE_STRING(env->isolate(), "ShutdownWrap"); sw->SetClassName(wrapString); - AsyncWrap::AddWrapMethods(env, sw); - target->Set(wrapString, sw->GetFunction()); + sw->Inherit(AsyncWrap::GetConstructorTemplate(env)); + target->Set(wrapString, sw->GetFunction(env->context()).ToLocalChecked()); env->set_shutdown_wrap_template(sw->InstanceTemplate()); Local ww = @@ -77,8 +77,9 @@ void LibuvStreamWrap::Initialize(Local target, Local writeWrapString = FIXED_ONE_BYTE_STRING(env->isolate(), "WriteWrap"); ww->SetClassName(writeWrapString); - AsyncWrap::AddWrapMethods(env, ww); - target->Set(writeWrapString, ww->GetFunction()); + ww->Inherit(AsyncWrap::GetConstructorTemplate(env)); + target->Set(writeWrapString, + ww->GetFunction(env->context()).ToLocalChecked()); env->set_write_wrap_template(ww->InstanceTemplate()); } @@ -96,20 +97,36 @@ LibuvStreamWrap::LibuvStreamWrap(Environment* env, } -void LibuvStreamWrap::AddMethods(Environment* env, - v8::Local target) { - Local get_write_queue_size = - FunctionTemplate::New(env->isolate(), - GetWriteQueueSize, - env->as_external(), - Signature::New(env->isolate(), target)); - target->PrototypeTemplate()->SetAccessorProperty( - env->write_queue_size_string(), - get_write_queue_size, - Local(), - static_cast(ReadOnly | DontDelete)); - env->SetProtoMethod(target, "setBlocking", SetBlocking); - StreamBase::AddMethods(env, target); +Local LibuvStreamWrap::GetConstructorTemplate( + Environment* env) { + Local tmpl = env->libuv_stream_wrap_ctor_template(); + if (tmpl.IsEmpty()) { + tmpl = env->NewFunctionTemplate(nullptr); + tmpl->SetClassName( + FIXED_ONE_BYTE_STRING(env->isolate(), "LibuvStreamWrap")); + tmpl->Inherit(HandleWrap::GetConstructorTemplate(env)); + Local get_write_queue_size = + FunctionTemplate::New(env->isolate(), + GetWriteQueueSize, + env->as_external(), + Signature::New(env->isolate(), tmpl)); + tmpl->PrototypeTemplate()->SetAccessorProperty( + env->write_queue_size_string(), + get_write_queue_size, + Local(), + static_cast(ReadOnly | DontDelete)); + env->SetProtoMethod(tmpl, "setBlocking", SetBlocking); + StreamBase::AddMethods(env, tmpl); + env->set_libuv_stream_wrap_ctor_template(tmpl); + } + return tmpl; +} + + +LibuvStreamWrap* LibuvStreamWrap::From(Environment* env, Local object) { + Local sw = env->libuv_stream_wrap_ctor_template(); + CHECK(!sw.IsEmpty() && sw->HasInstance(object)); + return Unwrap(object); } @@ -170,21 +187,25 @@ void LibuvStreamWrap::OnUvAlloc(size_t suggested_size, uv_buf_t* buf) { -template +template static Local AcceptHandle(Environment* env, LibuvStreamWrap* parent) { + static_assert(std::is_base_of::value || + std::is_base_of::value, + "Can only accept stream handles"); + EscapableHandleScope scope(env->isolate()); Local wrap_obj; - UVType* handle; wrap_obj = WrapType::Instantiate(env, parent, WrapType::SOCKET); if (wrap_obj.IsEmpty()) return Local(); - WrapType* wrap; - ASSIGN_OR_RETURN_UNWRAP(&wrap, wrap_obj, Local()); - handle = wrap->UVHandle(); + HandleWrap* wrap = Unwrap(wrap_obj); + CHECK_NOT_NULL(wrap); + uv_stream_t* stream = reinterpret_cast(wrap->GetHandle()); + CHECK_NOT_NULL(stream); - if (uv_accept(parent->stream(), reinterpret_cast(handle))) + if (uv_accept(parent->stream(), stream)) ABORT(); return scope.Escape(wrap_obj); @@ -215,11 +236,11 @@ void LibuvStreamWrap::OnUvRead(ssize_t nread, const uv_buf_t* buf) { Local pending_obj; if (type == UV_TCP) { - pending_obj = AcceptHandle(env(), this); + pending_obj = AcceptHandle(env(), this); } else if (type == UV_NAMED_PIPE) { - pending_obj = AcceptHandle(env(), this); + pending_obj = AcceptHandle(env(), this); } else if (type == UV_UDP) { - pending_obj = AcceptHandle(env(), this); + pending_obj = AcceptHandle(env(), this); } else { CHECK_EQ(type, UV_UNKNOWN_HANDLE); } diff --git a/src/stream_wrap.h b/src/stream_wrap.h index 487a40b7ffc7f9..98f0ca4ac4fb67 100644 --- a/src/stream_wrap.h +++ b/src/stream_wrap.h @@ -76,6 +76,8 @@ class LibuvStreamWrap : public HandleWrap, public StreamBase { ShutdownWrap* CreateShutdownWrap(v8::Local object) override; WriteWrap* CreateWriteWrap(v8::Local object) override; + static LibuvStreamWrap* From(Environment* env, v8::Local object); + protected: LibuvStreamWrap(Environment* env, v8::Local object, @@ -84,8 +86,8 @@ class LibuvStreamWrap : public HandleWrap, public StreamBase { AsyncWrap* GetAsyncWrap() override; - static void AddMethods(Environment* env, - v8::Local target); + static v8::Local GetConstructorTemplate( + Environment* env); protected: inline void set_fd(int fd) { diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc index 386f84bd33f407..a07ba2d61231f4 100644 --- a/src/tcp_wrap.cc +++ b/src/tcp_wrap.cc @@ -60,7 +60,9 @@ Local TCPWrap::Instantiate(Environment* env, EscapableHandleScope handle_scope(env->isolate()); AsyncHooks::DefaultTriggerAsyncIdScope trigger_scope(parent); CHECK_EQ(env->tcp_constructor_template().IsEmpty(), false); - Local constructor = env->tcp_constructor_template()->GetFunction(); + Local constructor = env->tcp_constructor_template() + ->GetFunction(env->context()) + .ToLocalChecked(); CHECK_EQ(constructor.IsEmpty(), false); Local type_value = Int32::New(env->isolate(), type); Local instance = @@ -86,9 +88,7 @@ void TCPWrap::Initialize(Local target, t->InstanceTemplate()->Set(env->onread_string(), Null(env->isolate())); t->InstanceTemplate()->Set(env->onconnection_string(), Null(env->isolate())); - AsyncWrap::AddWrapMethods(env, t, AsyncWrap::kFlagHasReset); - HandleWrap::AddWrapMethods(env, t); - LibuvStreamWrap::AddMethods(env, t); + t->Inherit(LibuvStreamWrap::GetConstructorTemplate(env)); env->SetProtoMethod(t, "open", Open); env->SetProtoMethod(t, "bind", Bind); @@ -107,17 +107,17 @@ void TCPWrap::Initialize(Local target, env->SetProtoMethod(t, "setSimultaneousAccepts", SetSimultaneousAccepts); #endif - target->Set(tcpString, t->GetFunction()); + target->Set(tcpString, t->GetFunction(env->context()).ToLocalChecked()); env->set_tcp_constructor_template(t); // Create FunctionTemplate for TCPConnectWrap. Local cwt = BaseObject::MakeLazilyInitializedJSTemplate(env); - AsyncWrap::AddWrapMethods(env, cwt); + cwt->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local wrapString = FIXED_ONE_BYTE_STRING(env->isolate(), "TCPConnectWrap"); cwt->SetClassName(wrapString); - target->Set(wrapString, cwt->GetFunction()); + target->Set(wrapString, cwt->GetFunction(env->context()).ToLocalChecked()); // Define constants Local constants = Object::New(env->isolate()); diff --git a/src/tcp_wrap.h b/src/tcp_wrap.h index 829c1b22bf3aec..90c81bcae6fd6f 100644 --- a/src/tcp_wrap.h +++ b/src/tcp_wrap.h @@ -44,10 +44,8 @@ class TCPWrap : public ConnectionWrap { v8::Local unused, v8::Local context); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - + SET_NO_MEMORY_INFO() + SET_SELF_SIZE(TCPWrap) std::string MemoryInfoName() const override { switch (provider_type()) { case ProviderType::PROVIDER_TCPWRAP: diff --git a/src/timer_wrap.cc b/src/timer_wrap.cc index e02ea332ab0a86..4e5a9b4e83ea86 100644 --- a/src/timer_wrap.cc +++ b/src/timer_wrap.cc @@ -50,14 +50,11 @@ class TimerWrap : public HandleWrap { Environment* env = Environment::GetCurrent(context); Local constructor = env->NewFunctionTemplate(New); Local timerString = FIXED_ONE_BYTE_STRING(env->isolate(), "Timer"); + constructor->Inherit(HandleWrap::GetConstructorTemplate(env)); constructor->InstanceTemplate()->SetInternalFieldCount(1); constructor->SetClassName(timerString); env->SetTemplateMethod(constructor, "now", Now); - - AsyncWrap::AddWrapMethods(env, constructor); - HandleWrap::AddWrapMethods(env, constructor); - env->SetProtoMethod(constructor, "start", Start); env->SetProtoMethod(constructor, "stop", Stop); @@ -69,9 +66,9 @@ class TimerWrap : public HandleWrap { ->GetFunction(env->context()).ToLocalChecked()).FromJust(); } - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(TimerWrap) + SET_SELF_SIZE(TimerWrap) private: static void SetupTimers(const FunctionCallbackInfo& args) { diff --git a/src/tls_wrap.cc b/src/tls_wrap.cc index eb40d856fdab4b..6577ffd3ec2080 100644 --- a/src/tls_wrap.cc +++ b/src/tls_wrap.cc @@ -861,7 +861,6 @@ void TLSWrap::GetWriteQueueSize(const FunctionCallbackInfo& info) { void TLSWrap::MemoryInfo(MemoryTracker* tracker) const { - tracker->TrackThis(this); tracker->TrackField("error", error_); tracker->TrackField("pending_cleartext_input", pending_cleartext_input_); if (enc_in_ != nullptr) @@ -894,7 +893,7 @@ void TLSWrap::Initialize(Local target, Local(), static_cast(ReadOnly | DontDelete)); - AsyncWrap::AddWrapMethods(env, t, AsyncWrap::kFlagHasReset); + t->Inherit(AsyncWrap::GetConstructorTemplate(env)); env->SetProtoMethod(t, "receive", Receive); env->SetProtoMethod(t, "start", Start); env->SetProtoMethod(t, "setVerifyMode", SetVerifyMode); @@ -908,9 +907,10 @@ void TLSWrap::Initialize(Local target, env->SetProtoMethod(t, "getServername", GetServername); env->SetProtoMethod(t, "setServername", SetServername); - env->set_tls_wrap_constructor_function(t->GetFunction()); + env->set_tls_wrap_constructor_function( + t->GetFunction(env->context()).ToLocalChecked()); - target->Set(tlsWrapString, t->GetFunction()); + target->Set(tlsWrapString, t->GetFunction(env->context()).ToLocalChecked()); } } // namespace node diff --git a/src/tls_wrap.h b/src/tls_wrap.h index aea8568b11b51c..0e265764822f29 100644 --- a/src/tls_wrap.h +++ b/src/tls_wrap.h @@ -78,7 +78,8 @@ class TLSWrap : public AsyncWrap, void MemoryInfo(MemoryTracker* tracker) const override; - ADD_MEMORY_INFO_NAME(TLSWrap) + SET_MEMORY_INFO_NAME(TLSWrap) + SET_SELF_SIZE(TLSWrap) protected: inline StreamBase* underlying_stream() { diff --git a/src/tracing/node_trace_writer.cc b/src/tracing/node_trace_writer.cc index a0382e587b3ad7..1d06c942332fcd 100644 --- a/src/tracing/node_trace_writer.cc +++ b/src/tracing/node_trace_writer.cc @@ -49,10 +49,8 @@ void NodeTraceWriter::WriteSuffix() { NodeTraceWriter::~NodeTraceWriter() { WriteSuffix(); uv_fs_t req; - int err; if (fd_ != -1) { - err = uv_fs_close(nullptr, &req, fd_, nullptr); - CHECK_EQ(err, 0); + CHECK_EQ(0, uv_fs_close(nullptr, &req, fd_, nullptr)); uv_fs_req_cleanup(&req); } uv_async_send(&exit_signal_); diff --git a/src/tty_wrap.cc b/src/tty_wrap.cc index 15ee1e9bd27afb..516fa1ec1ff4ed 100644 --- a/src/tty_wrap.cc +++ b/src/tty_wrap.cc @@ -24,7 +24,6 @@ #include "env-inl.h" #include "handle_wrap.h" #include "node_buffer.h" -#include "node_wrap.h" #include "stream_base-inl.h" #include "stream_wrap.h" #include "util-inl.h" @@ -52,10 +51,7 @@ void TTYWrap::Initialize(Local target, Local t = env->NewFunctionTemplate(New); t->SetClassName(ttyString); t->InstanceTemplate()->SetInternalFieldCount(1); - - AsyncWrap::AddWrapMethods(env, t); - HandleWrap::AddWrapMethods(env, t); - LibuvStreamWrap::AddMethods(env, t); + t->Inherit(LibuvStreamWrap::GetConstructorTemplate(env)); env->SetProtoMethodNoSideEffect(t, "getWindowSize", TTYWrap::GetWindowSize); env->SetProtoMethod(t, "setRawMode", SetRawMode); @@ -63,7 +59,7 @@ void TTYWrap::Initialize(Local target, env->SetMethodNoSideEffect(target, "isTTY", IsTTY); env->SetMethodNoSideEffect(target, "guessHandleType", GuessHandleType); - target->Set(ttyString, t->GetFunction()); + target->Set(ttyString, t->GetFunction(env->context()).ToLocalChecked()); env->set_tty_constructor_template(t); } diff --git a/src/tty_wrap.h b/src/tty_wrap.h index 45357cfa4637cf..ad5f364134e3e2 100644 --- a/src/tty_wrap.h +++ b/src/tty_wrap.h @@ -38,11 +38,9 @@ class TTYWrap : public LibuvStreamWrap { uv_tty_t* UVHandle(); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(TTYWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(TTYWrap) + SET_SELF_SIZE(TTYWrap) private: TTYWrap(Environment* env, diff --git a/src/udp_wrap.cc b/src/udp_wrap.cc index 724f98c0cc94af..28fa51f1c639d2 100644 --- a/src/udp_wrap.cc +++ b/src/udp_wrap.cc @@ -56,11 +56,9 @@ class SendWrap : public ReqWrap { inline bool have_callback() const; size_t msg_size; - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(SendWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(SendWrap) + SET_SELF_SIZE(SendWrap) private: const bool have_callback_; @@ -134,20 +132,21 @@ void UDPWrap::Initialize(Local target, env->SetProtoMethod(t, "setTTL", SetTTL); env->SetProtoMethod(t, "bufferSize", BufferSize); - AsyncWrap::AddWrapMethods(env, t); - HandleWrap::AddWrapMethods(env, t); + t->Inherit(HandleWrap::GetConstructorTemplate(env)); - target->Set(udpString, t->GetFunction()); - env->set_udp_constructor_function(t->GetFunction()); + target->Set(udpString, t->GetFunction(env->context()).ToLocalChecked()); + env->set_udp_constructor_function( + t->GetFunction(env->context()).ToLocalChecked()); // Create FunctionTemplate for SendWrap Local swt = BaseObject::MakeLazilyInitializedJSTemplate(env); - AsyncWrap::AddWrapMethods(env, swt); + swt->Inherit(AsyncWrap::GetConstructorTemplate(env)); Local sendWrapString = FIXED_ONE_BYTE_STRING(env->isolate(), "SendWrap"); swt->SetClassName(sendWrapString); - target->Set(sendWrapString, swt->GetFunction()); + target->Set(sendWrapString, + swt->GetFunction(env->context()).ToLocalChecked()); } diff --git a/src/udp_wrap.h b/src/udp_wrap.h index ca048f5aef98af..c1261fdb3945e4 100644 --- a/src/udp_wrap.h +++ b/src/udp_wrap.h @@ -64,11 +64,9 @@ class UDPWrap: public HandleWrap { SocketType type); uv_udp_t* UVHandle(); - void MemoryInfo(MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } - - ADD_MEMORY_INFO_NAME(UDPWrap) + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(UDPWrap) + SET_SELF_SIZE(UDPWrap) private: typedef uv_udp_t HandleType; diff --git a/src/util.h b/src/util.h index 4036383dee92de..91d61f121ba48c 100644 --- a/src/util.h +++ b/src/util.h @@ -90,10 +90,8 @@ NO_RETURN void Assert(const char* const (*args)[4]); void DumpBacktrace(FILE* fp); #define DISALLOW_COPY_AND_ASSIGN(TypeName) \ - void operator=(const TypeName&) = delete; \ - void operator=(TypeName&&) = delete; \ TypeName(const TypeName&) = delete; \ - TypeName(TypeName&&) = delete + TypeName& operator=(const TypeName&) = delete // Windows 8+ does not like abort() in Release mode #ifdef _WIN32 diff --git a/src/uv.cc b/src/uv.cc index 576c2fc7734d92..efcb8056124318 100644 --- a/src/uv.cc +++ b/src/uv.cc @@ -57,7 +57,9 @@ void Initialize(Local target, Environment* env = Environment::GetCurrent(context); Isolate* isolate = env->isolate(); target->Set(FIXED_ONE_BYTE_STRING(isolate, "errname"), - env->NewFunctionTemplate(ErrName)->GetFunction()); + env->NewFunctionTemplate(ErrName) + ->GetFunction(env->context()) + .ToLocalChecked()); #define V(name, _) NODE_DEFINE_CONSTANT(target, UV_##name); UV_ERRNO_MAP(V) diff --git a/test/addons/heap-profiler/binding.cc b/test/addons/heap-profiler/binding.cc index 09feefa66902aa..861fb5a80c4651 100644 --- a/test/addons/heap-profiler/binding.cc +++ b/test/addons/heap-profiler/binding.cc @@ -18,8 +18,11 @@ inline void Test(const v8::FunctionCallbackInfo& args) { inline void Initialize(v8::Local binding) { v8::Isolate* const isolate = binding->GetIsolate(); + v8::Local context = isolate->GetCurrentContext(); binding->Set(v8::String::NewFromUtf8(isolate, "test"), - v8::FunctionTemplate::New(isolate, Test)->GetFunction()); + v8::FunctionTemplate::New(isolate, Test) + ->GetFunction(context) + .ToLocalChecked()); } NODE_MODULE(NODE_GYP_MODULE_NAME, Initialize) diff --git a/test/addons/new-target/binding.cc b/test/addons/new-target/binding.cc index 3ae2aca7c2ef95..21b932ae018dfd 100644 --- a/test/addons/new-target/binding.cc +++ b/test/addons/new-target/binding.cc @@ -11,8 +11,11 @@ inline void NewClass(const v8::FunctionCallbackInfo& args) { inline void Initialize(v8::Local binding) { auto isolate = binding->GetIsolate(); + auto context = isolate->GetCurrentContext(); binding->Set(v8::String::NewFromUtf8(isolate, "Class"), - v8::FunctionTemplate::New(isolate, NewClass)->GetFunction()); + v8::FunctionTemplate::New(isolate, NewClass) + ->GetFunction(context) + .ToLocalChecked()); } NODE_MODULE(NODE_GYP_MODULE_NAME, Initialize) diff --git a/test/addons/openssl-binding/binding.cc b/test/addons/openssl-binding/binding.cc index fa40b3346a7a39..bb00f1e176d7ce 100644 --- a/test/addons/openssl-binding/binding.cc +++ b/test/addons/openssl-binding/binding.cc @@ -23,7 +23,9 @@ inline void Initialize(v8::Local exports, v8::Local context) { auto isolate = context->GetIsolate(); auto key = v8::String::NewFromUtf8(isolate, "randomBytes"); - auto value = v8::FunctionTemplate::New(isolate, RandomBytes)->GetFunction(); + auto value = v8::FunctionTemplate::New(isolate, RandomBytes) + ->GetFunction(context) + .ToLocalChecked(); assert(exports->Set(context, key, value).IsJust()); } diff --git a/test/addons/zlib-binding/binding.cc b/test/addons/zlib-binding/binding.cc index a9a8c14306c486..1d0af911115359 100644 --- a/test/addons/zlib-binding/binding.cc +++ b/test/addons/zlib-binding/binding.cc @@ -46,7 +46,9 @@ inline void Initialize(v8::Local exports, v8::Local context) { auto isolate = context->GetIsolate(); auto key = v8::String::NewFromUtf8(isolate, "compressBytes"); - auto value = v8::FunctionTemplate::New(isolate, CompressBytes)->GetFunction(); + auto value = v8::FunctionTemplate::New(isolate, CompressBytes) + ->GetFunction(context) + .ToLocalChecked(); assert(exports->Set(context, key, value).IsJust()); } diff --git a/test/async-hooks/test-embedder.api.async-resource.improper-unwind.js b/test/async-hooks/test-embedder.api.async-resource.improper-unwind.js index a552b46e1f3116..cb9e338905c386 100644 --- a/test/async-hooks/test-embedder.api.async-resource.improper-unwind.js +++ b/test/async-hooks/test-embedder.api.async-resource.improper-unwind.js @@ -19,7 +19,7 @@ if (process.argv[2] === 'child') { // Therefore the 'after' of event2 needs to occur before the // 'after' of event 1. // The first test of the two below follows that rule, - // the second one doesnt. + // the second one doesn't. const event1 = new AsyncResource('event1', async_hooks.executionAsyncId()); const event2 = new AsyncResource('event2', async_hooks.executionAsyncId()); diff --git a/test/cctest/test_node_postmortem_metadata.cc b/test/cctest/test_node_postmortem_metadata.cc index 6f5db0fdf9272b..bb56fbc2047f43 100644 --- a/test/cctest/test_node_postmortem_metadata.cc +++ b/test/cctest/test_node_postmortem_metadata.cc @@ -34,9 +34,9 @@ class DebugSymbolsTest : public EnvironmentTestFixture {}; class TestHandleWrap : public node::HandleWrap { public: - void MemoryInfo(node::MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(TestHandleWrap) + SET_SELF_SIZE(TestHandleWrap) TestHandleWrap(node::Environment* env, v8::Local object, @@ -50,9 +50,9 @@ class TestHandleWrap : public node::HandleWrap { class TestReqWrap : public node::ReqWrap { public: - void MemoryInfo(node::MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(TestReqWrap) + SET_SELF_SIZE(TestReqWrap) TestReqWrap(node::Environment* env, v8::Local object) : node::ReqWrap(env, @@ -76,9 +76,9 @@ class DummyBaseObject : public node::BaseObject { DummyBaseObject(node::Environment* env, v8::Local obj) : BaseObject(env, obj) {} - void MemoryInfo(node::MemoryTracker* tracker) const override { - tracker->TrackThis(this); - } + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(DummyBaseObject) + SET_SELF_SIZE(DummyBaseObject) }; TEST_F(DebugSymbolsTest, BaseObjectPersistentHandle) { @@ -134,8 +134,10 @@ TEST_F(DebugSymbolsTest, HandleWrapList) { auto obj_template = v8::FunctionTemplate::New(isolate_); obj_template->InstanceTemplate()->SetInternalFieldCount(1); - v8::Local object = - obj_template->GetFunction()->NewInstance(env.context()).ToLocalChecked(); + v8::Local object = obj_template->GetFunction(env.context()) + .ToLocalChecked() + ->NewInstance(env.context()) + .ToLocalChecked(); TestHandleWrap obj(*env, object, &handle); auto queue = reinterpret_cast((*env)->handle_wrap_queue()); @@ -161,8 +163,10 @@ TEST_F(DebugSymbolsTest, ReqWrapList) { auto obj_template = v8::FunctionTemplate::New(isolate_); obj_template->InstanceTemplate()->SetInternalFieldCount(1); - v8::Local object = - obj_template->GetFunction()->NewInstance(env.context()).ToLocalChecked(); + v8::Local object = obj_template->GetFunction(env.context()) + .ToLocalChecked() + ->NewInstance(env.context()) + .ToLocalChecked(); TestReqWrap obj(*env, object); // NOTE (mmarchini): Workaround to fix failing tests on ARM64 machines with diff --git a/test/cctest/test_url.cc b/test/cctest/test_url.cc index 088634152a79c1..ddef534b57485f 100644 --- a/test/cctest/test_url.cc +++ b/test/cctest/test_url.cc @@ -109,3 +109,32 @@ TEST_F(URLTest, ToFilePath) { #undef T } + +TEST_F(URLTest, FromFilePath) { + URL file_url; +#ifdef _WIN32 + file_url = URL::FromFilePath("C:\\Program Files\\"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/C:/Program%20Files/", file_url.path()); + + file_url = URL::FromFilePath("C:\\a\\b\\c"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/C:/a/b/c", file_url.path()); + + file_url = URL::FromFilePath("b:\\a\\%%.js"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/b:/a/%25%25.js", file_url.path()); +#else + file_url = URL::FromFilePath("/"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/", file_url.path()); + + file_url = URL::FromFilePath("/a/b/c"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/a/b/c", file_url.path()); + + file_url = URL::FromFilePath("/a/%%.js"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/a/%25%25.js", file_url.path()); +#endif +} diff --git a/test/common/README.md b/test/common/README.md index 28d9bd04f0a8b6..c3f2c5f6b8a7f1 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -158,11 +158,6 @@ Indicates `hasCrypto` and `crypto` with fips. Indicates if [internationalization] is supported. -### hasSmallICU -* [<boolean>] - -Indicates `hasIntl` and `small-icu` are supported. - ### hasIPv6 * [<boolean>] @@ -224,11 +219,6 @@ Platform check for Windows. Platform check for Windows 32-bit on Windows 64-bit. -### leakedGlobals() -* return [<Array>] - -Indicates whether any globals are not on the `knownGlobals` list. - ### localhostIPv4 * [<string>] @@ -361,6 +351,11 @@ was disabled at compile time. Skip the rest of the tests in the current file when the Node.js executable was compiled with a pointer size smaller than 64 bits. +### skipIfWorker() + +Skip the rest of the tests in the current file when not running on a main +thread. + ## ArrayStream Module The `ArrayStream` module provides a simple `Stream` that pushes elements from diff --git a/test/common/heap.js b/test/common/heap.js index bd8b588b4b0e1b..2fe99bf67eb643 100644 --- a/test/common/heap.js +++ b/test/common/heap.js @@ -12,71 +12,110 @@ try { } const { createJSHeapDump, buildEmbedderGraph } = internalTestHeap; +function inspectNode(snapshot) { + return util.inspect(snapshot, { depth: 4 }); +} + +function isEdge(edge, { node_name, edge_name }) { + // For ABI compatibility, we did not backport the virtual function + // AddEdge() with a name as last argument back to v10.x, so edge_name. + // is ignored. + // if (edge.name !== edge_name) { + // return false; + // } + // From our internal embedded graph + if (edge.to.value) { + if (edge.to.value.constructor.name !== node_name) { + return false; + } + } else if (edge.to.name !== node_name) { + return false; + } + return true; +} + class State { constructor() { this.snapshot = createJSHeapDump(); this.embedderGraph = buildEmbedderGraph(); } - validateSnapshotNodes(name, expected, { loose = false } = {}) { - const snapshot = this.snapshot.filter( - (node) => node.name === 'Node / ' + name && node.type !== 'string'); - if (loose) - assert(snapshot.length >= expected.length); - else - assert.strictEqual(snapshot.length, expected.length); - for (const expectedNode of expected) { - if (expectedNode.children) { - for (const expectedChild of expectedNode.children) { - const check = typeof expectedChild === 'function' ? - expectedChild : - (node) => [expectedChild.name, 'Node / ' + expectedChild.name] - .includes(node.name); + // Validate the v8 heap snapshot + validateSnapshot(rootName, expected, { loose = false } = {}) { + const rootNodes = this.snapshot.filter( + (node) => node.name === rootName && node.type !== 'string'); + if (loose) { + assert(rootNodes.length >= expected.length, + `Expect to find at least ${expected.length} '${rootName}', ` + + `found ${rootNodes.length}`); + } else { + assert.strictEqual( + rootNodes.length, expected.length, + `Expect to find ${expected.length} '${rootName}', ` + + `found ${rootNodes.length}`); + } - const hasChild = snapshot.some((node) => { - return node.outgoingEdges.map((edge) => edge.toNode).some(check); - }); + for (const expectation of expected) { + if (expectation.children) { + for (const expectedEdge of expectation.children) { + const check = typeof expectedEdge === 'function' ? expectedEdge : + (edge) => (isEdge(edge, expectedEdge)); + const hasChild = rootNodes.some( + (node) => node.outgoingEdges.some(check) + ); // Don't use assert with a custom message here. Otherwise the // inspection in the message is done eagerly and wastes a lot of CPU // time. if (!hasChild) { throw new Error( 'expected to find child ' + - `${util.inspect(expectedChild)} in ${util.inspect(snapshot)}`); + `${util.inspect(expectedEdge)} in ${inspectNode(rootNodes)}`); } } } } + } - const graph = this.embedderGraph.filter((node) => node.name === name); - if (loose) - assert(graph.length >= expected.length); - else - assert.strictEqual(graph.length, expected.length); - for (const expectedNode of expected) { - if (expectedNode.edges) { - for (const expectedChild of expectedNode.children) { - const check = typeof expectedChild === 'function' ? - expectedChild : (node) => { - return node.name === expectedChild.name || - (node.value && - node.value.constructor && - node.value.constructor.name === expectedChild.name); - }; - + // Validate our internal embedded graph representation + validateGraph(rootName, expected, { loose = false } = {}) { + const rootNodes = this.embedderGraph.filter( + (node) => node.name === rootName + ); + if (loose) { + assert(rootNodes.length >= expected.length, + `Expect to find at least ${expected.length} '${rootName}', ` + + `found ${rootNodes.length}`); + } else { + assert.strictEqual( + rootNodes.length, expected.length, + `Expect to find ${expected.length} '${rootName}', ` + + `found ${rootNodes.length}`); + } + for (const expectation of expected) { + if (expectation.children) { + for (const expectedEdge of expectation.children) { + const check = typeof expectedEdge === 'function' ? expectedEdge : + (edge) => (isEdge(edge, expectedEdge)); // Don't use assert with a custom message here. Otherwise the // inspection in the message is done eagerly and wastes a lot of CPU // time. - const hasChild = graph.some((node) => node.edges.some(check)); + const hasChild = rootNodes.some( + (node) => node.edges.some(check) + ); if (!hasChild) { throw new Error( 'expected to find child ' + - `${util.inspect(expectedChild)} in ${util.inspect(snapshot)}`); + `${util.inspect(expectedEdge)} in ${inspectNode(rootNodes)}`); } } } } } + + validateSnapshotNodes(rootName, expected, { loose = false } = {}) { + this.validateSnapshot(rootName, expected, { loose }); + this.validateGraph(rootName, expected, { loose }); + } } function recordState() { diff --git a/test/common/index.js b/test/common/index.js index 0da37360bc4aa1..f3f1bbf2f4607e 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -33,8 +33,7 @@ const { fixturesDir } = require('./fixtures'); const tmpdir = require('./tmpdir'); const { bits, - hasIntl, - hasSmallICU + hasIntl } = process.binding('config'); const noop = () => {}; @@ -613,10 +612,6 @@ function skipIfInspectorDisabled() { if (process.config.variables.v8_enable_inspector === 0) { skip('V8 inspector is disabled'); } - if (!isMainThread) { - // TODO(addaleax): Fix me. - skip('V8 inspector is not available in Workers'); - } } function skipIf32Bits() { @@ -625,6 +620,12 @@ function skipIf32Bits() { } } +function skipIfWorker() { + if (!isMainThread) { + skip('This test only works on a main thread'); + } +} + function getArrayBufferViews(buf) { const { buffer, byteOffset, byteLength } = buf; @@ -712,7 +713,6 @@ module.exports = { hasIntl, hasCrypto, hasIPv6, - hasSmallICU, hasMultiLocalhost, isAIX, isAlive, @@ -725,7 +725,6 @@ module.exports = { isSunOS, isWindows, isWOW64, - leakedGlobals, localIPv6Hosts, mustCall, mustCallAsync, @@ -743,6 +742,7 @@ module.exports = { skipIf32Bits, skipIfEslintMissing, skipIfInspectorDisabled, + skipIfWorker, get localhostIPv6() { return '::1'; }, diff --git a/test/common/index.mjs b/test/common/index.mjs index e0842011c663c9..832f68a9ee0d3e 100644 --- a/test/common/index.mjs +++ b/test/common/index.mjs @@ -25,7 +25,6 @@ const { ddCommand, platformTimeout, allowGlobals, - leakedGlobals, mustCall, mustCallAtLeast, mustCallAsync, @@ -75,7 +74,6 @@ export { ddCommand, platformTimeout, allowGlobals, - leakedGlobals, mustCall, mustCallAtLeast, mustCallAsync, diff --git a/test/common/inspector-helper.js b/test/common/inspector-helper.js index 84393c4281fa88..ae8fd9732d34f5 100644 --- a/test/common/inspector-helper.js +++ b/test/common/inspector-helper.js @@ -6,7 +6,7 @@ const http = require('http'); const fixtures = require('../common/fixtures'); const { spawn } = require('child_process'); const { parse: parseURL } = require('url'); -const { getURLFromFilePath } = require('internal/url'); +const { pathToFileURL } = require('internal/url'); const { EventEmitter } = require('events'); const _MAINSCRIPT = fixtures.path('loop.js'); @@ -174,7 +174,7 @@ class InspectorSession { const { scriptId, url } = message.params; this._scriptsIdsByUrl.set(scriptId, url); const fileUrl = url.startsWith('file:') ? - url : getURLFromFilePath(url).toString(); + url : pathToFileURL(url).toString(); if (fileUrl === this.scriptURL().toString()) { this.mainScriptId = scriptId; } @@ -309,7 +309,7 @@ class InspectorSession { } scriptURL() { - return getURLFromFilePath(this.scriptPath()); + return pathToFileURL(this.scriptPath()); } } diff --git a/test/doctool/test-doctool-html.js b/test/doctool/test-doctool-html.js index 2fcb8315afd325..78f48ae54e8f26 100644 --- a/test/doctool/test-doctool-html.js +++ b/test/doctool/test-doctool-html.js @@ -22,7 +22,7 @@ const remark2rehype = require('remark-rehype'); const raw = require('rehype-raw'); const htmlStringify = require('rehype-stringify'); -function toHTML({ input, filename, nodeVersion, analytics }, cb) { +function toHTML({ input, filename, nodeVersion }, cb) { const content = unified() .use(markdown) .use(html.firstHeader) @@ -35,7 +35,7 @@ function toHTML({ input, filename, nodeVersion, analytics }, cb) { .processSync(input); html.toHTML( - { input, content, filename, nodeVersion, analytics }, + { input, content, filename, nodeVersion }, cb ); } @@ -94,16 +94,14 @@ const testData = [ file: fixtures.path('sample_document.md'), html: '
  1. fish
  2. fish
' + '
  • Red fish
  • Blue fish
', - analyticsId: 'UA-67020396-1' }, ]; const spaces = /\s/g; -testData.forEach(({ file, html, analyticsId }) => { +testData.forEach(({ file, html }) => { // Normalize expected data by stripping whitespace. const expected = html.replace(spaces, ''); - const includeAnalytics = typeof analyticsId !== 'undefined'; readFile(file, 'utf8', common.mustCall((err, input) => { assert.ifError(err); @@ -112,7 +110,6 @@ testData.forEach(({ file, html, analyticsId }) => { input: input, filename: 'foo', nodeVersion: process.version, - analytics: analyticsId, }, common.mustCall((err, output) => { assert.ifError(err); @@ -121,18 +118,6 @@ testData.forEach(({ file, html, analyticsId }) => { // Assert that the input stripped of all whitespace contains the // expected markup. assert(actual.includes(expected)); - - // Testing the insertion of Google Analytics script when - // an analytics id is provided. Should not be present by default. - const scriptDomain = 'google-analytics.com'; - if (includeAnalytics) { - assert(actual.includes(scriptDomain), - `Google Analytics script was not present in "${actual}"`); - } else { - assert.strictEqual(actual.includes(scriptDomain), false, - 'Google Analytics script was present in ' + - `"${actual}"`); - } }) ); })); diff --git a/test/fixtures/guess-hash-seed.js b/test/fixtures/guess-hash-seed.js index 18a6f5124dc1d8..ffcfd75aac54a3 100644 --- a/test/fixtures/guess-hash-seed.js +++ b/test/fixtures/guess-hash-seed.js @@ -1,4 +1,3 @@ -/* eslint-disable required-modules */ 'use strict'; function min(arr) { let res = arr[0]; diff --git a/test/fixtures/inspector-global-function.js b/test/fixtures/inspector-global-function.js index d72bacd7ca9b36..6155ae5298cdef 100644 --- a/test/fixtures/inspector-global-function.js +++ b/test/fixtures/inspector-global-function.js @@ -1,4 +1,4 @@ -'use strict'; // eslint-disable-line required-modules +'use strict'; let invocations = 0; const interval = setInterval(() => {}, 1000); diff --git a/test/fixtures/leakedGlobal.js b/test/fixtures/leakedGlobal.js new file mode 100644 index 00000000000000..6f4b1b992e250b --- /dev/null +++ b/test/fixtures/leakedGlobal.js @@ -0,0 +1,5 @@ +'use strict'; + +require('../common'); + +global.gc = 42; // intentionally leak a global diff --git a/test/fixtures/not-main-module.js b/test/fixtures/not-main-module.js index f0bae3db15721d..247868101f981e 100644 --- a/test/fixtures/not-main-module.js +++ b/test/fixtures/not-main-module.js @@ -20,6 +20,5 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. const assert = require('assert'); -assert.notStrictEqual(module, require.main, 'require.main should not == module'); -assert.notStrictEqual(module, process.mainModule, - 'process.mainModule should not === module'); +assert.notStrictEqual(module, require.main); +assert.notStrictEqual(module, process.mainModule); diff --git a/test/parallel/test-microtask-queue-run-immediate-domain.js b/test/fixtures/packages/missing-main/index.js similarity index 54% rename from test/parallel/test-microtask-queue-run-immediate-domain.js rename to test/fixtures/packages/missing-main/index.js index 60b17bc38c2670..c361a6dc8d1950 100644 --- a/test/parallel/test-microtask-queue-run-immediate-domain.js +++ b/test/fixtures/packages/missing-main/index.js @@ -19,48 +19,4 @@ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -'use strict'; -require('../common'); -const assert = require('assert'); - -// Requiring the domain module here changes the function that is used by node to -// call process.nextTick's callbacks to a variant that specifically handles -// domains. We want to test this specific variant in this test, and so even if -// the domain module is not used, this require call is needed and must not be -// removed. -require('domain'); - -function enqueueMicrotask(fn) { - Promise.resolve().then(fn); -} - -let done = 0; - -process.on('exit', function() { - assert.strictEqual(done, 2); -}); - -// no nextTick, microtask -setImmediate(function() { - enqueueMicrotask(function() { - done++; - }); -}); - - -// no nextTick, microtask with nextTick -setImmediate(function() { - let called = false; - - enqueueMicrotask(function() { - process.nextTick(function() { - called = true; - }); - }); - - setImmediate(function() { - if (called) - done++; - }); - -}); +exports.ok = 'ok'; diff --git a/test/fixtures/packages/missing-main/package.json b/test/fixtures/packages/missing-main/package.json new file mode 100644 index 00000000000000..feb846703ff796 --- /dev/null +++ b/test/fixtures/packages/missing-main/package.json @@ -0,0 +1,4 @@ +{ + "name": "missingmain", + "main": "doesnotexist.js" +} diff --git a/test/fixtures/packages/unparseable/package.json b/test/fixtures/packages/unparseable/package.json new file mode 100644 index 00000000000000..2017a68ecc415c --- /dev/null +++ b/test/fixtures/packages/unparseable/package.json @@ -0,0 +1,3 @@ +{ + "main": "therain" "inspain" +} diff --git a/test/fixtures/v8-coverage/worker.js b/test/fixtures/v8-coverage/worker.js new file mode 100644 index 00000000000000..901794e97ac8ab --- /dev/null +++ b/test/fixtures/v8-coverage/worker.js @@ -0,0 +1,5 @@ +'use strict'; +const { Worker } = require('worker_threads'); +const path = require('path'); + +new Worker(path.resolve(__dirname, 'subprocess.js')); diff --git a/test/internet/test-dgram-broadcast-multi-process.js b/test/internet/test-dgram-broadcast-multi-process.js index 606ab818c9d73b..c30059e739b687 100644 --- a/test/internet/test-dgram-broadcast-multi-process.js +++ b/test/internet/test-dgram-broadcast-multi-process.js @@ -146,7 +146,7 @@ if (process.argv[2] !== 'child') { } }); - console.error('[PARENT] %d received %d matching messges.', + console.error('[PARENT] %d received %d matching messages.', worker.pid, count); diff --git a/test/internet/test-dns-lookup.js b/test/internet/test-dns-lookup.js index b84f80735fb866..df5ccf99a56fc3 100644 --- a/test/internet/test-dns-lookup.js +++ b/test/internet/test-dns-lookup.js @@ -1,7 +1,9 @@ 'use strict'; require('../common'); -const dnsPromises = require('dns').promises; +const common = require('../common'); +const dns = require('dns'); +const dnsPromises = dns.promises; const { addresses } = require('../common/internet'); const assert = require('assert'); @@ -28,3 +30,17 @@ assert.rejects( message: `getaddrinfo ENOTFOUND ${addresses.INVALID_HOST}` } ); + +dns.lookup(addresses.INVALID_HOST, { + hints: 0, + family: 0, + all: true +}, common.mustCall((error) => { + assert.strictEqual(error.code, 'ENOTFOUND'); + assert.strictEqual( + error.message, + `getaddrinfo ENOTFOUND ${addresses.INVALID_HOST}` + ); + assert.strictEqual(error.syscall, 'getaddrinfo'); + assert.strictEqual(error.hostname, addresses.INVALID_HOST); +})); diff --git a/test/message/unhandled_promise_trace_warnings.out b/test/message/unhandled_promise_trace_warnings.out index bb51f663823856..d610bb05eb07bc 100644 --- a/test/message/unhandled_promise_trace_warnings.out +++ b/test/message/unhandled_promise_trace_warnings.out @@ -34,6 +34,7 @@ at * (node:*) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 1) at handledRejection (internal/process/promises.js:*) + at handler (internal/process/promises.js:*) at Promise.then * at Promise.catch * at Immediate.setImmediate (*test*message*unhandled_promise_trace_warnings.js:*) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 3ed8e010e38468..b45e4448d97c06 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -5,10 +5,13 @@ prefix parallel # sample-test : PASS,FLAKY [true] # This section applies to all platforms -# https://github.com/nodejs/node/issues/21038 -test-trace-events-fs-sync: PASS,FLAKY +# https://github.com/nodejs/node/issues/23207 +test-net-connect-options-port: PASS,FLAKY [$system==win32] +test-http2-pipe: PASS,FLAKY +test-worker-syntax-error: PASS,FLAKY +test-worker-syntax-error-file: PASS,FLAKY [$system==linux] diff --git a/test/parallel/test-accessor-properties.js b/test/parallel/test-accessor-properties.js index 064ef844c38e6c..0717a02672333e 100644 --- a/test/parallel/test-accessor-properties.js +++ b/test/parallel/test-accessor-properties.js @@ -30,24 +30,26 @@ const UDP = process.binding('udp_wrap').UDP; UDP.prototype.fd; }, TypeError); + const StreamWrapProto = Object.getPrototypeOf(TTY.prototype); + // Should not throw for Object.getOwnPropertyDescriptor assert.strictEqual( - typeof Object.getOwnPropertyDescriptor(TTY.prototype, 'bytesRead'), + typeof Object.getOwnPropertyDescriptor(StreamWrapProto, 'bytesRead'), 'object' ); assert.strictEqual( - typeof Object.getOwnPropertyDescriptor(TTY.prototype, 'fd'), + typeof Object.getOwnPropertyDescriptor(StreamWrapProto, 'fd'), 'object' ); assert.strictEqual( - typeof Object.getOwnPropertyDescriptor(TTY.prototype, '_externalStream'), + typeof Object.getOwnPropertyDescriptor(StreamWrapProto, '_externalStream'), 'object' ); assert.strictEqual( - typeof Object.getOwnPropertyDescriptor(UDP.prototype, 'fd'), + typeof Object.getOwnPropertyDescriptor(StreamWrapProto, 'fd'), 'object' ); } diff --git a/test/parallel/test-assert-builtins-not-read-from-filesystem.js b/test/parallel/test-assert-builtins-not-read-from-filesystem.js index 000798aca267a3..7a713a2ea432c1 100644 --- a/test/parallel/test-assert-builtins-not-read-from-filesystem.js +++ b/test/parallel/test-assert-builtins-not-read-from-filesystem.js @@ -5,24 +5,14 @@ require('../common'); const assert = require('assert'); +const EventEmitter = require('events'); +const e = new EventEmitter(); +e.on('hello', assert); if (process.argv[2] !== 'child') { const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); const { spawnSync } = require('child_process'); - const { output, status, error } = - spawnSync(process.execPath, - ['--expose-internals', process.argv[1], 'child'], - { cwd: tmpdir.path, env: process.env }); - assert.ifError(error); - assert.strictEqual(status, 0, `Exit code: ${status}\n${output}`); -} else { - const EventEmitter = require('events'); - const { errorCache } = require('internal/assert'); - const { writeFileSync } = require('fs'); - const e = new EventEmitter(); - - e.on('hello', assert); let threw = false; try { @@ -30,22 +20,29 @@ if (process.argv[2] !== 'child') { } catch (err) { const frames = err.stack.split('\n'); const [, filename, line, column] = frames[1].match(/\((.+):(\d+):(\d+)\)/); - // Reset the cache to check again - const size = errorCache.size; - errorCache.delete(`${filename}${line - 1}${column - 1}`); - assert.strictEqual(errorCache.size, size - 1); - const data = `${'\n'.repeat(line - 1)}${' '.repeat(column - 1)}` + - 'ok(failed(badly));'; + // Spawn a child process to avoid the error having been cached in the assert + // module's `errorCache` Map. - writeFileSync(filename, data); - assert.throws( - () => e.emit('hello', false), - { - message: 'false == true' - } - ); + const { output, status, error } = + spawnSync(process.execPath, + [process.argv[1], 'child', filename, line, column], + { cwd: tmpdir.path, env: process.env }); + assert.ifError(error); + assert.strictEqual(status, 0, `Exit code: ${status}\n${output}`); threw = true; - } - assert(threw); + assert.ok(threw); +} else { + const { writeFileSync } = require('fs'); + const [, , , filename, line, column] = process.argv; + const data = `${'\n'.repeat(line - 1)}${' '.repeat(column - 1)}` + + 'ok(failed(badly));'; + + writeFileSync(filename, data); + assert.throws( + () => e.emit('hello', false), + { + message: 'false == true' + } + ); } diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index 257c7f5c06ebf7..48224eb6b1deb3 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -285,7 +285,7 @@ testAssertionMessage(/abc/gim, '/abc/gim'); testAssertionMessage(function f() {}, '[Function: f]'); testAssertionMessage(function() {}, '[Function]'); testAssertionMessage({}, '{}'); -testAssertionMessage(circular, '{\n- y: 1,\n- x: [Circular]\n- }'); +testAssertionMessage(circular, '{\n- x: [Circular],\n- y: 1\n- }'); testAssertionMessage({ a: undefined, b: null }, '{\n- a: undefined,\n- b: null\n- }'); testAssertionMessage({ a: NaN, b: Infinity, c: -Infinity }, @@ -593,8 +593,8 @@ assert.throws( '\n' + '- {}\n' + '+ {\n' + - "+ loop: 'forever',\n" + - '+ [Symbol(util.inspect.custom)]: [Function]\n' + + '+ [Symbol(nodejs.util.inspect.custom)]: [Function],\n' + + "+ loop: 'forever'\n" + '+ }' }); @@ -858,9 +858,12 @@ common.expectsError( code: 'ERR_ASSERTION', name: 'AssertionError [ERR_ASSERTION]', message: `${start}\n${actExp}\n\n` + - " Comparison {\n name: 'TypeError',\n" + - " message: 'Wrong value',\n- code: 404\n" + - '+ code: 404,\n+ foo: undefined\n }' + ' Comparison {\n' + + ' code: 404,\n' + + '+ foo: undefined,\n' + + " message: 'Wrong value',\n" + + " name: 'TypeError'\n" + + ' }' } ); @@ -872,9 +875,13 @@ common.expectsError( code: 'ERR_ASSERTION', name: 'AssertionError [ERR_ASSERTION]', message: `${start}\n${actExp}\n\n` + - " Comparison {\n name: 'TypeError',\n" + - " message: 'Wrong value',\n- code: 404\n" + - "+ code: '404',\n+ foo: undefined\n }" + ' Comparison {\n' + + '- code: 404,\n' + + "+ code: '404',\n" + + '+ foo: undefined,\n' + + " message: 'Wrong value',\n" + + " name: 'TypeError'\n" + + ' }' } ); @@ -904,8 +911,11 @@ common.expectsError( name: 'AssertionError [ERR_ASSERTION]', code: 'ERR_ASSERTION', message: `${start}\n${actExp}\n\n` + - " Comparison {\n- name: 'TypeError',\n+ name: 'Error'," + - "\n message: 'e'\n }" + ' Comparison {\n' + + " message: 'e',\n" + + "- name: 'TypeError'\n" + + "+ name: 'Error'\n" + + ' }' } ); assert.throws( @@ -915,8 +925,11 @@ common.expectsError( code: 'ERR_ASSERTION', generatedMessage: true, message: `${start}\n${actExp}\n\n` + - " Comparison {\n name: 'Error',\n- message: 'foo'" + - "\n+ message: ''\n }" + ' Comparison {\n' + + "- message: 'foo',\n" + + "+ message: '',\n" + + " name: 'Error'\n" + + ' }' } ); diff --git a/test/parallel/test-async-wrap-trigger-id.js b/test/parallel/test-async-wrap-trigger-id.js index 271fe3b107e0dc..e8b4682b7167f8 100644 --- a/test/parallel/test-async-wrap-trigger-id.js +++ b/test/parallel/test-async-wrap-trigger-id.js @@ -11,18 +11,18 @@ let triggerAsyncId1; process.nextTick(() => { process.nextTick(() => { triggerAsyncId1 = triggerAsyncId(); + // Async resources having different causal ancestry + // should have different triggerAsyncIds assert.notStrictEqual( triggerAsyncId0, - triggerAsyncId1, - 'Async resources having different causal ancestry ' + - 'should have different triggerAsyncIds'); + triggerAsyncId1); }); process.nextTick(() => { const triggerAsyncId2 = triggerAsyncId(); + // Async resources having the same causal ancestry + // should have the same triggerAsyncId assert.strictEqual( triggerAsyncId1, - triggerAsyncId2, - 'Async resources having the same causal ancestry ' + - 'should have the same triggerAsyncId'); + triggerAsyncId2); }); }); diff --git a/test/parallel/test-benchmark-util.js b/test/parallel/test-benchmark-util.js index 838e51daac26b4..97b02bbdeed5cd 100644 --- a/test/parallel/test-benchmark-util.js +++ b/test/parallel/test-benchmark-util.js @@ -13,5 +13,6 @@ runBenchmark('util', 'pos=start', 'size=1', 'type=', + 'len=1', 'version=native'], { NODEJS_BENCHMARK_ZERO_ALLOWED: 1 }); diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js index 81563355d246ff..e2e5075f6b2b48 100644 --- a/test/parallel/test-bootstrap-modules.js +++ b/test/parallel/test-bootstrap-modules.js @@ -11,4 +11,4 @@ const list = process.moduleLoadList.slice(); const assert = require('assert'); -assert(list.length <= 74, list); +assert(list.length <= 76, list); diff --git a/test/parallel/test-buffer-copy.js b/test/parallel/test-buffer-copy.js index 5c82f4de28dbee..8ede5101463b05 100644 --- a/test/parallel/test-buffer-copy.js +++ b/test/parallel/test-buffer-copy.js @@ -12,9 +12,9 @@ let cntr = 0; b.fill(++cntr); c.fill(++cntr); const copied = b.copy(c, 0, 0, 512); - assert.strictEqual(512, copied); + assert.strictEqual(copied, 512); for (let i = 0; i < c.length; i++) { - assert.strictEqual(b[i], c[i]); + assert.strictEqual(c[i], b[i]); } } @@ -23,9 +23,9 @@ let cntr = 0; b.fill(++cntr); c.fill(++cntr); const copied = c.copy(b, 0, 0); - assert.strictEqual(c.length, copied); + assert.strictEqual(copied, c.length); for (let i = 0; i < c.length; i++) { - assert.strictEqual(c[i], b[i]); + assert.strictEqual(b[i], c[i]); } } @@ -34,9 +34,9 @@ let cntr = 0; b.fill(++cntr); c.fill(++cntr); const copied = c.copy(b, 0); - assert.strictEqual(c.length, copied); + assert.strictEqual(copied, c.length); for (let i = 0; i < c.length; i++) { - assert.strictEqual(c[i], b[i]); + assert.strictEqual(b[i], c[i]); } } @@ -45,9 +45,9 @@ let cntr = 0; b.fill(++cntr); c.fill(++cntr); const copied = b.copy(c); - assert.strictEqual(c.length, copied); + assert.strictEqual(copied, c.length); for (let i = 0; i < c.length; i++) { - assert.strictEqual(b[i], c[i]); + assert.strictEqual(c[i], b[i]); } } @@ -56,9 +56,9 @@ let cntr = 0; b.fill(++cntr); c.fill(++cntr); const copied = b.copy(c, 0, b.length - Math.floor(c.length / 2)); - assert.strictEqual(Math.floor(c.length / 2), copied); + assert.strictEqual(copied, Math.floor(c.length / 2)); for (let i = 0; i < Math.floor(c.length / 2); i++) { - assert.strictEqual(b[b.length - Math.floor(c.length / 2) + i], c[i]); + assert.strictEqual(c[i], b[b.length - Math.floor(c.length / 2) + i]); } for (let i = Math.floor(c.length / 2) + 1; i < c.length; i++) { assert.strictEqual(c[c.length - 1], c[i]); @@ -70,9 +70,9 @@ let cntr = 0; b.fill(++cntr); c.fill(++cntr); const copied = b.copy(c, 0, 0, 513); - assert.strictEqual(c.length, copied); + assert.strictEqual(copied, c.length); for (let i = 0; i < c.length; i++) { - assert.strictEqual(b[i], c[i]); + assert.strictEqual(c[i], b[i]); } } @@ -81,9 +81,9 @@ let cntr = 0; b.fill(++cntr); b.fill(++cntr, 256); const copied = b.copy(b, 0, 256, 1024); - assert.strictEqual(768, copied); + assert.strictEqual(copied, 768); for (let i = 0; i < b.length; i++) { - assert.strictEqual(cntr, b[i]); + assert.strictEqual(b[i], cntr); } } @@ -106,7 +106,7 @@ assert.throws(function() { c.fill(++cntr); b.copy(c, 0, 0, 1025); for (let i = 0; i < c.length; i++) { - assert.strictEqual(b[i], c[i]); + assert.strictEqual(c[i], b[i]); } } @@ -126,9 +126,9 @@ assert.strictEqual(b.copy(c, 512, 0, 10), 0); b.fill(++cntr); d.fill(++cntr); const copied = b.copy(d, 0, 0, 512); - assert.strictEqual(512, copied); + assert.strictEqual(copied, 512); for (let i = 0; i < d.length; i++) { - assert.strictEqual(b[i], d[i]); + assert.strictEqual(d[i], b[i]); } } @@ -139,8 +139,8 @@ assert.strictEqual(b.copy(c, 512, 0, 10), 0); e.fill(++cntr); c.fill(++cntr); const copied = Buffer.prototype.copy.call(e, c, 0, 0, 512); - assert.strictEqual(512, copied); + assert.strictEqual(copied, 512); for (let i = 0; i < c.length; i++) { - assert.strictEqual(e[i], c[i]); + assert.strictEqual(c[i], e[i]); } } diff --git a/test/parallel/test-child-process-disconnect.js b/test/parallel/test-child-process-disconnect.js index 503ba906e7cf04..e1b2c2de016d66 100644 --- a/test/parallel/test-child-process-disconnect.js +++ b/test/parallel/test-child-process-disconnect.js @@ -93,7 +93,11 @@ if (process.argv[2] === 'child') { // ready to be disconnected if (data === 'ready') { child.disconnect(); - assert.throws(child.disconnect.bind(child), Error); + assert.throws( + child.disconnect.bind(child), + { + code: 'ERR_IPC_DISCONNECTED' + }); return; } diff --git a/test/parallel/test-cli-node-options-disallowed.js b/test/parallel/test-cli-node-options-disallowed.js index 0351f83c52b50b..733e5cd7c7b977 100644 --- a/test/parallel/test-cli-node-options-disallowed.js +++ b/test/parallel/test-cli-node-options-disallowed.js @@ -29,7 +29,6 @@ disallow('--interactive'); disallow('-i'); disallow('--v8-options'); disallow('--'); -disallow('--no_warnings'); // Node options don't allow '_' instead of '-'. function disallow(opt) { const env = Object.assign({}, process.env, { NODE_OPTIONS: opt }); diff --git a/test/parallel/test-cli-node-options.js b/test/parallel/test-cli-node-options.js index c7096a3acb55f7..4ff63009a7a1e3 100644 --- a/test/parallel/test-cli-node-options.js +++ b/test/parallel/test-cli-node-options.js @@ -19,6 +19,7 @@ expect(`-r ${printA}`, 'A\nB\n'); expect(`-r ${printA} -r ${printA}`, 'A\nB\n'); expect('--no-deprecation', 'B\n'); expect('--no-warnings', 'B\n'); +expect('--no_warnings', 'B\n'); expect('--trace-warnings', 'B\n'); expect('--redirect-warnings=_', 'B\n'); expect('--trace-deprecation', 'B\n'); diff --git a/test/parallel/test-cluster-fork-windowsHide.js b/test/parallel/test-cluster-fork-windowsHide.js index a7476983f9e39d..b9ee701beb65ff 100644 --- a/test/parallel/test-cluster-fork-windowsHide.js +++ b/test/parallel/test-cluster-fork-windowsHide.js @@ -45,7 +45,7 @@ if (!process.argv[2]) { } else if (cluster.isMaster) { cluster.setupMaster({ - silient: true, + silent: true, windowsHide: true }); diff --git a/test/parallel/test-cluster-kill-infinite-loop.js b/test/parallel/test-cluster-kill-infinite-loop.js new file mode 100644 index 00000000000000..f53e6e3976ec28 --- /dev/null +++ b/test/parallel/test-cluster-kill-infinite-loop.js @@ -0,0 +1,21 @@ +'use strict'; +const common = require('../common'); +const cluster = require('cluster'); +const assert = require('assert'); + +if (cluster.isMaster) { + const worker = cluster.fork(); + + worker.on('online', common.mustCall(() => { + // Use worker.process.kill() instead of worker.kill() because the latter + // waits for a graceful disconnect, which will never happen. + worker.process.kill(); + })); + + worker.on('exit', common.mustCall((code, signal) => { + assert.strictEqual(code, null); + assert.strictEqual(signal, 'SIGTERM'); + })); +} else { + while (true) {} +} diff --git a/test/parallel/test-cluster-setup-master-cumulative.js b/test/parallel/test-cluster-setup-master-cumulative.js index 838890cb4b338c..2621685e315bcc 100644 --- a/test/parallel/test-cluster-setup-master-cumulative.js +++ b/test/parallel/test-cluster-setup-master-cumulative.js @@ -40,7 +40,7 @@ console.log('ok sets defaults'); cluster.setupMaster({ exec: 'overridden' }); assert.strictEqual(cluster.settings.exec, 'overridden'); -console.log('ok overrids defaults'); +console.log('ok overrides defaults'); cluster.setupMaster({ args: ['foo', 'bar'] }); assert.strictEqual(cluster.settings.exec, 'overridden'); diff --git a/test/parallel/test-common.js b/test/parallel/test-common.js index eafe4dd830bcb2..51e0302868cbe6 100644 --- a/test/parallel/test-common.js +++ b/test/parallel/test-common.js @@ -27,10 +27,13 @@ const assert = require('assert'); const { execFile } = require('child_process'); // test for leaked global detection -global.gc = 42; // Not a valid global unless --expose_gc is set. -assert.deepStrictEqual(common.leakedGlobals(), ['gc']); -delete global.gc; - +{ + const p = fixtures.path('leakedGlobal.js'); + execFile(process.argv[0], [p], common.mustCall((ex, stdout, stderr) => { + assert.notStrictEqual(ex.code, 0); + assert.ok(/\bAssertionError\b.*\bUnexpected global\b.*\bgc\b/.test(stderr)); + })); +} // common.mustCall() tests assert.throws(function() { diff --git a/test/parallel/test-console-table.js b/test/parallel/test-console-table.js index 844d2e01e4180b..e5b56ced8435ea 100644 --- a/test/parallel/test-console-table.js +++ b/test/parallel/test-console-table.js @@ -54,6 +54,15 @@ test([Symbol(), 5, [10]], ` └─────────┴────┴──────────┘ `); +test([null, 5], ` +┌─────────┬────────┐ +│ (index) │ Values │ +├─────────┼────────┤ +│ 0 │ null │ +│ 1 │ 5 │ +└─────────┴────────┘ +`); + test([undefined, 5], ` ┌─────────┬───────────┐ │ (index) │ Values │ diff --git a/test/parallel/test-console.js b/test/parallel/test-console.js index 1a041c7f90ef72..a97e4cf33f8603 100644 --- a/test/parallel/test-console.js +++ b/test/parallel/test-console.js @@ -202,11 +202,11 @@ for (const expected of expectedStrings) { } assert.strictEqual(strings.shift(), - "{ foo: 'bar',\n [Symbol(util.inspect.custom)]: " + - '[Function: [util.inspect.custom]] }\n'); + "{ foo: 'bar',\n [Symbol(nodejs.util.inspect.custom)]: " + + '[Function: [nodejs.util.inspect.custom]] }\n'); assert.strictEqual(strings.shift(), - "{ foo: 'bar',\n [Symbol(util.inspect.custom)]: " + - '[Function: [util.inspect.custom]] }\n'); + "{ foo: 'bar',\n [Symbol(nodejs.util.inspect.custom)]: " + + '[Function: [nodejs.util.inspect.custom]] }\n'); assert.ok(strings.shift().includes('foo: [Object]')); assert.strictEqual(strings.shift().includes('baz'), false); assert.strictEqual(strings.shift(), 'inspect inspect\n'); diff --git a/test/parallel/test-crypto-keygen.js b/test/parallel/test-crypto-keygen.js new file mode 100644 index 00000000000000..af60c662f9340d --- /dev/null +++ b/test/parallel/test-crypto-keygen.js @@ -0,0 +1,733 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const { + createSign, + createVerify, + generateKeyPair, + generateKeyPairSync, + publicEncrypt, + privateDecrypt +} = require('crypto'); +const { promisify } = require('util'); + +// Asserts that the size of the given key (in chars or bytes) is within 10% of +// the expected size. +function assertApproximateSize(key, expectedSize) { + const u = typeof key === 'string' ? 'chars' : 'bytes'; + const min = Math.floor(0.9 * expectedSize); + const max = Math.ceil(1.1 * expectedSize); + assert(key.length >= min, + `Key (${key.length} ${u}) is shorter than expected (${min} ${u})`); + assert(key.length <= max, + `Key (${key.length} ${u}) is longer than expected (${max} ${u})`); +} + +// Tests that a key pair can be used for encryption / decryption. +function testEncryptDecrypt(publicKey, privateKey) { + const message = 'Hello Node.js world!'; + const plaintext = Buffer.from(message, 'utf8'); + const ciphertext = publicEncrypt(publicKey, plaintext); + const received = privateDecrypt(privateKey, ciphertext); + assert.strictEqual(received.toString('utf8'), message); +} + +// Tests that a key pair can be used for signing / verification. +function testSignVerify(publicKey, privateKey) { + const message = 'Hello Node.js world!'; + const signature = createSign('SHA256').update(message) + .sign(privateKey, 'hex'); + const okay = createVerify('SHA256').update(message) + .verify(publicKey, signature, 'hex'); + assert(okay); +} + +// Constructs a regular expression for a PEM-encoded key with the given label. +function getRegExpForPEM(label, cipher) { + const head = `\\-\\-\\-\\-\\-BEGIN ${label}\\-\\-\\-\\-\\-`; + const rfc1421Header = cipher == null ? '' : + `\nProc-Type: 4,ENCRYPTED\nDEK-Info: ${cipher},[^\n]+\n`; + const body = '([a-zA-Z0-9\\+/=]{64}\n)*[a-zA-Z0-9\\+/=]{1,64}'; + const end = `\\-\\-\\-\\-\\-END ${label}\\-\\-\\-\\-\\-`; + return new RegExp(`^${head}${rfc1421Header}\n${body}\n${end}\n$`); +} + +const pkcs1PubExp = getRegExpForPEM('RSA PUBLIC KEY'); +const pkcs1PrivExp = getRegExpForPEM('RSA PRIVATE KEY'); +const pkcs1EncExp = (cipher) => getRegExpForPEM('RSA PRIVATE KEY', cipher); +const spkiExp = getRegExpForPEM('PUBLIC KEY'); +const pkcs8Exp = getRegExpForPEM('PRIVATE KEY'); +const pkcs8EncExp = getRegExpForPEM('ENCRYPTED PRIVATE KEY'); +const sec1Exp = getRegExpForPEM('EC PRIVATE KEY'); +const sec1EncExp = (cipher) => getRegExpForPEM('EC PRIVATE KEY', cipher); + +// Since our own APIs only accept PEM, not DER, we need to convert DER to PEM +// for testing. +function convertDERToPEM(label, der) { + const base64 = der.toString('base64'); + const lines = []; + let i = 0; + while (i < base64.length) { + const n = Math.min(base64.length - i, 64); + lines.push(base64.substr(i, n)); + i += n; + } + const body = lines.join('\n'); + const r = `-----BEGIN ${label}-----\n${body}\n-----END ${label}-----\n`; + assert(getRegExpForPEM(label).test(r)); + return r; +} + +{ + // To make the test faster, we will only test sync key generation once and + // with a relatively small key. + const ret = generateKeyPairSync('rsa', { + publicExponent: 0x10001, + modulusLength: 1024, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem' + } + }); + + assert.strictEqual(Object.keys(ret).length, 2); + const { publicKey, privateKey } = ret; + + assert.strictEqual(typeof publicKey, 'string'); + assert(pkcs1PubExp.test(publicKey)); + assertApproximateSize(publicKey, 272); + assert.strictEqual(typeof privateKey, 'string'); + assert(pkcs8Exp.test(privateKey)); + assertApproximateSize(privateKey, 912); + + testEncryptDecrypt(publicKey, privateKey); + testSignVerify(publicKey, privateKey); +} + +{ + // Test async RSA key generation. + generateKeyPair('rsa', { + publicExponent: 0x10001, + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format: 'der' + }, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem' + } + }, common.mustCall((err, publicKeyDER, privateKey) => { + assert.ifError(err); + + // The public key is encoded as DER (which is binary) instead of PEM. We + // will still need to convert it to PEM for testing. + assert(Buffer.isBuffer(publicKeyDER)); + const publicKey = convertDERToPEM('RSA PUBLIC KEY', publicKeyDER); + assertApproximateSize(publicKey, 720); + + assert.strictEqual(typeof privateKey, 'string'); + assert(pkcs1PrivExp.test(privateKey)); + assertApproximateSize(privateKey, 3272); + + testEncryptDecrypt(publicKey, privateKey); + testSignVerify(publicKey, privateKey); + })); + + // Now do the same with an encrypted private key. + generateKeyPair('rsa', { + publicExponent: 0x10001, + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format: 'der' + }, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem', + cipher: 'aes-256-cbc', + passphrase: 'secret' + } + }, common.mustCall((err, publicKeyDER, privateKey) => { + assert.ifError(err); + + // The public key is encoded as DER (which is binary) instead of PEM. We + // will still need to convert it to PEM for testing. + assert(Buffer.isBuffer(publicKeyDER)); + const publicKey = convertDERToPEM('RSA PUBLIC KEY', publicKeyDER); + assertApproximateSize(publicKey, 720); + + assert.strictEqual(typeof privateKey, 'string'); + assert(pkcs1EncExp('AES-256-CBC').test(privateKey)); + + // Since the private key is encrypted, signing shouldn't work anymore. + assert.throws(() => { + testSignVerify(publicKey, privateKey); + }, /bad decrypt|asn1 encoding routines/); + + const key = { key: privateKey, passphrase: 'secret' }; + testEncryptDecrypt(publicKey, key); + testSignVerify(publicKey, key); + })); +} + +{ + // Test async DSA key generation. + generateKeyPair('dsa', { + modulusLength: 2048, + divisorLength: 256, + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'der', + cipher: 'aes-128-cbc', + passphrase: 'secret' + } + }, common.mustCall((err, publicKey, privateKeyDER) => { + assert.ifError(err); + + assert.strictEqual(typeof publicKey, 'string'); + assert(spkiExp.test(publicKey)); + // The private key is DER-encoded. + assert(Buffer.isBuffer(privateKeyDER)); + const privateKey = convertDERToPEM('ENCRYPTED PRIVATE KEY', privateKeyDER); + + assertApproximateSize(publicKey, 1194); + assertApproximateSize(privateKey, 1054); + + // Since the private key is encrypted, signing shouldn't work anymore. + assert.throws(() => { + testSignVerify(publicKey, privateKey); + }, /bad decrypt|asn1 encoding routines/); + + // Signing should work with the correct password. + testSignVerify(publicKey, { + key: privateKey, + passphrase: 'secret' + }); + })); +} + +{ + // Test async elliptic curve key generation, e.g. for ECDSA, with a SEC1 + // private key. + generateKeyPair('ec', { + namedCurve: 'prime256v1', + paramEncoding: 'named', + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'sec1', + format: 'pem' + } + }, common.mustCall((err, publicKey, privateKey) => { + assert.ifError(err); + + assert.strictEqual(typeof publicKey, 'string'); + assert(spkiExp.test(publicKey)); + assert.strictEqual(typeof privateKey, 'string'); + assert(sec1Exp.test(privateKey)); + + testSignVerify(publicKey, privateKey); + })); + + // Do the same with an encrypted private key. + generateKeyPair('ec', { + namedCurve: 'prime256v1', + paramEncoding: 'named', + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'sec1', + format: 'pem', + cipher: 'aes-128-cbc', + passphrase: 'secret' + } + }, common.mustCall((err, publicKey, privateKey) => { + assert.ifError(err); + + assert.strictEqual(typeof publicKey, 'string'); + assert(spkiExp.test(publicKey)); + assert.strictEqual(typeof privateKey, 'string'); + assert(sec1EncExp('AES-128-CBC').test(privateKey)); + + // Since the private key is encrypted, signing shouldn't work anymore. + assert.throws(() => { + testSignVerify(publicKey, privateKey); + }, /bad decrypt|asn1 encoding routines/); + + testSignVerify(publicKey, { key: privateKey, passphrase: 'secret' }); + })); +} + +{ + // Test async elliptic curve key generation, e.g. for ECDSA, with an encrypted + // private key. + generateKeyPair('ec', { + namedCurve: 'P-256', + paramEncoding: 'named', + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem', + cipher: 'aes-128-cbc', + passphrase: 'top secret' + } + }, common.mustCall((err, publicKey, privateKey) => { + assert.ifError(err); + + assert.strictEqual(typeof publicKey, 'string'); + assert(spkiExp.test(publicKey)); + assert.strictEqual(typeof privateKey, 'string'); + assert(pkcs8EncExp.test(privateKey)); + + // Since the private key is encrypted, signing shouldn't work anymore. + assert.throws(() => { + testSignVerify(publicKey, privateKey); + }, /bad decrypt|asn1 encoding routines/); + + testSignVerify(publicKey, { + key: privateKey, + passphrase: 'top secret' + }); + })); +} + +{ + // Test the util.promisified API with async RSA key generation. + promisify(generateKeyPair)('rsa', { + publicExponent: 0x10001, + modulusLength: 3072, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem' + } + }).then(common.mustCall((keys) => { + const { publicKey, privateKey } = keys; + assert.strictEqual(typeof publicKey, 'string'); + assert(pkcs1PubExp.test(publicKey)); + assertApproximateSize(publicKey, 600); + + assert.strictEqual(typeof privateKey, 'string'); + assert(pkcs1PrivExp.test(privateKey)); + assertApproximateSize(privateKey, 2455); + + testEncryptDecrypt(publicKey, privateKey); + testSignVerify(publicKey, privateKey); + })).catch(common.mustNotCall()); +} + +{ + // Test invalid key types. + for (const type of [undefined, null, 0]) { + common.expectsError(() => generateKeyPairSync(type, {}), { + type: TypeError, + code: 'ERR_INVALID_ARG_TYPE', + message: 'The "type" argument must be of type string. Received type ' + + typeof type + }); + } + + common.expectsError(() => generateKeyPairSync('rsa2', {}), { + type: TypeError, + code: 'ERR_INVALID_ARG_VALUE', + message: "The argument 'type' must be one of " + + "'rsa', 'dsa', 'ec'. Received 'rsa2'" + }); +} + +{ + // Missing / invalid publicKeyEncoding. + for (const enc of [undefined, null, 0, 'a', true]) { + common.expectsError(() => generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: enc, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem' + } + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${enc}" is invalid for option "publicKeyEncoding"` + }); + } + + // Missing publicKeyEncoding.type. + for (const type of [undefined, null, 0, true, {}]) { + common.expectsError(() => generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type, + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem' + } + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${type}" is invalid for option ` + + '"publicKeyEncoding.type"' + }); + } + + // Missing / invalid publicKeyEncoding.format. + for (const format of [undefined, null, 0, false, 'a', {}]) { + common.expectsError(() => generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format + }, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem' + } + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${format}" is invalid for option ` + + '"publicKeyEncoding.format"' + }); + } + + // Missing / invalid privateKeyEncoding. + for (const enc of [undefined, null, 0, 'a', true]) { + common.expectsError(() => generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: enc + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${enc}" is invalid for option "privateKeyEncoding"` + }); + } + + // Missing / invalid privateKeyEncoding.type. + for (const type of [undefined, null, 0, true, {}]) { + common.expectsError(() => generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type, + format: 'pem' + } + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${type}" is invalid for option ` + + '"privateKeyEncoding.type"' + }); + } + + // Missing / invalid privateKeyEncoding.format. + for (const format of [undefined, null, 0, false, 'a', {}]) { + common.expectsError(() => generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs1', + format + } + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${format}" is invalid for option ` + + '"privateKeyEncoding.format"' + }); + } + + // cipher of invalid type. + for (const cipher of [0, true, {}]) { + common.expectsError(() => generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem', + cipher + } + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${cipher}" is invalid for option ` + + '"privateKeyEncoding.cipher"' + }); + } + + // Invalid cipher. + common.expectsError(() => generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem', + cipher: 'foo', + passphrase: 'secret' + } + }), { + type: Error, + message: 'Unknown cipher' + }); + + // cipher, but no valid passphrase. + for (const passphrase of [undefined, null, 5, false, true]) { + common.expectsError(() => generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem', + cipher: 'aes-128-cbc', + passphrase + } + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${passphrase}" is invalid for option ` + + '"privateKeyEncoding.passphrase"' + }); + } + + // Test invalid callbacks. + for (const cb of [undefined, null, 0, {}]) { + common.expectsError(() => generateKeyPair('rsa', { + modulusLength: 4096, + publicKeyEncoding: { type: 'pkcs1', format: 'pem' }, + privateKeyEncoding: { type: 'pkcs1', format: 'pem' } + }, cb), { + type: TypeError, + code: 'ERR_INVALID_CALLBACK' + }); + } +} + +// Test RSA parameters. +{ + // Test invalid modulus lengths. + for (const modulusLength of [undefined, null, 'a', true, {}, [], 512.1, -1]) { + common.expectsError(() => generateKeyPair('rsa', { + modulusLength + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${modulusLength}" is invalid for option ` + + '"modulusLength"' + }); + } + + // Test invalid exponents. + for (const publicExponent of ['a', true, {}, [], 3.5, -1]) { + common.expectsError(() => generateKeyPair('rsa', { + modulusLength: 4096, + publicExponent + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${publicExponent}" is invalid for option ` + + '"publicExponent"' + }); + } +} + +// Test DSA parameters. +{ + // Test invalid modulus lengths. + for (const modulusLength of [undefined, null, 'a', true, {}, [], 4096.1]) { + common.expectsError(() => generateKeyPair('dsa', { + modulusLength + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${modulusLength}" is invalid for option ` + + '"modulusLength"' + }); + } + + // Test invalid divisor lengths. + for (const divisorLength of ['a', true, {}, [], 4096.1]) { + common.expectsError(() => generateKeyPair('dsa', { + modulusLength: 2048, + divisorLength + }), { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${divisorLength}" is invalid for option ` + + '"divisorLength"' + }); + } +} + +// Test EC parameters. +{ + // Test invalid curves. + common.expectsError(() => { + generateKeyPairSync('ec', { + namedCurve: 'abcdef', + publicKeyEncoding: { type: 'spki', format: 'pem' }, + privateKeyEncoding: { type: 'sec1', format: 'pem' } + }); + }, { + type: TypeError, + message: 'Invalid ECDH curve name' + }); + + // It should recognize both NIST and standard curve names. + generateKeyPair('ec', { + namedCurve: 'P-256', + publicKeyEncoding: { type: 'spki', format: 'pem' }, + privateKeyEncoding: { type: 'pkcs8', format: 'pem' } + }, common.mustCall((err, publicKey, privateKey) => { + assert.ifError(err); + })); + + generateKeyPair('ec', { + namedCurve: 'secp192k1', + publicKeyEncoding: { type: 'spki', format: 'pem' }, + privateKeyEncoding: { type: 'pkcs8', format: 'pem' } + }, common.mustCall((err, publicKey, privateKey) => { + assert.ifError(err); + })); +} + +// Test invalid key encoding types. +{ + // Invalid public key type. + for (const type of ['foo', 'pkcs8', 'sec1']) { + common.expectsError(() => { + generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { type, format: 'pem' }, + privateKeyEncoding: { type: 'pkcs8', format: 'pem' } + }); + }, { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${type}" is invalid for option ` + + '"publicKeyEncoding.type"' + }); + } + + // Invalid private key type. + for (const type of ['foo', 'spki']) { + common.expectsError(() => { + generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { type: 'spki', format: 'pem' }, + privateKeyEncoding: { type, format: 'pem' } + }); + }, { + type: TypeError, + code: 'ERR_INVALID_OPT_VALUE', + message: `The value "${type}" is invalid for option ` + + '"privateKeyEncoding.type"' + }); + } + + // Key encoding doesn't match key type. + for (const type of ['dsa', 'ec']) { + common.expectsError(() => { + generateKeyPairSync(type, { + modulusLength: 4096, + namedCurve: 'P-256', + publicKeyEncoding: { type: 'pkcs1', format: 'pem' }, + privateKeyEncoding: { type: 'pkcs8', format: 'pem' } + }); + }, { + type: Error, + code: 'ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS', + message: 'The selected key encoding pkcs1 can only be used for RSA keys.' + }); + + common.expectsError(() => { + generateKeyPairSync(type, { + modulusLength: 4096, + namedCurve: 'P-256', + publicKeyEncoding: { type: 'spki', format: 'pem' }, + privateKeyEncoding: { type: 'pkcs1', format: 'pem' } + }); + }, { + type: Error, + code: 'ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS', + message: 'The selected key encoding pkcs1 can only be used for RSA keys.' + }); + } + + for (const type of ['rsa', 'dsa']) { + common.expectsError(() => { + generateKeyPairSync(type, { + modulusLength: 4096, + publicKeyEncoding: { type: 'spki', format: 'pem' }, + privateKeyEncoding: { type: 'sec1', format: 'pem' } + }); + }, { + type: Error, + code: 'ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS', + message: 'The selected key encoding sec1 can only be used for EC keys.' + }); + } + + // Attempting to encrypt a DER-encoded, non-PKCS#8 key. + for (const type of ['pkcs1', 'sec1']) { + common.expectsError(() => { + generateKeyPairSync(type === 'pkcs1' ? 'rsa' : 'ec', { + modulusLength: 4096, + namedCurve: 'P-256', + publicKeyEncoding: { type: 'spki', format: 'pem' }, + privateKeyEncoding: { + type, + format: 'der', + cipher: 'aes-128-cbc', + passphrase: 'hello' + } + }); + }, { + type: Error, + code: 'ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS', + message: `The selected key encoding ${type} does not support encryption.` + }); + } +} diff --git a/test/parallel/test-crypto-stream.js b/test/parallel/test-crypto-stream.js index 0464829f74caed..9430084bbee179 100644 --- a/test/parallel/test-crypto-stream.js +++ b/test/parallel/test-crypto-stream.js @@ -40,7 +40,7 @@ if (!common.hasFipsCrypto) { }); } - _write(data, encodeing, done) { + _write(data, encoding, done) { this._buffers.push(data); return done(null); } diff --git a/test/parallel/test-dns-lookupService.js b/test/parallel/test-dns-lookupService.js new file mode 100644 index 00000000000000..a935d18f2462df --- /dev/null +++ b/test/parallel/test-dns-lookupService.js @@ -0,0 +1,19 @@ +// Flags: --expose-internals +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const cares = process.binding('cares_wrap'); +const { UV_ENOENT } = process.binding('uv'); +const dns = require('dns'); + +// Stub `getnameinfo` to *always* error. +cares.getnameinfo = () => UV_ENOENT; + +assert.throws( + () => dns.lookupService('127.0.0.1', 80, common.mustNotCall()), + { + code: 'ENOENT', + message: 'getnameinfo ENOENT 127.0.0.1', + syscall: 'getnameinfo' + } +); diff --git a/test/parallel/test-dns.js b/test/parallel/test-dns.js index dcef59e43f90a1..a618bccd89ac13 100644 --- a/test/parallel/test-dns.js +++ b/test/parallel/test-dns.js @@ -290,7 +290,7 @@ const portErr = (port) => { const err = { code: 'ERR_SOCKET_BAD_PORT', message: - `Port should be > 0 and < 65536. Received ${port}.`, + `Port should be >= 0 and < 65536. Received ${port}.`, type: RangeError }; diff --git a/test/parallel/test-fs-mkdir.js b/test/parallel/test-fs-mkdir.js index 18e9e973f14cce..d07aab53769299 100644 --- a/test/parallel/test-fs-mkdir.js +++ b/test/parallel/test-fs-mkdir.js @@ -23,12 +23,19 @@ const common = require('../common'); const assert = require('assert'); const fs = require('fs'); +const path = require('path'); const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); +let dirc = 0; +function nextdir() { + return `test${++dirc}`; +} + +// mkdir creates directory using assigned path { - const pathname = `${tmpdir.path}/test1`; + const pathname = path.join(tmpdir.path, nextdir()); fs.mkdir(pathname, common.mustCall(function(err) { assert.strictEqual(err, null); @@ -36,8 +43,9 @@ tmpdir.refresh(); })); } +// mkdir creates directory with assigned mode value { - const pathname = `${tmpdir.path}/test2`; + const pathname = path.join(tmpdir.path, nextdir()); fs.mkdir(pathname, 0o777, common.mustCall(function(err) { assert.strictEqual(err, null); @@ -45,8 +53,9 @@ tmpdir.refresh(); })); } +// mkdirSync successfully creates directory from given path { - const pathname = `${tmpdir.path}/test3`; + const pathname = path.join(tmpdir.path, nextdir()); fs.mkdirSync(pathname); @@ -54,6 +63,8 @@ tmpdir.refresh(); assert.strictEqual(exists, true); } +// mkdirSync and mkdir require path to be a string, buffer or url. +// Anything else generates an error. [false, 1, {}, [], null, undefined].forEach((i) => { common.expectsError( () => fs.mkdir(i, common.mustNotCall()), @@ -71,6 +82,127 @@ tmpdir.refresh(); ); }); +// mkdirpSync when both top-level, and sub-folders do not exist. +{ + const pathname = path.join(tmpdir.path, nextdir(), nextdir()); + + fs.mkdirSync(pathname, { recursive: true }); + + const exists = fs.existsSync(pathname); + assert.strictEqual(exists, true); + assert.strictEqual(fs.statSync(pathname).isDirectory(), true); +} + +// mkdirpSync when folder already exists. +{ + const pathname = path.join(tmpdir.path, nextdir(), nextdir()); + + fs.mkdirSync(pathname, { recursive: true }); + // should not cause an error. + fs.mkdirSync(pathname, { recursive: true }); + + const exists = fs.existsSync(pathname); + assert.strictEqual(exists, true); + assert.strictEqual(fs.statSync(pathname).isDirectory(), true); +} + +// mkdirpSync ../ +{ + const pathname = `${tmpdir.path}/${nextdir()}/../${nextdir()}/${nextdir()}`; + fs.mkdirSync(pathname, { recursive: true }); + const exists = fs.existsSync(pathname); + assert.strictEqual(exists, true); + assert.strictEqual(fs.statSync(pathname).isDirectory(), true); +} + +// mkdirpSync when path is a file. +{ + const pathname = path.join(tmpdir.path, nextdir(), nextdir()); + + fs.mkdirSync(path.dirname(pathname)); + fs.writeFileSync(pathname, '', 'utf8'); + + try { + fs.mkdirSync(pathname, { recursive: true }); + throw new Error('unreachable'); + } catch (err) { + assert.notStrictEqual(err.message, 'unreachable'); + assert.strictEqual(err.code, 'EEXIST'); + assert.strictEqual(err.syscall, 'mkdir'); + } +} + +// mkdirp when folder does not yet exist. +{ + const pathname = path.join(tmpdir.path, nextdir(), nextdir()); + + fs.mkdir(pathname, { recursive: true }, common.mustCall(function(err) { + assert.strictEqual(err, null); + assert.strictEqual(fs.existsSync(pathname), true); + assert.strictEqual(fs.statSync(pathname).isDirectory(), true); + })); +} + +// mkdirp when path is a file. +{ + const pathname = path.join(tmpdir.path, nextdir(), nextdir()); + + fs.mkdirSync(path.dirname(pathname)); + fs.writeFileSync(pathname, '', 'utf8'); + fs.mkdir(pathname, { recursive: true }, (err) => { + assert.strictEqual(err.code, 'EEXIST'); + assert.strictEqual(err.syscall, 'mkdir'); + assert.strictEqual(fs.statSync(pathname).isDirectory(), false); + }); +} + +// mkdirpSync dirname loop +// XXX: windows and smartos have issues removing a directory that you're in. +if (common.isMainThread && (common.isLinux || common.isOSX)) { + const pathname = path.join(tmpdir.path, nextdir()); + fs.mkdirSync(pathname); + process.chdir(pathname); + fs.rmdirSync(pathname); + try { + fs.mkdirSync('X', { recursive: true }); + throw new Error('unreachable'); + } catch (err) { + assert.notStrictEqual(err.message, 'unreachable'); + assert.strictEqual(err.code, 'ENOENT'); + assert.strictEqual(err.syscall, 'mkdir'); + } + fs.mkdir('X', { recursive: true }, (err) => { + assert.strictEqual(err.code, 'ENOENT'); + assert.strictEqual(err.syscall, 'mkdir'); + }); +} + +// mkdirSync and mkdir require options.recursive to be a boolean. +// Anything else generates an error. +{ + const pathname = path.join(tmpdir.path, nextdir()); + ['', 1, {}, [], null, Symbol('test'), () => {}].forEach((recursive) => { + common.expectsError( + () => fs.mkdir(pathname, { recursive }, common.mustNotCall()), + { + code: 'ERR_INVALID_ARG_TYPE', + type: TypeError, + message: 'The "recursive" argument must be of type boolean. Received ' + + `type ${typeof recursive}` + } + ); + common.expectsError( + () => fs.mkdirSync(pathname, { recursive }), + { + code: 'ERR_INVALID_ARG_TYPE', + type: TypeError, + message: 'The "recursive" argument must be of type boolean. Received ' + + `type ${typeof recursive}` + } + ); + }); +} + // Keep the event loop alive so the async mkdir() requests // have a chance to run (since they don't ref the event loop). process.nextTick(() => {}); diff --git a/test/parallel/test-fs-promises.js b/test/parallel/test-fs-promises.js index 6bb3a871406ed2..797f8e4ea269f8 100644 --- a/test/parallel/test-fs-promises.js +++ b/test/parallel/test-fs-promises.js @@ -29,11 +29,17 @@ const { symlink, truncate, unlink, - utimes + utimes, + writeFile } = fsPromises; const tmpDir = tmpdir.path; +let dirc = 0; +function nextdir() { + return `test${++dirc}`; +} + // fs.promises should not be enumerable as long as it causes a warning to be // emitted. assert.strictEqual(Object.keys(fs).includes('promises'), false); @@ -58,6 +64,13 @@ function verifyStatObject(stat) { assert.strictEqual(typeof stat.mode, 'number'); } +async function getHandle(dest) { + await copyFile(fixtures.path('baz.js'), dest); + await access(dest, 'r'); + + return open(dest, 'r+'); +} + { async function doTest() { tmpdir.refresh(); @@ -87,6 +100,19 @@ function verifyStatObject(stat) { await handle.datasync(); await handle.sync(); + // test fs.read promises when length to read is zero bytes + { + const dest = path.resolve(tmpDir, 'test1.js'); + const handle = await getHandle(dest); + const buf = Buffer.from('DAWGS WIN'); + const bufLen = buf.length; + await handle.write(buf); + const ret = await handle.read(Buffer.alloc(bufLen), 0, 0, 0); + assert.strictEqual(ret.bytesRead, 0); + + await unlink(dest); + } + const buf = Buffer.from('hello fsPromises'); const bufLen = buf.length; await handle.write(buf); @@ -197,15 +223,95 @@ function verifyStatObject(stat) { await unlink(newLink2); - const newdir = path.resolve(tmpDir, 'dir'); - await mkdir(newdir); - stats = await stat(newdir); - assert(stats.isDirectory()); + // testing readdir lists both files and directories + { + const newDir = path.resolve(tmpDir, 'dir'); + const newFile = path.resolve(tmpDir, 'foo.js'); + + await mkdir(newDir); + await writeFile(newFile, 'DAWGS WIN!', 'utf8'); + + stats = await stat(newDir); + assert(stats.isDirectory()); + const list = await readdir(tmpDir); + assert.notStrictEqual(list.indexOf('dir'), -1); + assert.notStrictEqual(list.indexOf('foo.js'), -1); + await rmdir(newDir); + await unlink(newFile); + } + + // mkdir when options is number. + { + const dir = path.join(tmpDir, nextdir()); + await mkdir(dir, 777); + stats = await stat(dir); + assert(stats.isDirectory()); + } + + // mkdir when options is string. + { + const dir = path.join(tmpDir, nextdir()); + await mkdir(dir, '777'); + stats = await stat(dir); + assert(stats.isDirectory()); + } + + // mkdirp when folder does not yet exist. + { + const dir = path.join(tmpDir, nextdir(), nextdir()); + await mkdir(dir, { recursive: true }); + stats = await stat(dir); + assert(stats.isDirectory()); + } - const list = await readdir(tmpDir); - assert.deepStrictEqual(list, ['baz2.js', 'dir']); + // mkdirp when path is a file. + { + const dir = path.join(tmpDir, nextdir(), nextdir()); + await mkdir(path.dirname(dir)); + await writeFile(dir); + try { + await mkdir(dir, { recursive: true }); + throw new Error('unreachable'); + } catch (err) { + assert.notStrictEqual(err.message, 'unreachable'); + assert.strictEqual(err.code, 'EEXIST'); + assert.strictEqual(err.syscall, 'mkdir'); + } + } - await rmdir(newdir); + // mkdirp ./ + { + const dir = path.resolve(tmpDir, `${nextdir()}/./${nextdir()}`); + await mkdir(dir, { recursive: true }); + stats = await stat(dir); + assert(stats.isDirectory()); + } + + // mkdirp ../ + { + const dir = path.resolve(tmpDir, `${nextdir()}/../${nextdir()}`); + await mkdir(dir, { recursive: true }); + stats = await stat(dir); + assert(stats.isDirectory()); + } + + // mkdirp require recursive option to be a boolean. + // Anything else generates an error. + { + const dir = path.join(tmpDir, nextdir(), nextdir()); + ['', 1, {}, [], null, Symbol('test'), () => {}].forEach((recursive) => { + assert.rejects( + // mkdir() expects to get a boolean value for options.recursive. + async () => mkdir(dir, { recursive }), + { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError [ERR_INVALID_ARG_TYPE]', + message: 'The "recursive" argument must be of type boolean. ' + + `Received type ${typeof recursive}` + } + ); + }); + } await mkdtemp(path.resolve(tmpDir, 'FOO')); assert.rejects( diff --git a/test/parallel/test-fs-readfile-error.js b/test/parallel/test-fs-readfile-error.js index fe6174c5777df1..719c0061c4e39e 100644 --- a/test/parallel/test-fs-readfile-error.js +++ b/test/parallel/test-fs-readfile-error.js @@ -25,9 +25,9 @@ const fs = require('fs'); // Test that fs.readFile fails correctly on a non-existent file. -// `fs.readFile('/')` does not fail on FreeBSD, because you can open and read -// the directory there. -if (common.isFreeBSD) +// `fs.readFile('/')` does not fail on AIX and FreeBSD because you can open +// and read the directory there. +if (common.isAIX || common.isFreeBSD) common.skip('platform not supported.'); const assert = require('assert'); diff --git a/test/parallel/test-fs-readfilesync-enoent.js b/test/parallel/test-fs-readfilesync-enoent.js index 3d421e52b120af..0369f358770383 100644 --- a/test/parallel/test-fs-readfilesync-enoent.js +++ b/test/parallel/test-fs-readfilesync-enoent.js @@ -11,6 +11,7 @@ if (!common.isWindows) const assert = require('assert'); const fs = require('fs'); +const os = require('os'); const path = require('path'); function test(p) { @@ -23,10 +24,10 @@ function test(p) { })); } -test('//localhost/c$/Windows/System32'); -test('//localhost/c$/Windows'); -test('//localhost/c$/'); -test('\\\\localhost\\c$\\'); +test(`//${os.hostname()}/c$/Windows/System32`); +test(`//${os.hostname()}/c$/Windows`); +test(`//${os.hostname()}/c$/`); +test(`\\\\${os.hostname()}\\c$\\`); test('C:\\'); test('C:'); test(process.env.windir); diff --git a/test/parallel/test-gc-tls-external-memory.js b/test/parallel/test-gc-tls-external-memory.js index d77553b1573009..2b584dd93dcf5b 100644 --- a/test/parallel/test-gc-tls-external-memory.js +++ b/test/parallel/test-gc-tls-external-memory.js @@ -31,7 +31,7 @@ function connect() { const externalMemoryUsage = process.memoryUsage().external; assert(externalMemoryUsage >= 0, `${externalMemoryUsage} < 0`); if (runs++ === 512) { - // Make sure at least half the TLS sockets have been gargbage collected + // Make sure at least half the TLS sockets have been garbage collected // (so that this test can actually check what it's testing): assert(gced >= 256, `${gced} < 256`); return; diff --git a/test/parallel/test-handle-wrap-isrefed.js b/test/parallel/test-handle-wrap-isrefed.js index aea5514df96eed..5c8ada6953f4f1 100644 --- a/test/parallel/test-handle-wrap-isrefed.js +++ b/test/parallel/test-handle-wrap-isrefed.js @@ -9,8 +9,6 @@ const strictEqual = require('assert').strictEqual; const spawn = require('child_process').spawn; const cmd = common.isWindows ? 'rundll32' : 'ls'; const cp = spawn(cmd); - strictEqual(Object.getPrototypeOf(cp._handle).hasOwnProperty('hasRef'), - true, 'process_wrap: hasRef() missing'); strictEqual(cp._handle.hasRef(), true, 'process_wrap: not initially refed'); cp.unref(); @@ -33,8 +31,6 @@ const { kStateSymbol } = require('internal/dgram'); const sock4 = dgram.createSocket('udp4'); const handle = sock4[kStateSymbol].handle; - strictEqual(Object.getPrototypeOf(handle).hasOwnProperty('hasRef'), - true, 'udp_wrap: ipv4: hasRef() missing'); strictEqual(handle.hasRef(), true, 'udp_wrap: ipv4: not initially refed'); sock4.unref(); @@ -54,8 +50,6 @@ const { kStateSymbol } = require('internal/dgram'); const sock6 = dgram.createSocket('udp6'); const handle = sock6[kStateSymbol].handle; - strictEqual(Object.getPrototypeOf(handle).hasOwnProperty('hasRef'), - true, 'udp_wrap: ipv6: hasRef() missing'); strictEqual(handle.hasRef(), true, 'udp_wrap: ipv6: not initially refed'); sock6.unref(); @@ -74,8 +68,6 @@ const { kStateSymbol } = require('internal/dgram'); { const { Pipe, constants: PipeConstants } = process.binding('pipe_wrap'); const handle = new Pipe(PipeConstants.SOCKET); - strictEqual(Object.getPrototypeOf(handle).hasOwnProperty('hasRef'), - true, 'pipe_wrap: hasRef() missing'); strictEqual(handle.hasRef(), true, 'pipe_wrap: not initially refed'); handle.unref(); @@ -94,8 +86,6 @@ const { kStateSymbol } = require('internal/dgram'); { const net = require('net'); const server = net.createServer(() => {}).listen(0); - strictEqual(Object.getPrototypeOf(server._handle).hasOwnProperty('hasRef'), - true, 'tcp_wrap: hasRef() missing'); strictEqual(server._handle.hasRef(), true, 'tcp_wrap: not initially refed'); strictEqual(server._unref, @@ -120,8 +110,6 @@ const { kStateSymbol } = require('internal/dgram'); { const timer = setTimeout(() => {}, 500); timer.unref(); - strictEqual(Object.getPrototypeOf(timer._handle).hasOwnProperty('hasRef'), - true, 'timer_wrap: hasRef() missing'); strictEqual(timer._handle.hasRef(), false, 'timer_wrap: unref() ineffective'); timer.ref(); diff --git a/test/parallel/test-heapdump-dns.js b/test/parallel/test-heapdump-dns.js index 00ca54917f5df5..6fe79f7dd4ec5a 100644 --- a/test/parallel/test-heapdump-dns.js +++ b/test/parallel/test-heapdump-dns.js @@ -3,16 +3,16 @@ require('../common'); const { validateSnapshotNodes } = require('../common/heap'); -validateSnapshotNodes('ChannelWrap', []); +validateSnapshotNodes('Node / ChannelWrap', []); const dns = require('dns'); -validateSnapshotNodes('ChannelWrap', [{}]); +validateSnapshotNodes('Node / ChannelWrap', [{}]); dns.resolve('localhost', () => {}); -validateSnapshotNodes('ChannelWrap', [ +validateSnapshotNodes('Node / ChannelWrap', [ { children: [ - { name: 'node_ares_task_list' }, + { node_name: 'Node / node_ares_task_list', edge_name: 'task_list' }, // `Node / ChannelWrap` (C++) -> `ChannelWrap` (JS) - { name: 'ChannelWrap' } + { node_name: 'ChannelWrap', edge_name: 'wrapped' } ] } ]); diff --git a/test/parallel/test-heapdump-fs-promise.js b/test/parallel/test-heapdump-fs-promise.js index 855b135f6ae31b..ca170e13a61770 100644 --- a/test/parallel/test-heapdump-fs-promise.js +++ b/test/parallel/test-heapdump-fs-promise.js @@ -4,13 +4,13 @@ require('../common'); const { validateSnapshotNodes } = require('../common/heap'); const fs = require('fs').promises; -validateSnapshotNodes('FSReqPromise', []); +validateSnapshotNodes('Node / FSReqPromise', []); fs.stat(__filename); -validateSnapshotNodes('FSReqPromise', [ +validateSnapshotNodes('Node / FSReqPromise', [ { children: [ - { name: 'FSReqPromise' }, - { name: 'Float64Array' } // Stat array + { node_name: 'FSReqPromise', edge_name: 'wrapped' }, + { node_name: 'Float64Array', edge_name: 'stats_field_array' } ] } ]); diff --git a/test/parallel/test-heapdump-http2.js b/test/parallel/test-heapdump-http2.js index b503951e65851b..caece96d01cc72 100644 --- a/test/parallel/test-heapdump-http2.js +++ b/test/parallel/test-heapdump-http2.js @@ -8,8 +8,8 @@ const http2 = require('http2'); { const state = recordState(); - state.validateSnapshotNodes('Http2Session', []); - state.validateSnapshotNodes('Http2Stream', []); + state.validateSnapshotNodes('Node / Http2Session', []); + state.validateSnapshotNodes('Node / Http2Stream', []); } const server = http2.createServer(); @@ -24,50 +24,56 @@ server.listen(0, () => { const state = recordState(); // `Node / Http2Stream` (C++) -> Http2Stream (JS) - state.validateSnapshotNodes('Http2Stream', [ + state.validateSnapshotNodes('Node / Http2Stream', [ { children: [ - { name: 'Http2Stream' } + // current_headers and/or queue could be empty + { node_name: 'Http2Stream', edge_name: 'wrapped' } ] }, ], { loose: true }); // `Node / FileHandle` (C++) -> FileHandle (JS) - state.validateSnapshotNodes('FileHandle', [ + state.validateSnapshotNodes('Node / FileHandle', [ { children: [ - { name: 'FileHandle' } + { node_name: 'FileHandle', edge_name: 'wrapped' } + // current_headers could be empty ] } - ]); - state.validateSnapshotNodes('TCPSocketWrap', [ + ], { loose: true }); + state.validateSnapshotNodes('Node / TCPSocketWrap', [ { children: [ - { name: 'TCP' } + { node_name: 'TCP', edge_name: 'wrapped' } ] } ], { loose: true }); - state.validateSnapshotNodes('TCPServerWrap', [ + state.validateSnapshotNodes('Node / TCPServerWrap', [ { children: [ - { name: 'TCP' } + { node_name: 'TCP', edge_name: 'wrapped' } ] } ], { loose: true }); // `Node / StreamPipe` (C++) -> StreamPipe (JS) - state.validateSnapshotNodes('StreamPipe', [ + state.validateSnapshotNodes('Node / StreamPipe', [ { children: [ - { name: 'StreamPipe' } + { node_name: 'StreamPipe', edge_name: 'wrapped' } ] } ]); // `Node / Http2Session` (C++) -> Http2Session (JS) - state.validateSnapshotNodes('Http2Session', [ + state.validateSnapshotNodes('Node / Http2Session', [ { children: [ - { name: 'Http2Session' }, - { name: 'streams' } + { node_name: 'Http2Session', edge_name: 'wrapped' }, + { + node_name: 'Node / streams', edge_name: 'streams' + } + // outstanding_pings, outgoing_buffers, outgoing_storage, + // pending_rst_streams could be empty ] } ], { loose: true }); diff --git a/test/parallel/test-heapdump-inspector.js b/test/parallel/test-heapdump-inspector.js index 08fc6703d87c5c..4ac78edf6b928d 100644 --- a/test/parallel/test-heapdump-inspector.js +++ b/test/parallel/test-heapdump-inspector.js @@ -8,14 +8,15 @@ const { validateSnapshotNodes } = require('../common/heap'); const inspector = require('inspector'); const session = new inspector.Session(); -validateSnapshotNodes('JSBindingsConnection', []); +validateSnapshotNodes('Node / JSBindingsConnection', []); session.connect(); -validateSnapshotNodes('JSBindingsConnection', [ +validateSnapshotNodes('Node / JSBindingsConnection', [ { children: [ - { name: 'session' }, - { name: 'Connection' }, - (node) => node.type === 'closure' || typeof node.value === 'function' + { node_name: 'Node / InspectorSession', edge_name: 'session' }, + { node_name: 'Connection', edge_name: 'wrapped' }, + (edge) => (edge.to.type === undefined || // embedded graph + edge.to.type === 'closure') // snapshot ] } ]); diff --git a/test/parallel/test-heapdump-tls.js b/test/parallel/test-heapdump-tls.js index 90b2d8dc952f56..fee19bf67625b2 100644 --- a/test/parallel/test-heapdump-tls.js +++ b/test/parallel/test-heapdump-tls.js @@ -9,7 +9,7 @@ const { validateSnapshotNodes } = require('../common/heap'); const net = require('net'); const tls = require('tls'); -validateSnapshotNodes('TLSWrap', []); +validateSnapshotNodes('Node / TLSWrap', []); const server = net.createServer(common.mustCall((c) => { c.end(); @@ -21,13 +21,14 @@ const server = net.createServer(common.mustCall((c) => { })); c.write('hello'); - validateSnapshotNodes('TLSWrap', [ + validateSnapshotNodes('Node / TLSWrap', [ { children: [ - { name: 'NodeBIO' }, - { name: 'NodeBIO' }, + { node_name: 'Node / NodeBIO', edge_name: 'enc_out' }, + { node_name: 'Node / NodeBIO', edge_name: 'enc_in' }, // `Node / TLSWrap` (C++) -> `TLSWrap` (JS) - { name: 'TLSWrap' } + { node_name: 'TLSWrap', edge_name: 'wrapped' } + // pending_cleartext_input could be empty ] } ]); diff --git a/test/parallel/test-heapdump-worker.js b/test/parallel/test-heapdump-worker.js index b7b5c2f756717c..02b989c6b324dd 100644 --- a/test/parallel/test-heapdump-worker.js +++ b/test/parallel/test-heapdump-worker.js @@ -4,23 +4,22 @@ require('../common'); const { validateSnapshotNodes } = require('../common/heap'); const { Worker } = require('worker_threads'); -validateSnapshotNodes('Worker', []); +validateSnapshotNodes('Node / Worker', []); const worker = new Worker('setInterval(() => {}, 100);', { eval: true }); -validateSnapshotNodes('Worker', [ +validateSnapshotNodes('Node / Worker', [ { children: [ - { name: 'thread_exit_async' }, - { name: 'env' }, - { name: 'MessagePort' }, - { name: 'Worker' } + { node_name: 'Node / uv_async_t', edge_name: 'thread_exit_async' }, + { node_name: 'Node / Environment', edge_name: 'env' }, + { node_name: 'Node / MessagePort', edge_name: 'parent_port' }, + { node_name: 'Worker', edge_name: 'wrapped' } ] } ]); -validateSnapshotNodes('MessagePort', [ +validateSnapshotNodes('Node / MessagePort', [ { children: [ - { name: 'MessagePortData' }, - { name: 'MessagePort' } + { node_name: 'Node / MessagePortData', edge_name: 'data' } ] } ], { loose: true }); diff --git a/test/parallel/test-heapdump-zlib.js b/test/parallel/test-heapdump-zlib.js index 936e3a1a500b2d..f79e345821ea50 100644 --- a/test/parallel/test-heapdump-zlib.js +++ b/test/parallel/test-heapdump-zlib.js @@ -4,14 +4,14 @@ require('../common'); const { validateSnapshotNodes } = require('../common/heap'); const zlib = require('zlib'); -validateSnapshotNodes('ZCtx', []); +validateSnapshotNodes('Node / ZCtx', []); // eslint-disable-next-line no-unused-vars const gunzip = zlib.createGunzip(); -validateSnapshotNodes('ZCtx', [ +validateSnapshotNodes('Node / ZCtx', [ { children: [ - { name: 'Zlib' }, - { name: 'zlib memory' } + { node_name: 'Zlib', edge_name: 'wrapped' }, + { node_name: 'Node / zlib_memory', edge_name: 'zlib_memory' } ] } ]); diff --git a/test/parallel/test-http-eof-on-connect.js b/test/parallel/test-http-eof-on-connect.js index 7e244354c1cb88..5e885bb91a9daa 100644 --- a/test/parallel/test-http-eof-on-connect.js +++ b/test/parallel/test-http-eof-on-connect.js @@ -27,7 +27,7 @@ const http = require('http'); // This is a regression test for https://github.com/joyent/node/issues/44 // It is separate from test-http-malformed-request.js because it is only -// reproduceable on the first packet on the first connection to a server. +// reproducible on the first packet on the first connection to a server. const server = http.createServer(common.mustNotCall()); server.listen(0); diff --git a/test/parallel/test-http-full-response.js b/test/parallel/test-http-full-response.js index 2f6fc8fc2a176c..d08e091ebd9808 100644 --- a/test/parallel/test-http-full-response.js +++ b/test/parallel/test-http-full-response.js @@ -56,10 +56,10 @@ function runAb(opts, callback) { const completeRequests = parseInt(m[1]); m = /HTML transferred:\s*(\d+) bytes/i.exec(stdout); - const htmlTransfered = parseInt(m[1]); + const htmlTransferred = parseInt(m[1]); assert.strictEqual(bodyLength, documentLength); - assert.strictEqual(completeRequests * documentLength, htmlTransfered); + assert.strictEqual(completeRequests * documentLength, htmlTransferred); if (callback) callback(); }); diff --git a/test/parallel/test-http-pipeline-flood.js b/test/parallel/test-http-pipeline-flood.js index 3d6167d3870566..29df81e857db60 100644 --- a/test/parallel/test-http-pipeline-flood.js +++ b/test/parallel/test-http-pipeline-flood.js @@ -9,7 +9,7 @@ const common = require('../common'); // processed). // Normally when the writable stream emits a 'drain' event, the server then -// uncorks the readable stream, although we arent testing that part here. +// uncorks the readable stream, although we aren't testing that part here. // The issue being tested exists in Node.js 0.10.20 and is resolved in 0.10.21 // and newer. diff --git a/test/parallel/test-http2-binding.js b/test/parallel/test-http2-binding.js index f267e2e6c1481e..d202e58eadd7db 100644 --- a/test/parallel/test-http2-binding.js +++ b/test/parallel/test-http2-binding.js @@ -97,6 +97,7 @@ const expectedHeaderNames = { HTTP2_HEADER_AUTHORITY: ':authority', HTTP2_HEADER_SCHEME: ':scheme', HTTP2_HEADER_PATH: ':path', + HTTP2_HEADER_PROTOCOL: ':protocol', HTTP2_HEADER_DATE: 'date', HTTP2_HEADER_ACCEPT_CHARSET: 'accept-charset', HTTP2_HEADER_ACCEPT_ENCODING: 'accept-encoding', @@ -217,7 +218,8 @@ const expectedNGConstants = { NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: 3, NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: 4, NGHTTP2_SETTINGS_MAX_FRAME_SIZE: 5, - NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: 6 + NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: 6, + NGHTTP2_SETTINGS_ENABLE_CONNECT_PROTOCOL: 8 }; const defaultSettings = { diff --git a/test/parallel/test-http2-compat-serverresponse-end-after-statuses-without-body.js b/test/parallel/test-http2-compat-serverresponse-end-after-statuses-without-body.js index 83d5521bf2473f..ce8cbe600c8bd8 100644 --- a/test/parallel/test-http2-compat-serverresponse-end-after-statuses-without-body.js +++ b/test/parallel/test-http2-compat-serverresponse-end-after-statuses-without-body.js @@ -15,15 +15,15 @@ const { HTTP_STATUS_NOT_MODIFIED } = h2.constants; -const statusWithouBody = [ +const statusWithoutBody = [ HTTP_STATUS_NO_CONTENT, HTTP_STATUS_RESET_CONTENT, HTTP_STATUS_NOT_MODIFIED, ]; -const STATUS_CODES_COUNT = statusWithouBody.length; +const STATUS_CODES_COUNT = statusWithoutBody.length; const server = h2.createServer(common.mustCall(function(req, res) { - res.writeHead(statusWithouBody.pop()); + res.writeHead(statusWithoutBody.pop()); res.end(); }, STATUS_CODES_COUNT)); diff --git a/test/parallel/test-http2-compat-socket-destroy-delayed.js b/test/parallel/test-http2-compat-socket-destroy-delayed.js new file mode 100644 index 00000000000000..62405047d8266e --- /dev/null +++ b/test/parallel/test-http2-compat-socket-destroy-delayed.js @@ -0,0 +1,42 @@ +'use strict'; + +const common = require('../common'); +const { mustCall } = common; + +if (!common.hasCrypto) + common.skip('missing crypto'); + +const http2 = require('http2'); +const assert = require('assert'); + +const { + HTTP2_HEADER_PATH, + HTTP2_HEADER_METHOD, +} = http2.constants; + +// This tests verifies that calling `req.socket.destroy()` via +// setImmediate does not crash. +// Fixes https://github.com/nodejs/node/issues/22855. + +const app = http2.createServer(mustCall((req, res) => { + res.end('hello'); + setImmediate(() => req.socket.destroy()); +})); + +app.listen(0, mustCall(() => { + const session = http2.connect(`http://localhost:${app.address().port}`); + const request = session.request({ + [HTTP2_HEADER_PATH]: '/', + [HTTP2_HEADER_METHOD]: 'get' + }); + request.once('response', mustCall((headers, flags) => { + let data = ''; + request.on('data', (chunk) => { data += chunk; }); + request.on('end', mustCall(() => { + assert.strictEqual(data, 'hello'); + session.close(); + app.close(); + })); + })); + request.end(); +})); diff --git a/test/parallel/test-http2-connect-method-extended-cant-turn-off.js b/test/parallel/test-http2-connect-method-extended-cant-turn-off.js new file mode 100644 index 00000000000000..f4d033efe65707 --- /dev/null +++ b/test/parallel/test-http2-connect-method-extended-cant-turn-off.js @@ -0,0 +1,30 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); +const http2 = require('http2'); + +const settings = { enableConnectProtocol: true }; +const server = http2.createServer({ settings }); +server.on('stream', common.mustNotCall()); +server.on('session', common.mustCall((session) => { + // This will force the connection to close because once extended connect + // is on, it cannot be turned off. The server is behaving badly. + session.settings({ enableConnectProtocol: false }); +})); + +server.listen(0, common.mustCall(() => { + const client = http2.connect(`http://localhost:${server.address().port}`); + client.on('remoteSettings', common.mustCall((settings) => { + assert(settings.enableConnectProtocol); + const req = client.request({ + ':method': 'CONNECT', + ':protocol': 'foo' + }); + req.on('error', common.mustCall(() => { + server.close(); + })); + })); +})); diff --git a/test/parallel/test-http2-connect-method-extended.js b/test/parallel/test-http2-connect-method-extended.js new file mode 100644 index 00000000000000..bb424c73f0a2ad --- /dev/null +++ b/test/parallel/test-http2-connect-method-extended.js @@ -0,0 +1,39 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); +const http2 = require('http2'); + +const settings = { enableConnectProtocol: true }; +const server = http2.createServer({ settings }); +server.on('stream', common.mustCall((stream, headers) => { + assert.strictEqual(headers[':method'], 'CONNECT'); + assert.strictEqual(headers[':scheme'], 'http'); + assert.strictEqual(headers[':protocol'], 'foo'); + assert.strictEqual(headers[':authority'], + `localhost:${server.address().port}`); + assert.strictEqual(headers[':path'], '/'); + stream.respond(); + stream.end('ok'); +})); + +server.listen(0, common.mustCall(() => { + const client = http2.connect(`http://localhost:${server.address().port}`); + client.on('remoteSettings', common.mustCall((settings) => { + assert(settings.enableConnectProtocol); + const req = client.request({ + ':method': 'CONNECT', + ':protocol': 'foo' + }); + req.resume(); + req.on('end', common.mustCall()); + req.on('close', common.mustCall(() => { + assert.strictEqual(req.rstCode, 0); + server.close(); + client.close(); + })); + req.end(); + })); +})); diff --git a/test/parallel/test-http2-forget-closed-streams.js b/test/parallel/test-http2-forget-closed-streams.js new file mode 100644 index 00000000000000..c0b3bcd819140c --- /dev/null +++ b/test/parallel/test-http2-forget-closed-streams.js @@ -0,0 +1,53 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +// Issue #23116 +// nghttp2 keeps closed stream structures around in memory (couple of hundred +// bytes each) until a session is closed. It does this to maintain the priority +// tree. However, it limits the number of requests that can be made in a +// session before our memory tracking (correctly) kicks in. +// The fix is to tell nghttp2 to forget about closed streams. We don't make use +// of priority anyway. +// Without the fix, this test fails at ~40k requests with an exception: +// Error [ERR_HTTP2_STREAM_ERROR]: Stream closed with error code +// NGHTTP2_ENHANCE_YOUR_CALM + +const http2 = require('http2'); +const assert = require('assert'); + +const server = http2.createServer({ maxSessionMemory: 1 }); + +server.on('session', function(session) { + session.on('stream', function(stream) { + stream.on('end', common.mustCall(function() { + this.respond({ + ':status': 200 + }, { + endStream: true + }); + })); + stream.resume(); + }); +}); + +server.listen(0, function() { + const client = http2.connect(`http://localhost:${server.address().port}`); + + function next(i) { + if (i === 10000) { + client.close(); + return server.close(); + } + const stream = client.request({ ':method': 'POST' }); + stream.on('response', common.mustCall(function(headers) { + assert.strictEqual(headers[':status'], 200); + this.on('close', common.mustCall(() => next(i + 1))); + })); + stream.end(); + } + + next(0); +}); diff --git a/test/parallel/test-http2-onping.js b/test/parallel/test-http2-onping.js new file mode 100644 index 00000000000000..134a94ddb8f582 --- /dev/null +++ b/test/parallel/test-http2-onping.js @@ -0,0 +1,48 @@ +'use strict'; + +const { + hasCrypto, + mustCall, + skip +} = require('../common'); +if (!hasCrypto) + skip('missing crypto'); + +const { + deepStrictEqual +} = require('assert'); +const { + createServer, + connect +} = require('http2'); + +const check = Buffer.from([ 1, 2, 3, 4, 5, 6, 7, 8 ]); + +const server = createServer(); +server.on('stream', mustCall((stream) => { + stream.respond(); + stream.end('ok'); +})); +server.on('session', mustCall((session) => { + session.on('ping', mustCall((payload) => { + deepStrictEqual(check, payload); + })); + session.ping(check, mustCall()); +})); +server.listen(0, mustCall(() => { + const client = connect(`http://localhost:${server.address().port}`); + + client.on('ping', mustCall((payload) => { + deepStrictEqual(check, payload); + })); + client.on('connect', mustCall(() => { + client.ping(check, mustCall()); + })); + + const req = client.request(); + req.resume(); + req.on('close', mustCall(() => { + client.close(); + server.close(); + })); +})); diff --git a/test/parallel/test-http2-origin.js b/test/parallel/test-http2-origin.js new file mode 100644 index 00000000000000..6312d1f00649f0 --- /dev/null +++ b/test/parallel/test-http2-origin.js @@ -0,0 +1,179 @@ +'use strict'; + +const { + hasCrypto, + mustCall, + mustNotCall, + skip +} = require('../common'); +if (!hasCrypto) + skip('missing crypto'); + +const { + deepStrictEqual, + strictEqual, + throws +} = require('assert'); +const { + createSecureServer, + createServer, + connect +} = require('http2'); +const Countdown = require('../common/countdown'); + +const { readKey } = require('../common/fixtures'); + +const key = readKey('agent8-key.pem', 'binary'); +const cert = readKey('agent8-cert.pem', 'binary'); +const ca = readKey('fake-startcom-root-cert.pem', 'binary'); + +{ + const server = createSecureServer({ key, cert }); + server.on('stream', mustCall((stream) => { + stream.session.origin('https://example.org/a/b/c', + new URL('https://example.com')); + stream.respond(); + stream.end('ok'); + })); + server.on('session', mustCall((session) => { + session.origin('https://foo.org/a/b/c', new URL('https://bar.org')); + + // Won't error, but won't send anything + session.origin(); + + [0, true, {}, []].forEach((input) => { + throws( + () => session.origin(input), + { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError [ERR_INVALID_ARG_TYPE]' + } + ); + }); + + [new URL('foo://bar'), 'foo://bar'].forEach((input) => { + throws( + () => session.origin(input), + { + code: 'ERR_HTTP2_INVALID_ORIGIN', + name: 'TypeError [ERR_HTTP2_INVALID_ORIGIN]' + } + ); + }); + + ['not a valid url'].forEach((input) => { + throws( + () => session.origin(input), + { + code: 'ERR_INVALID_URL', + name: 'TypeError [ERR_INVALID_URL]' + } + ); + }); + })); + + server.listen(0, mustCall(() => { + const originSet = [`https://localhost:${server.address().port}`]; + const client = connect(originSet[0], { ca }); + const checks = [ + ['https://foo.org', 'https://bar.org'], + ['https://example.org', 'https://example.com'] + ]; + + const countdown = new Countdown(2, () => { + client.close(); + server.close(); + }); + + client.on('origin', mustCall((origins) => { + const check = checks.shift(); + originSet.push(...check); + deepStrictEqual(originSet, client.originSet); + deepStrictEqual(origins, check); + countdown.dec(); + }, 2)); + + client.request().on('close', mustCall()).resume(); + })); +} + +// Test automatically sending origin on connection start +{ + const origins = [ 'https://foo.org/a/b/c', 'https://bar.org' ]; + const server = createSecureServer({ key, cert, origins }); + server.on('stream', mustCall((stream) => { + stream.respond(); + stream.end('ok'); + })); + + server.listen(0, mustCall(() => { + const check = ['https://foo.org', 'https://bar.org']; + const originSet = [`https://localhost:${server.address().port}`]; + const client = connect(originSet[0], { ca }); + + client.on('origin', mustCall((origins) => { + originSet.push(...check); + deepStrictEqual(originSet, client.originSet); + deepStrictEqual(origins, check); + client.close(); + server.close(); + })); + + client.request().on('close', mustCall()).resume(); + })); +} + +// If return status is 421, the request origin must be removed from the +// originSet +{ + const server = createSecureServer({ key, cert }); + server.on('stream', mustCall((stream) => { + stream.respond({ ':status': 421 }); + stream.end(); + })); + server.on('session', mustCall((session) => { + session.origin('https://foo.org'); + })); + + server.listen(0, mustCall(() => { + const origin = `https://localhost:${server.address().port}`; + const client = connect(origin, { ca }); + + client.on('origin', mustCall((origins) => { + deepStrictEqual([origin, 'https://foo.org'], client.originSet); + const req = client.request({ ':authority': 'foo.org' }); + req.on('response', mustCall((headers) => { + strictEqual(421, headers[':status']); + deepStrictEqual([origin], client.originSet); + })); + req.resume(); + req.on('close', mustCall(() => { + client.close(); + server.close(); + })); + }, 1)); + })); +} + +// Origin is ignored on plain text HTTP/2 connections... server will still +// send them, but client will ignore them. +{ + const server = createServer(); + server.on('stream', mustCall((stream) => { + stream.session.origin('https://example.org', + new URL('https://example.com')); + stream.respond(); + stream.end('ok'); + })); + server.listen(0, mustCall(() => { + const client = connect(`http://localhost:${server.address().port}`); + client.on('origin', mustNotCall()); + strictEqual(client.originSet, undefined); + const req = client.request(); + req.resume(); + req.on('close', mustCall(() => { + client.close(); + server.close(); + })); + })); +} diff --git a/test/parallel/test-http2-server-push-stream.js b/test/parallel/test-http2-server-push-stream.js index 69e74349475c42..74d41ba4b9c672 100644 --- a/test/parallel/test-http2-server-push-stream.js +++ b/test/parallel/test-http2-server-push-stream.js @@ -54,6 +54,7 @@ server.listen(0, common.mustCall(() => { assert.strictEqual(headers['content-type'], 'text/html'); assert.strictEqual(headers['x-push-data'], 'pushed by server'); })); + stream.on('aborted', common.mustNotCall()); })); let data = ''; diff --git a/test/parallel/test-http2-socket-proxy.js b/test/parallel/test-http2-socket-proxy.js index 64daeb62baebf2..17f641835de696 100644 --- a/test/parallel/test-http2-socket-proxy.js +++ b/test/parallel/test-http2-socket-proxy.js @@ -8,6 +8,7 @@ if (!common.hasCrypto) const assert = require('assert'); const h2 = require('http2'); const net = require('net'); +const util = require('util'); const { kTimeout } = require('internal/timers'); @@ -35,6 +36,22 @@ server.on('stream', common.mustCall(function(stream, headers) { socket.setTimeout(987); assert.strictEqual(session[kTimeout]._idleTimeout, 987); + // The indentation is corrected depending on the depth. + let inspectedTimeout = util.inspect(session[kTimeout]); + assert(inspectedTimeout.includes(' _idlePrev: [TimersList]')); + assert(inspectedTimeout.includes(' _idleNext: [TimersList]')); + assert(!inspectedTimeout.includes(' _idleNext: [TimersList]')); + + inspectedTimeout = util.inspect([ session[kTimeout] ]); + assert(inspectedTimeout.includes(' _idlePrev: [TimersList]')); + assert(inspectedTimeout.includes(' _idleNext: [TimersList]')); + assert(!inspectedTimeout.includes(' _idleNext: [TimersList]')); + + const inspectedTimersList = util.inspect([[ session[kTimeout]._idlePrev ]]); + assert(inspectedTimersList.includes(' _idlePrev: [Timeout]')); + assert(inspectedTimersList.includes(' _idleNext: [Timeout]')); + assert(!inspectedTimersList.includes(' _idleNext: [Timeout]')); + common.expectsError(() => socket.destroy, errMsg); common.expectsError(() => socket.emit, errMsg); common.expectsError(() => socket.end, errMsg); diff --git a/test/parallel/test-https-agent-additional-options.js b/test/parallel/test-https-agent-additional-options.js index 8d10524d902ca7..eaa6ea710e4d9f 100644 --- a/test/parallel/test-https-agent-additional-options.js +++ b/test/parallel/test-https-agent-additional-options.js @@ -24,7 +24,7 @@ function getBaseOptions(port) { path: '/', port: port, ca: options.ca, - rejectUnautorized: true, + rejectUnauthorized: true, servername: 'agent1', }; } diff --git a/test/parallel/test-icu-data-dir.js b/test/parallel/test-icu-data-dir.js index 800e20c48bab03..47c955bc740fb3 100644 --- a/test/parallel/test-icu-data-dir.js +++ b/test/parallel/test-icu-data-dir.js @@ -1,7 +1,9 @@ 'use strict'; const common = require('../common'); const os = require('os'); -if (!(common.hasIntl && common.hasSmallICU)) + +const { hasSmallICU } = process.binding('config'); +if (!(common.hasIntl && hasSmallICU)) common.skip('missing Intl'); const assert = require('assert'); diff --git a/test/parallel/test-inspector-multisession-js.js b/test/parallel/test-inspector-multisession-js.js index 097b77e2c24231..92879d3ff3a7df 100644 --- a/test/parallel/test-inspector-multisession-js.js +++ b/test/parallel/test-inspector-multisession-js.js @@ -1,3 +1,4 @@ +// Flags: --expose-internals 'use strict'; const common = require('../common'); @@ -6,6 +7,7 @@ common.skipIfInspectorDisabled(); const assert = require('assert'); const { Session } = require('inspector'); const path = require('path'); +const { pathToFileURL } = require('url'); function debugged() { return 42; @@ -32,8 +34,8 @@ async function test() { await new Promise((resolve, reject) => { session1.post('Debugger.setBreakpointByUrl', { - 'lineNumber': 9, - 'url': path.resolve(__dirname, __filename), + 'lineNumber': 12, + 'url': pathToFileURL(path.resolve(__dirname, __filename)).toString(), 'columnNumber': 0, 'condition': '' }, (error, result) => { diff --git a/test/parallel/test-inspector-port-zero-cluster.js b/test/parallel/test-inspector-port-zero-cluster.js index e522056571d1c2..0330f1d50e6f70 100644 --- a/test/parallel/test-inspector-port-zero-cluster.js +++ b/test/parallel/test-inspector-port-zero-cluster.js @@ -3,6 +3,7 @@ const common = require('../common'); common.skipIfInspectorDisabled(); +common.skipIfWorker(); // Assert that even when started with `--inspect=0` workers are assigned // consecutive (i.e. deterministically predictable) debug ports diff --git a/test/parallel/test-inspector-tracing-domain.js b/test/parallel/test-inspector-tracing-domain.js index 241e0dbec777f4..e86996eb5c5892 100644 --- a/test/parallel/test-inspector-tracing-domain.js +++ b/test/parallel/test-inspector-tracing-domain.js @@ -3,6 +3,7 @@ const common = require('../common'); common.skipIfInspectorDisabled(); +common.skipIfWorker(); // https://github.com/nodejs/node/issues/22767 const assert = require('assert'); const { Session } = require('inspector'); diff --git a/test/parallel/test-internal-errors.js b/test/parallel/test-internal-errors.js index be93598e068464..de5d6ed3b9bb8e 100644 --- a/test/parallel/test-internal-errors.js +++ b/test/parallel/test-internal-errors.js @@ -92,7 +92,7 @@ common.expectsError(() => { }, { code: 'ERR_ASSERTION', type: assert.AssertionError, - message: /- message: 'Error for testing purposes: a'\n\+ message: \/\^Error/ + message: /- message: 'Error for testing purposes: a',\n\+ message: \/\^Error/ }); // Test ERR_INVALID_FD_TYPE @@ -129,7 +129,7 @@ assert.strictEqual(errors.getMessage('ERR_MISSING_ARGS', ['a', 'b', 'c']), // Test ERR_SOCKET_BAD_PORT assert.strictEqual( errors.getMessage('ERR_SOCKET_BAD_PORT', [0]), - 'Port should be > 0 and < 65536. Received 0.'); + 'Port should be >= 0 and < 65536. Received 0.'); // Test ERR_TLS_CERT_ALTNAME_INVALID assert.strictEqual( diff --git a/test/parallel/test-module-create-require.js b/test/parallel/test-module-create-require.js new file mode 100644 index 00000000000000..03ed31939fba67 --- /dev/null +++ b/test/parallel/test-module-create-require.js @@ -0,0 +1,12 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); +const path = require('path'); + +const { createRequireFromPath } = require('module'); + +const p = path.resolve(__dirname, '..', 'fixtures', 'fake.js'); + +const req = createRequireFromPath(p); +assert.strictEqual(req('./baz'), 'perhaps I work'); diff --git a/test/parallel/test-module-readonly.js b/test/parallel/test-module-readonly.js index fa12471a37c31b..8f14d9ee18c34a 100644 --- a/test/parallel/test-module-readonly.js +++ b/test/parallel/test-module-readonly.js @@ -38,7 +38,7 @@ try { except = err; } -// Remove the expliclty granted rights, and reenable inheritance +// Remove the explicitly granted rights, and re-enable inheritance cp.execSync( `icacls.exe "${readOnlyModFullPath}" /remove "%USERNAME%" /inheritance:e`); diff --git a/test/parallel/test-pending-deprecation.js b/test/parallel/test-pending-deprecation.js index f8b4ec8e5b7b94..bb11d84bcc0aec 100644 --- a/test/parallel/test-pending-deprecation.js +++ b/test/parallel/test-pending-deprecation.js @@ -36,6 +36,14 @@ switch (process.argv[2]) { assert.strictEqual(code, 0, message('--pending-deprecation')); })); + // Test the --pending_deprecation command line switch. + fork(__filename, ['switch'], { + execArgv: ['--pending_deprecation'], + silent: true + }).on('exit', common.mustCall((code) => { + assert.strictEqual(code, 0, message('--pending_deprecation')); + })); + // Test the NODE_PENDING_DEPRECATION environment var. fork(__filename, ['env'], { env: Object.assign({}, process.env, { NODE_PENDING_DEPRECATION: 1 }), diff --git a/test/parallel/test-process-env-allowed-flags.js b/test/parallel/test-process-env-allowed-flags.js index 7313736368ce22..089f139436ca57 100644 --- a/test/parallel/test-process-env-allowed-flags.js +++ b/test/parallel/test-process-env-allowed-flags.js @@ -19,10 +19,10 @@ require('../common'); ].concat(process.config.variables.v8_enable_inspector ? [ '--inspect-brk', 'inspect-brk', + '--inspect_brk', ] : []); const badFlags = [ - '--inspect_brk', 'INSPECT-BRK', '--INSPECT-BRK', '--r', diff --git a/test/parallel/test-promise-swallowed-event.js b/test/parallel/test-promise-swallowed-event.js new file mode 100644 index 00000000000000..144d732c20668b --- /dev/null +++ b/test/parallel/test-promise-swallowed-event.js @@ -0,0 +1,58 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const rejection = new Error('Swallowed reject'); +const rejection2 = new TypeError('Weird'); +const resolveMessage = 'First call'; +const rejectPromise = new Promise((r) => setTimeout(r, 10, rejection2)); +const swallowedResolve = 'Swallowed resolve'; +const swallowedResolve2 = 'Foobar'; + +process.on('multipleResolves', common.mustCall(handler, 4)); + +const p1 = new Promise((resolve, reject) => { + resolve(resolveMessage); + resolve(swallowedResolve); + reject(rejection); +}); + +const p2 = new Promise((resolve, reject) => { + reject(rejectPromise); + resolve(swallowedResolve2); + reject(rejection2); +}).catch(common.mustCall((exception) => { + assert.strictEqual(exception, rejectPromise); +})); + +const expected = [ + 'resolve', + p1, + swallowedResolve, + 'reject', + p1, + rejection, + 'resolve', + p2, + swallowedResolve2, + 'reject', + p2, + rejection2 +]; + +let count = 0; + +function handler(type, promise, reason) { + assert.strictEqual(type, expected.shift()); + // In the first two cases the promise is identical because it's not delayed. + // The other two cases are not identical, because the `promise` is caught in a + // state when it has no knowledge about the `.catch()` handler that is + // attached to it right afterwards. + if (count++ < 2) { + assert.strictEqual(promise, expected.shift()); + } else { + assert.notStrictEqual(promise, expected.shift()); + } + assert.strictEqual(reason, expected.shift()); +} diff --git a/test/parallel/test-querystring-maxKeys-non-finite.js b/test/parallel/test-querystring-maxKeys-non-finite.js index 2db3acff0fc41f..4c752fd26948d5 100644 --- a/test/parallel/test-querystring-maxKeys-non-finite.js +++ b/test/parallel/test-querystring-maxKeys-non-finite.js @@ -34,7 +34,7 @@ const originalMaxLength = 1000; const params = createManyParams(count); // thealphanerd -// 27def4f introduced a change to parse that would cause Inifity +// 27def4f introduced a change to parse that would cause Infinity // to be passed to String.prototype.split as an argument for limit // In this instance split will always return an empty array // this test confirms that the output of parse is the expected length diff --git a/test/parallel/test-repl-editor.js b/test/parallel/test-repl-editor.js index 8db7789f029a10..5afbf2540d8403 100644 --- a/test/parallel/test-repl-editor.js +++ b/test/parallel/test-repl-editor.js @@ -74,7 +74,7 @@ const tests = [ tests.forEach(run); // Auto code alignment for .editor mode -function testCodeAligment({ input, cursor = 0, line = '' }) { +function testCodeAlignment({ input, cursor = 0, line = '' }) { const stream = new ArrayStream(); const outputStream = new ArrayStream(); @@ -121,4 +121,4 @@ const codeAlignmentTests = [ } ]; -codeAlignmentTests.forEach(testCodeAligment); +codeAlignmentTests.forEach(testCodeAlignment); diff --git a/test/parallel/test-repl-top-level-await.js b/test/parallel/test-repl-top-level-await.js index 7cb6bf20fd4fd5..78308ce186c413 100644 --- a/test/parallel/test-repl-top-level-await.js +++ b/test/parallel/test-repl-top-level-await.js @@ -159,7 +159,7 @@ async function ctrlCTest() { { ctrl: true, name: 'c' } ]), [ 'await timeout(100000)\r', - 'Thrown: Error [ERR_SCRIPT_EXECUTION_INTERRUPTED]: ' + + 'Error [ERR_SCRIPT_EXECUTION_INTERRUPTED]: ' + 'Script execution was interrupted by `SIGINT`.', PROMPT ]); diff --git a/test/parallel/test-repl-underscore.js b/test/parallel/test-repl-underscore.js index f7fe0bcea80ca0..dea2ed43704dfd 100644 --- a/test/parallel/test-repl-underscore.js +++ b/test/parallel/test-repl-underscore.js @@ -177,8 +177,12 @@ function testError() { '[Error: foo]', // The sync error, with individual property echoes - /Error: ENOENT: no such file or directory, scandir '.*nonexistent.*'/, + /^{ Error: ENOENT: no such file or directory, scandir '.*nonexistent.*'/, /Object\.readdirSync/, + /^ errno: -(2|4058),$/, + " syscall: 'scandir',", + " code: 'ENOENT',", + " path: '/nonexistent?' }", "'ENOENT'", "'scandir'", diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js index 8cb4b686b85e40..49e718da0f0683 100644 --- a/test/parallel/test-repl.js +++ b/test/parallel/test-repl.js @@ -132,7 +132,11 @@ const errorTests = [ // Uncaught error throws and prints out { send: 'throw new Error(\'test error\');', - expect: /^Error: test error/ + expect: 'Error: test error' + }, + { + send: "throw { foo: 'bar' };", + expect: "Thrown: { foo: 'bar' }" }, // Common syntax error is treated as multiline command { @@ -526,7 +530,7 @@ const errorTests = [ { send: 'require("internal/repl")', expect: [ - /^Error: Cannot find module 'internal\/repl'/, + /^{ Error: Cannot find module 'internal\/repl'/, /^ at .*/, /^ at .*/, /^ at .*/, diff --git a/test/parallel/test-stdio-pipe-access.js b/test/parallel/test-stdio-pipe-access.js index 084fa4c038e7da..e8f8131d1f19e8 100644 --- a/test/parallel/test-stdio-pipe-access.js +++ b/test/parallel/test-stdio-pipe-access.js @@ -3,7 +3,7 @@ const common = require('../common'); if (!common.isMainThread) common.skip("Workers don't have process-like stdio"); -// Test if Node handles acessing process.stdin if it is a redirected +// Test if Node handles accessing process.stdin if it is a redirected // pipe without deadlocking const { spawn, spawnSync } = require('child_process'); diff --git a/test/parallel/test-stdout-cannot-be-closed-child-process-pipe.js b/test/parallel/test-stdout-cannot-be-closed-child-process-pipe.js index d19b522e290ba9..7cd4b90c008a2f 100644 --- a/test/parallel/test-stdout-cannot-be-closed-child-process-pipe.js +++ b/test/parallel/test-stdout-cannot-be-closed-child-process-pipe.js @@ -24,9 +24,9 @@ function parent() { }); child.on('close', function(code, signal) { - assert(code); + assert.strictEqual(code, 0); + assert.strictEqual(err, ''); assert.strictEqual(out, 'foo'); - assert(/process\.stdout cannot be closed/.test(err)); console.log('ok'); }); } diff --git a/test/parallel/test-stream-readable-async-iterators.js b/test/parallel/test-stream-readable-async-iterators.js index d8eb83a58506d1..fb3c55846c4450 100644 --- a/test/parallel/test-stream-readable-async-iterators.js +++ b/test/parallel/test-stream-readable-async-iterators.js @@ -5,6 +5,28 @@ const { Readable } = require('stream'); const assert = require('assert'); async function tests() { + { + const AsyncIteratorPrototype = Object.getPrototypeOf( + Object.getPrototypeOf(async function* () {}).prototype); + const rs = new Readable({}); + assert.strictEqual( + Object.getPrototypeOf(Object.getPrototypeOf(rs[Symbol.asyncIterator]())), + AsyncIteratorPrototype); + } + + await (async function() { + const readable = new Readable({ objectMode: true, read() {} }); + readable.push(0); + readable.push(1); + readable.push(null); + + const iter = readable[Symbol.asyncIterator](); + assert.strictEqual((await iter.next()).value, 0); + for await (const d of iter) { + assert.strictEqual(d, 1); + } + })(); + await (async function() { console.log('read without for..await'); const max = 5; diff --git a/test/parallel/test-stream-writable-write-writev-finish.js b/test/parallel/test-stream-writable-write-writev-finish.js index c0bb60f925cfd8..98660b76ac8ea6 100644 --- a/test/parallel/test-stream-writable-write-writev-finish.js +++ b/test/parallel/test-stream-writable-write-writev-finish.js @@ -174,7 +174,7 @@ const stream = require('stream'); }; w.on('error', common.mustCall()); w.on('finish', () => { - w.write("should't write in finish listener"); + w.write("shouldn't write in finish listener"); }); w.end(); } diff --git a/test/parallel/test-stream2-readable-from-list.js b/test/parallel/test-stream2-readable-from-list.js index f812f75e7ca8b5..00024b91200fff 100644 --- a/test/parallel/test-stream2-readable-from-list.js +++ b/test/parallel/test-stream2-readable-from-list.js @@ -25,6 +25,7 @@ require('../common'); const assert = require('assert'); const fromList = require('_stream_readable')._fromList; const BufferList = require('internal/streams/buffer_list'); +const util = require('util'); function bufferListFromArray(arr) { const bl = new BufferList(); @@ -41,6 +42,16 @@ function bufferListFromArray(arr) { Buffer.from('kuel') ]; list = bufferListFromArray(list); + assert.strictEqual( + util.inspect([ list ], { compact: false }), + `[ + BufferList { + head: [Object], + tail: [Object], + length: 4 + } +]`); + // read more than the first element. let ret = fromList(6, { buffer: list, length: 16 }); assert.strictEqual(ret.toString(), 'foogba'); diff --git a/test/parallel/test-timers-unrefd-interval-still-fires.js b/test/parallel/test-timers-unrefd-interval-still-fires.js index a9e9af84304217..45c59c01082777 100644 --- a/test/parallel/test-timers-unrefd-interval-still-fires.js +++ b/test/parallel/test-timers-unrefd-interval-still-fires.js @@ -16,7 +16,7 @@ const timer = setInterval(common.mustCall(() => { if (--N === 0) { clearInterval(timer); timer._onTimeout = - common.mustNotCall('Unrefd interal fired after being cleared'); + common.mustNotCall('Unrefd interval fired after being cleared'); clearTimeout(keepOpen); } }, N), 1); diff --git a/test/parallel/test-tls-ecdh-disable.js b/test/parallel/test-tls-ecdh-disable.js deleted file mode 100644 index f06063200c5f36..00000000000000 --- a/test/parallel/test-tls-ecdh-disable.js +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// Test that the usage of elliptic curves are not permitted if disabled during -// server initialization. - -'use strict'; -const common = require('../common'); -const { readKey } = require('../common/fixtures'); -if (!common.hasCrypto) - common.skip('missing crypto'); - -if (!common.opensslCli) - common.skip('missing openssl-cli'); - -const OPENSSL_VERSION_NUMBER = - require('crypto').constants.OPENSSL_VERSION_NUMBER; -if (OPENSSL_VERSION_NUMBER >= 0x10100000) - common.skip('false ecdhCurve not supported in OpenSSL 1.1.0'); - -const assert = require('assert'); -const tls = require('tls'); -const exec = require('child_process').exec; - -const options = { - key: readKey('agent2-key.pem'), - cert: readKey('agent2-cert.pem'), - ciphers: 'ECDHE-RSA-AES128-SHA', - ecdhCurve: false -}; - -common.expectWarning('DeprecationWarning', - '{ ecdhCurve: false } is deprecated.', - 'DEP0083'); - -const server = tls.createServer(options, common.mustNotCall()); - -server.listen(0, '127.0.0.1', common.mustCall(function() { - const cmd = `"${common.opensslCli}" s_client -cipher ${ - options.ciphers} -connect 127.0.0.1:${this.address().port}`; - - exec(cmd, common.mustCall(function(err, stdout, stderr) { - // Old versions of openssl will still exit with 0 so we - // can't just check if err is not null. - assert(stderr.includes('handshake failure')); - server.close(); - })); -})); diff --git a/test/parallel/test-trace-events-dynamic-enable.js b/test/parallel/test-trace-events-dynamic-enable.js index a32949f8ec5994..24a186c15a85c7 100644 --- a/test/parallel/test-trace-events-dynamic-enable.js +++ b/test/parallel/test-trace-events-dynamic-enable.js @@ -3,6 +3,7 @@ const common = require('../common'); common.skipIfInspectorDisabled(); +common.skipIfWorker(); // https://github.com/nodejs/node/issues/22767 const assert = require('assert'); const { performance } = require('perf_hooks'); diff --git a/test/parallel/test-url-pathtofileurl.js b/test/parallel/test-url-pathtofileurl.js new file mode 100644 index 00000000000000..ad8203cd7b1a87 --- /dev/null +++ b/test/parallel/test-url-pathtofileurl.js @@ -0,0 +1,24 @@ +'use strict'; +const { isWindows } = require('../common'); +const assert = require('assert'); +const url = require('url'); + +{ + const fileURL = url.pathToFileURL('test/').href; + assert.ok(fileURL.startsWith('file:///')); + assert.ok(fileURL.endsWith('/')); +} + +{ + const fileURL = url.pathToFileURL('test\\').href; + assert.ok(fileURL.startsWith('file:///')); + if (isWindows) + assert.ok(fileURL.endsWith('/')); + else + assert.ok(fileURL.endsWith('%5C')); +} + +{ + const fileURL = url.pathToFileURL('test/%').href; + assert.ok(fileURL.includes('%25')); +} diff --git a/test/parallel/test-util-format.js b/test/parallel/test-util-format.js index a8adf936719932..0c4ba82fec8359 100644 --- a/test/parallel/test-util-format.js +++ b/test/parallel/test-util-format.js @@ -68,6 +68,18 @@ assert.strictEqual(util.format('%d', -0.5), '-0.5'); assert.strictEqual(util.format('%d', ''), '0'); assert.strictEqual(util.format('%d %d', 42, 43), '42 43'); assert.strictEqual(util.format('%d %d', 42), '42 %d'); +assert.strictEqual( + util.format('%d', 1180591620717411303424), + '1.1805916207174113e+21' +); +assert.strictEqual( + util.format('%d', 1180591620717411303424n), + '1180591620717411303424n' +); +assert.strictEqual( + util.format('%d %d', 1180591620717411303424n, 12345678901234567890123n), + '1180591620717411303424n 12345678901234567890123n' +); // Integer format specifier assert.strictEqual(util.format('%i'), '%i'); @@ -80,6 +92,28 @@ assert.strictEqual(util.format('%i', -0.5), '0'); assert.strictEqual(util.format('%i', ''), 'NaN'); assert.strictEqual(util.format('%i %i', 42, 43), '42 43'); assert.strictEqual(util.format('%i %i', 42), '42 %i'); +assert.strictEqual( + util.format('%i', 1180591620717411303424), + '1' +); +assert.strictEqual( + util.format('%i', 1180591620717411303424n), + '1180591620717411303424n' +); +assert.strictEqual( + util.format('%i %i', 1180591620717411303424n, 12345678901234567890123n), + '1180591620717411303424n 12345678901234567890123n' +); + +assert.strictEqual( + util.format('%d %i', 1180591620717411303424n, 12345678901234567890123n), + '1180591620717411303424n 12345678901234567890123n' +); + +assert.strictEqual( + util.format('%i %d', 1180591620717411303424n, 12345678901234567890123n), + '1180591620717411303424n 12345678901234567890123n' +); // Float format specifier assert.strictEqual(util.format('%f'), '%f'); diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index df1348e95abf4d..a6e6c2f1bf9737 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -624,8 +624,9 @@ util.inspect([{ inspect: () => 123 }]); // GH-2225 { - const x = { inspect: util.inspect }; - assert.strictEqual(util.inspect(x).includes('inspect'), true); + const x = { [util.inspect.custom]: util.inspect }; + assert(util.inspect(x).includes( + '[Symbol(nodejs.util.inspect.custom)]:\n { [Function: inspect]')); } // util.inspect should display the escaped value of a key. @@ -781,6 +782,20 @@ util.inspect({ hasOwnProperty: null }); }; util.inspect(subject, { customInspectOptions: true }); + + // util.inspect.custom is a shared symbol which can be accessed as + // Symbol.for("nodejs.util.inspect.custom"). + const inspect = Symbol.for('nodejs.util.inspect.custom'); + + subject[inspect] = () => ({ baz: 'quux' }); + + assert.strictEqual(util.inspect(subject), '{ baz: \'quux\' }'); + + subject[inspect] = (depth, opts) => { + assert.strictEqual(opts.customInspectOptions, true); + }; + + util.inspect(subject, { customInspectOptions: true }); } { @@ -814,7 +829,7 @@ util.inspect({ hasOwnProperty: null }); '{ a: 123, inspect: [Function: inspect] }'); const subject = { a: 123, [util.inspect.custom]() { return this; } }; - const UIC = 'util.inspect.custom'; + const UIC = 'nodejs.util.inspect.custom'; assert.strictEqual(util.inspect(subject), `{ a: 123,\n [Symbol(${UIC})]: [Function: [${UIC}]] }`); } @@ -922,7 +937,7 @@ if (typeof Symbol !== 'undefined') { const set = new Set(['foo']); set.bar = 42; assert.strictEqual( - util.inspect(set, true), + util.inspect(set, { showHidden: true }), "Set { 'foo', [size]: 1, bar: 42 }" ); } @@ -1235,8 +1250,11 @@ util.inspect(process); // Setting custom inspect property to a non-function should do nothing. { - const obj = { inspect: 'fhqwhgads' }; - assert.strictEqual(util.inspect(obj), "{ inspect: 'fhqwhgads' }"); + const obj = { [util.inspect.custom]: 'fhqwhgads' }; + assert.strictEqual( + util.inspect(obj), + "{ [Symbol(nodejs.util.inspect.custom)]: 'fhqwhgads' }" + ); } { @@ -1700,3 +1718,33 @@ assert.strictEqual(inspect(Object(13n)), '[BigInt: 13n]'); ); rejection.catch(() => {}); } + +assert.strictEqual( + inspect([1, 3, 2], { sorted: true }), + inspect([1, 3, 2]) +); +assert.strictEqual( + inspect({ c: 3, a: 1, b: 2 }, { sorted: true }), + '{ a: 1, b: 2, c: 3 }' +); +assert.strictEqual( + inspect( + { a200: 4, a100: 1, a102: 3, a101: 2 }, + { sorted(a, b) { return b.localeCompare(a); } } + ), + '{ a200: 4, a102: 3, a101: 2, a100: 1 }' +); + +// Non-indices array properties are sorted as well. +{ + const arr = [3, 2, 1]; + arr.b = 2; + arr.c = 3; + arr.a = 1; + arr[Symbol('b')] = true; + arr[Symbol('a')] = false; + assert.strictEqual( + inspect(arr, { sorted: true }), + '[ 3, 2, 1, [Symbol(a)]: false, [Symbol(b)]: true, a: 1, b: 2, c: 3 ]' + ); +} diff --git a/test/parallel/test-util-log.js b/test/parallel/test-util-log.js index 4d81fc8f7a4255..3de79b835d85a3 100644 --- a/test/parallel/test-util-log.js +++ b/test/parallel/test-util-log.js @@ -25,6 +25,7 @@ const { hijackStdout, hijackStderr, restoreStdout, + restoreStderr, } = require('../common/hijackstdio'); const assert = require('assert'); const util = require('util'); @@ -63,3 +64,4 @@ tests.forEach(function(test) { assert.strictEqual(process.stdout.writeTimes, tests.length); restoreStdout(); +restoreStderr(); diff --git a/test/parallel/test-util.js b/test/parallel/test-util.js index 337cb789f73656..2f91417d106148 100644 --- a/test/parallel/test-util.js +++ b/test/parallel/test-util.js @@ -113,14 +113,17 @@ assert.strictEqual(util.isBoolean(false), true); assert.strictEqual(util.isBoolean('string'), false); assert.strictEqual(util.isNull(null), true); +assert.strictEqual(util.isNull(undefined), false); assert.strictEqual(util.isNull(), false); assert.strictEqual(util.isNull('string'), false); +assert.strictEqual(util.isUndefined(undefined), true); assert.strictEqual(util.isUndefined(), true); assert.strictEqual(util.isUndefined(null), false); assert.strictEqual(util.isUndefined('string'), false); assert.strictEqual(util.isNullOrUndefined(null), true); +assert.strictEqual(util.isNullOrUndefined(undefined), true); assert.strictEqual(util.isNullOrUndefined(), true); assert.strictEqual(util.isNullOrUndefined('string'), false); diff --git a/test/parallel/test-v8-coverage.js b/test/parallel/test-v8-coverage.js index ad5100b42ea8d9..16a55b0fc4b8e8 100644 --- a/test/parallel/test-v8-coverage.js +++ b/test/parallel/test-v8-coverage.js @@ -79,6 +79,23 @@ function nextdir() { assert.strictEqual(fixtureCoverage.functions[2].ranges[1].count, 0); } +// outputs coverage from worker. +{ + const coverageDirectory = path.join(tmpdir.path, nextdir()); + const output = spawnSync(process.execPath, [ + '--experimental-worker', + require.resolve('../fixtures/v8-coverage/worker') + ], { env: { ...process.env, NODE_V8_COVERAGE: coverageDirectory } }); + assert.strictEqual(output.status, 0); + const fixtureCoverage = getFixtureCoverage('subprocess.js', + coverageDirectory); + assert.ok(fixtureCoverage); + // first branch executed. + assert.strictEqual(fixtureCoverage.functions[2].ranges[0].count, 1); + // second branch did not execute. + assert.strictEqual(fixtureCoverage.functions[2].ranges[1].count, 0); +} + // does not output coverage if NODE_V8_COVERAGE is empty. { const coverageDirectory = path.join(tmpdir.path, nextdir()); @@ -97,7 +114,7 @@ function getFixtureCoverage(fixtureFile, coverageDirectory) { for (const coverageFile of coverageFiles) { const coverage = require(path.join(coverageDirectory, coverageFile)); for (const fixtureCoverage of coverage.result) { - if (fixtureCoverage.url.indexOf(`${path.sep}${fixtureFile}`) !== -1) { + if (fixtureCoverage.url.indexOf(`/${fixtureFile}`) !== -1) { return fixtureCoverage; } } diff --git a/test/parallel/test-warn-sigprof.js b/test/parallel/test-warn-sigprof.js index e5335215d743b6..c3986a27be1703 100644 --- a/test/parallel/test-warn-sigprof.js +++ b/test/parallel/test-warn-sigprof.js @@ -10,6 +10,8 @@ common.skipIfInspectorDisabled(); if (common.isWindows) common.skip('test does not apply to Windows'); +common.skipIfWorker(); // Worker inspector never has a server running + common.expectWarning('Warning', 'process.on(SIGPROF) is reserved while debugging', common.noWarnCode); diff --git a/test/parallel/test-worker-debug.js b/test/parallel/test-worker-debug.js new file mode 100644 index 00000000000000..7a829ad0ab43e7 --- /dev/null +++ b/test/parallel/test-worker-debug.js @@ -0,0 +1,228 @@ +// Flags: --experimental-worker +'use strict'; +const common = require('../common'); + +common.skipIfInspectorDisabled(); + +const assert = require('assert'); +const EventEmitter = require('events'); +const { Session } = require('inspector'); +const { pathToFileURL } = require('url'); +const { + Worker, isMainThread, parentPort, workerData +} = require('worker_threads'); + + +const workerMessage = 'This is a message from a worker'; + +function waitForMessage() { + return new Promise((resolve) => { + parentPort.once('message', resolve); + }); +} + +// This is at the top so line numbers change less often +if (!isMainThread) { + if (workerData === 1) { + console.log(workerMessage); + debugger; // eslint-disable-line no-debugger + } else if (workerData === 2) { + parentPort.postMessage('running'); + waitForMessage(); + } + return; +} + +function doPost(session, method, params) { + return new Promise((resolve, reject) => { + session.post(method, params, (error, result) => { + if (error) + reject(JSON.stringify(error)); + else + resolve(result); + }); + }); +} + +function waitForEvent(emitter, event) { + return new Promise((resolve) => emitter.once(event, resolve)); +} + +function waitForWorkerAttach(session) { + return waitForEvent(session, 'NodeWorker.attachedToWorker') + .then(({ params }) => params); +} + +async function waitForWorkerDetach(session, id) { + let sessionId; + do { + const { params } = + await waitForEvent(session, 'NodeWorker.detachedFromWorker'); + sessionId = params.sessionId; + } while (sessionId !== id); +} + +function runWorker(id, workerCallback = () => {}) { + return new Promise((resolve, reject) => { + const worker = new Worker(__filename, { workerData: id }); + workerCallback(worker); + worker.on('error', reject); + worker.on('exit', resolve); + }); +} + +class WorkerSession extends EventEmitter { + constructor(parentSession, id) { + super(); + this._parentSession = parentSession; + this._id = id; + this._requestCallbacks = new Map(); + this._nextCommandId = 1; + this._parentSession.on('NodeWorker.receivedMessageFromWorker', + ({ params }) => { + if (params.sessionId === this._id) + this._processMessage(JSON.parse(params.message)); + }); + } + + _processMessage(message) { + if (message.id === undefined) { + // console.log(JSON.stringify(message)); + this.emit('inspectorNotification', message); + this.emit(message.method, message); + return; + } + const callback = this._requestCallbacks.get(message.id); + if (callback) { + this._requestCallbacks.delete(message.id); + if (message.error) + callback[1](message.error.message); + else + callback[0](message.result); + } + } + + async waitForBreakAfterCommand(command, script, line) { + const notificationPromise = waitForEvent(this, 'Debugger.paused'); + this.post(command); + const notification = await notificationPromise; + const callFrame = notification.params.callFrames[0]; + assert.strictEqual(callFrame.url, pathToFileURL(script).toString()); + assert.strictEqual(callFrame.location.lineNumber, line); + } + + post(method, parameters) { + const msg = { + id: this._nextCommandId++, + method + }; + if (parameters) + msg.params = parameters; + + return new Promise((resolve, reject) => { + this._requestCallbacks.set(msg.id, [resolve, reject]); + this._parentSession.post('NodeWorker.sendMessageToWorker', { + sessionId: this._id, message: JSON.stringify(msg) + }); + }); + } +} + +async function testBasicWorkerDebug(session, post) { + /* + 1. Do 'enable' with waitForDebuggerOnStart = true + 2. Run worker. It should break on start. + 3. Enable Runtime (to get console message) and Debugger. Resume. + 4. Breaks on the 'debugger' statement. Resume. + 5. Console message received, worker runs to a completion. + 6. contextCreated/contextDestroyed had been properly dispatched + */ + console.log('Test basic debug scenario'); + await post('NodeWorker.enable', { waitForDebuggerOnStart: true }); + const attached = waitForWorkerAttach(session); + const worker = runWorker(1); + const { sessionId, waitingForDebugger } = await attached; + assert.strictEqual(waitingForDebugger, true); + const detached = waitForWorkerDetach(session, sessionId); + const workerSession = new WorkerSession(session, sessionId); + const contextEvents = Promise.all([ + waitForEvent(workerSession, 'Runtime.executionContextCreated'), + waitForEvent(workerSession, 'Runtime.executionContextDestroyed') + ]); + const consolePromise = waitForEvent(workerSession, 'Runtime.consoleAPICalled') + .then((notification) => notification.params.args[0].value); + await workerSession.post('Debugger.enable'); + await workerSession.post('Runtime.enable'); + await workerSession.waitForBreakAfterCommand( + 'Runtime.runIfWaitingForDebugger', __filename, 0); + await workerSession.waitForBreakAfterCommand( + 'Debugger.resume', __filename, 27); // V8 line number is zero-based + assert.strictEqual(await consolePromise, workerMessage); + workerSession.post('Debugger.resume'); + await Promise.all([worker, detached, contextEvents]); +} + +async function testNoWaitOnStart(session, post) { + console.log('Test disabled waitForDebuggerOnStart'); + await post('NodeWorker.enable', { waitForDebuggerOnStart: false }); + let worker; + const promise = waitForWorkerAttach(session); + const exitPromise = runWorker(2, (w) => { worker = w; }); + const { waitingForDebugger } = await promise; + assert.strictEqual(waitingForDebugger, false); + worker.postMessage('resume'); + await exitPromise; +} + +async function testTwoWorkers(session, post) { + console.log('Test attach to a running worker and then start a new one'); + await post('NodeWorker.disable'); + let okToAttach = false; + const worker1attached = waitForWorkerAttach(session).then((notification) => { + assert.strictEqual(okToAttach, true); + return notification; + }); + + let worker1Exited; + const worker = await new Promise((resolve, reject) => { + worker1Exited = runWorker(2, resolve); + }).then((worker) => new Promise( + (resolve) => worker.once('message', () => resolve(worker)))); + okToAttach = true; + await post('NodeWorker.enable', { waitForDebuggerOnStart: true }); + const { waitingForDebugger: worker1Waiting } = await worker1attached; + assert.strictEqual(worker1Waiting, false); + + const worker2Attached = waitForWorkerAttach(session); + let worker2Done = false; + const worker2Exited = runWorker(1) + .then(() => assert.strictEqual(worker2Done, true)); + const worker2AttachInfo = await worker2Attached; + assert.strictEqual(worker2AttachInfo.waitingForDebugger, true); + worker2Done = true; + + const workerSession = new WorkerSession(session, worker2AttachInfo.sessionId); + workerSession.post('Runtime.runIfWaitingForDebugger'); + worker.postMessage('resume'); + await Promise.all([worker1Exited, worker2Exited]); +} + +async function test() { + const session = new Session(); + session.connect(); + const post = doPost.bind(null, session); + + await testBasicWorkerDebug(session, post); + + console.log('Test disabling attach to workers'); + await post('NodeWorker.disable'); + await runWorker(1); + + await testNoWaitOnStart(session, post); + await testTwoWorkers(session, post); + + session.disconnect(); + console.log('Test done'); +} + +test(); diff --git a/test/parallel/test-worker-message-port.js b/test/parallel/test-worker-message-port.js index 2d321611ec7758..995868e9a770e0 100644 --- a/test/parallel/test-worker-message-port.js +++ b/test/parallel/test-worker-message-port.js @@ -69,3 +69,12 @@ const { MessageChannel, MessagePort } = require('worker_threads'); }); }); } + +{ + assert.deepStrictEqual( + Object.getOwnPropertyNames(MessagePort.prototype).sort(), + [ + 'close', 'constructor', 'onmessage', 'postMessage', 'ref', 'start', + 'unref' + ]); +} diff --git a/test/parallel/test-worker-onmessage-not-a-function.js b/test/parallel/test-worker-onmessage-not-a-function.js new file mode 100644 index 00000000000000..9142c19b3211fc --- /dev/null +++ b/test/parallel/test-worker-onmessage-not-a-function.js @@ -0,0 +1,26 @@ +// When MessagePort.onmessage is set to a value that is not a function, the +// setter should call .unref() and .stop(), clearing a previous onmessage +// listener from holding the event loop open. This test confirms that +// functionality. + +// Flags: --experimental-worker +'use strict'; +const common = require('../common'); +const { Worker, parentPort } = require('worker_threads'); + +// Do not use isMainThread so that this test itself can be run inside a Worker. +if (!process.env.HAS_STARTED_WORKER) { + process.env.HAS_STARTED_WORKER = 1; + const w = new Worker(__filename); + w.postMessage(2); +} else { + // .onmessage uses a setter. Set .onmessage to a function that ultimately + // should not be called. This will call .ref() and .start() which will keep + // the event loop open (and prevent this from exiting) if the subsequent + // assignment of a value to .onmessage doesn't call .unref() and .stop(). + parentPort.onmessage = common.mustNotCall(); + // Setting `onmessage` to a value that is not a function should clear the + // previous value and also should allow the event loop to exit. (In other + // words, this test should exit rather than run indefinitely.) + parentPort.onmessage = 'fhqwhgads'; +} diff --git a/test/parallel/test-zlib-flush-drain.js b/test/parallel/test-zlib-flush-drain.js index 0619eecf3ce669..a470e32090f084 100644 --- a/test/parallel/test-zlib-flush-drain.js +++ b/test/parallel/test-zlib-flush-drain.js @@ -44,5 +44,5 @@ process.once('exit', function() { assert.strictEqual( drainCount, 1); assert.strictEqual( - flushCount, 2); + flushCount, 1); }); diff --git a/test/parallel/test-zlib-write-after-flush.js b/test/parallel/test-zlib-write-after-flush.js index 2ba6ba4550f942..6d8d787343426f 100644 --- a/test/parallel/test-zlib-write-after-flush.js +++ b/test/parallel/test-zlib-write-after-flush.js @@ -35,7 +35,7 @@ gunz.setEncoding('utf8'); gunz.on('data', (c) => output += c); gunz.on('end', common.mustCall(() => { assert.strictEqual(output, input); - assert.strictEqual(gzip._flushFlag, zlib.constants.Z_NO_FLUSH); + assert.strictEqual(gzip._nextFlush, -1); })); // make sure that flush/write doesn't trigger an assert failure diff --git a/test/pseudo-tty/test-handle-wrap-isrefed-tty.js b/test/pseudo-tty/test-handle-wrap-isrefed-tty.js index 33b59b3f1a335e..f7947fc31bc3a2 100644 --- a/test/pseudo-tty/test-handle-wrap-isrefed-tty.js +++ b/test/pseudo-tty/test-handle-wrap-isrefed-tty.js @@ -8,8 +8,6 @@ const ReadStream = require('tty').ReadStream; const tty = new ReadStream(0); const isTTY = process.binding('tty_wrap').isTTY; strictEqual(isTTY(0), true, 'tty_wrap: stdin is not a TTY'); -strictEqual(Object.getPrototypeOf(tty._handle).hasOwnProperty('hasRef'), - true, 'tty_wrap: hasRef() missing'); strictEqual(tty._handle.hasRef(), true, 'tty_wrap: not initially refed'); tty.unref(); diff --git a/test/pseudo-tty/test-stdin-write.js b/test/pseudo-tty/test-stdin-write.js new file mode 100644 index 00000000000000..39091f20bbb745 --- /dev/null +++ b/test/pseudo-tty/test-stdin-write.js @@ -0,0 +1,3 @@ +'use strict'; +require('../common'); +process.stdin.end('foobar\n'); diff --git a/test/pseudo-tty/test-stdin-write.out b/test/pseudo-tty/test-stdin-write.out new file mode 100644 index 00000000000000..323fae03f4606e --- /dev/null +++ b/test/pseudo-tty/test-stdin-write.out @@ -0,0 +1 @@ +foobar diff --git a/test/pseudo-tty/test-stdout-read.in b/test/pseudo-tty/test-stdout-read.in new file mode 100644 index 00000000000000..10ddd6d257e013 --- /dev/null +++ b/test/pseudo-tty/test-stdout-read.in @@ -0,0 +1 @@ +Hello! diff --git a/test/pseudo-tty/test-stdout-read.js b/test/pseudo-tty/test-stdout-read.js new file mode 100644 index 00000000000000..90f017ed77b7be --- /dev/null +++ b/test/pseudo-tty/test-stdout-read.js @@ -0,0 +1,3 @@ +'use strict'; +const common = require('../common'); +process.stderr.on('data', common.mustCall(console.log)); diff --git a/test/pseudo-tty/test-stdout-read.out b/test/pseudo-tty/test-stdout-read.out new file mode 100644 index 00000000000000..3b7fda223d0e6c --- /dev/null +++ b/test/pseudo-tty/test-stdout-read.out @@ -0,0 +1 @@ + diff --git a/test/pseudo-tty/test-tty-stdin-call-end.js b/test/pseudo-tty/test-tty-stdin-call-end.js new file mode 100644 index 00000000000000..e3c3fd9af469ba --- /dev/null +++ b/test/pseudo-tty/test-tty-stdin-call-end.js @@ -0,0 +1,8 @@ +'use strict'; + +require('../common'); + +// This tests verifies that process.stdin.end() does not +// crash the process with ENOTCONN + +process.stdin.end(); diff --git a/test/pseudo-tty/test-tty-stdin-call-end.out b/test/pseudo-tty/test-tty-stdin-call-end.out new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/test/pseudo-tty/testcfg.py b/test/pseudo-tty/testcfg.py index 41a536104d7cba..920789844583de 100644 --- a/test/pseudo-tty/testcfg.py +++ b/test/pseudo-tty/testcfg.py @@ -35,10 +35,11 @@ class TTYTestCase(test.TestCase): - def __init__(self, path, file, expected, arch, mode, context, config): + def __init__(self, path, file, expected, input, arch, mode, context, config): super(TTYTestCase, self).__init__(context, path, arch, mode) self.file = file self.expected = expected + self.input = input self.config = config self.arch = arch self.mode = mode @@ -104,12 +105,16 @@ def GetSource(self): + open(self.expected).read()) def RunCommand(self, command, env): + input = None + if self.input is not None and exists(self.input): + input = open(self.input).read() full_command = self.context.processor(command) output = test.Execute(full_command, self.context, self.context.GetTimeout(self.mode), env, - True) + faketty=True, + input=input) return test.TestOutput(self, full_command, output, @@ -139,11 +144,12 @@ def ListTests(self, current_path, path, arch, mode): if self.Contains(path, test): file_prefix = join(self.root, reduce(join, test[1:], "")) file_path = file_prefix + ".js" + input_path = file_prefix + ".in" output_path = file_prefix + ".out" if not exists(output_path): raise Exception("Could not find %s" % output_path) result.append(TTYTestCase(test, file_path, output_path, - arch, mode, self.context, self)) + input_path, arch, mode, self.context, self)) return result def GetBuildRequirements(self): diff --git a/test/sequential/sequential.status b/test/sequential/sequential.status index ab94c7dbec5039..4b7e92331e7b1a 100644 --- a/test/sequential/sequential.status +++ b/test/sequential/sequential.status @@ -8,8 +8,20 @@ prefix sequential # This test will be flaky until https://github.com/libuv/libuv/pull/1742 lands # on Node.js. test-fs-readfile-tostring-fail: PASS, FLAKY +# https://github.com/nodejs/node/issues/23066 +test-gc-http-client-timeout: PASS, FLAKY +# https://github.com/nodejs/node/issues/22336 +test-gc-http-client: PASS,FLAKY +# https://github.com/nodejs/node/issues/23067 +test-gc-net-timeout: PASS,FLAKY +# https://github.com/nodejs/node/issues/23089 +test-gc-http-client-onerror: PASS,FLAKY +# https://github.com/nodejs/node/issues/23219 +test-gc-http-client-connaborted: PASS,FLAKY [$system==win32] +# https://github.com/nodejs/node/issues/22327 +test-http2-large-file: PASS, FLAKY [$system==linux] diff --git a/test/sequential/test-async-wrap-getasyncid.js b/test/sequential/test-async-wrap-getasyncid.js index b281cc9afdf7b6..b23ca3e5815d8f 100644 --- a/test/sequential/test-async-wrap-getasyncid.js +++ b/test/sequential/test-async-wrap-getasyncid.js @@ -45,6 +45,7 @@ const { getSystemErrorName } = require('util'); delete providers.WORKER; if (!common.isMainThread) delete providers.INSPECTORJSBINDING; + delete providers.KEYPAIRGENREQUEST; const objKeys = Object.keys(providers); if (objKeys.length > 0) diff --git a/test/sequential/test-fs-watch-system-limit.js b/test/sequential/test-fs-watch-system-limit.js new file mode 100644 index 00000000000000..e896cbf83b965a --- /dev/null +++ b/test/sequential/test-fs-watch-system-limit.js @@ -0,0 +1,52 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const child_process = require('child_process'); +const stream = require('stream'); + +if (!common.isLinux) + common.skip('The fs watch limit is OS-dependent'); +if (!common.enoughTestCpu) + common.skip('This test is resource-intensive'); + +const processes = []; +const gatherStderr = new stream.PassThrough(); +gatherStderr.setEncoding('utf8'); +gatherStderr.setMaxListeners(Infinity); + +let finished = false; +function spawnProcesses() { + for (let i = 0; i < 10; ++i) { + const proc = child_process.spawn( + process.execPath, + [ '-e', + `process.chdir(${JSON.stringify(__dirname)}); + for (const file of fs.readdirSync('.')) + fs.watch(file, () => {});` + ], { stdio: ['inherit', 'inherit', 'pipe'] }); + proc.stderr.pipe(gatherStderr); + processes.push(proc); + } + + setTimeout(() => { + if (!finished && processes.length < 200) + spawnProcesses(); + }, 100); +} + +spawnProcesses(); + +let accumulated = ''; +gatherStderr.on('data', common.mustCallAtLeast((chunk) => { + accumulated += chunk; + if (accumulated.includes('Error:') && !finished) { + assert( + accumulated.includes('ENOSPC: System limit for number ' + + 'of file watchers reached') || + accumulated.includes('EMFILE: '), + accumulated); + console.log(`done after ${processes.length} processes, cleaning up`); + finished = true; + processes.forEach((proc) => proc.kill()); + } +}, 1)); diff --git a/test/parallel/test-gc-http-client-connaborted.js b/test/sequential/test-gc-http-client-connaborted.js similarity index 100% rename from test/parallel/test-gc-http-client-connaborted.js rename to test/sequential/test-gc-http-client-connaborted.js diff --git a/test/parallel/test-gc-http-client-onerror.js b/test/sequential/test-gc-http-client-onerror.js similarity index 100% rename from test/parallel/test-gc-http-client-onerror.js rename to test/sequential/test-gc-http-client-onerror.js diff --git a/test/parallel/test-gc-http-client-timeout.js b/test/sequential/test-gc-http-client-timeout.js similarity index 67% rename from test/parallel/test-gc-http-client-timeout.js rename to test/sequential/test-gc-http-client-timeout.js index 4b4d1610c3ebdb..359f890dc3944e 100644 --- a/test/parallel/test-gc-http-client-timeout.js +++ b/test/sequential/test-gc-http-client-timeout.js @@ -3,7 +3,7 @@ // just like test-gc-http-client.js, // but with a timeout set -require('../common'); +const common = require('../common'); const onGC = require('../common/ongc'); function serverHandler(req, res) { @@ -15,7 +15,7 @@ function serverHandler(req, res) { } const http = require('http'); -const todo = 550; +const todo = 300; let done = 0; let count = 0; let countGC = 0; @@ -23,31 +23,24 @@ let countGC = 0; console.log(`We should do ${todo} requests`); const server = http.createServer(serverHandler); -server.listen(0, getall); +server.listen(0, common.mustCall(getall)); function getall() { if (count >= todo) return; - (function() { - function cb(res) { - res.resume(); - done += 1; - } + const req = http.get({ + hostname: 'localhost', + pathname: '/', + port: server.address().port + }, cb); - const req = http.get({ - hostname: 'localhost', - pathname: '/', - port: server.address().port - }, cb); + req.setTimeout(10, function() { + console.log('timeout (expected)'); + }); - req.setTimeout(10, function() { - console.log('timeout (expected)'); - }); - - count++; - onGC(req, { ongc }); - })(); + count++; + onGC(req, { ongc }); setImmediate(getall); } @@ -55,6 +48,11 @@ function getall() { for (let i = 0; i < 10; i++) getall(); +function cb(res) { + res.resume(); + done += 1; +} + function ongc() { countGC++; } diff --git a/test/parallel/test-gc-http-client.js b/test/sequential/test-gc-http-client.js similarity index 97% rename from test/parallel/test-gc-http-client.js rename to test/sequential/test-gc-http-client.js index 431c6387e171a0..2eea09652a50d9 100644 --- a/test/parallel/test-gc-http-client.js +++ b/test/sequential/test-gc-http-client.js @@ -43,7 +43,6 @@ function getall() { function cb(res) { res.resume(); done += 1; - res.on('end', global.gc); } function ongc() { diff --git a/test/parallel/test-gc-net-timeout.js b/test/sequential/test-gc-net-timeout.js similarity index 98% rename from test/parallel/test-gc-net-timeout.js rename to test/sequential/test-gc-net-timeout.js index 9651e4a2a686dc..51d9b8ca09bbbc 100644 --- a/test/parallel/test-gc-net-timeout.js +++ b/test/sequential/test-gc-net-timeout.js @@ -41,7 +41,6 @@ function getall() { req.setTimeout(10, function() { req.destroy(); done++; - global.gc(); }); count++; diff --git a/test/sequential/test-http2-session-timeout.js b/test/sequential/test-http2-session-timeout.js index 5c4f047b338e9c..14a31bad9bd0fc 100644 --- a/test/sequential/test-http2-session-timeout.js +++ b/test/sequential/test-http2-session-timeout.js @@ -3,10 +3,15 @@ const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); +const assert = require('assert'); const http2 = require('http2'); const serverTimeout = common.platformTimeout(200); -const mustNotCall = common.mustNotCall(); + +let requests = 0; +const mustNotCall = () => { + assert.fail(`Timeout after ${requests} request(s)`); +}; const server = http2.createServer(); server.timeout = serverTimeout; @@ -32,11 +37,13 @@ server.listen(0, common.mustCall(() => { request.resume(); request.end(); + requests += 1; + request.on('end', () => { const diff = process.hrtime(startTime); const milliseconds = (diff[0] * 1e3 + diff[1] / 1e6); if (milliseconds < serverTimeout * 2) { - setImmediate(makeReq); + makeReq(); } else { server.removeListener('timeout', mustNotCall); server.close(); diff --git a/test/sequential/test-inspector-async-hook-setup-at-signal.js b/test/sequential/test-inspector-async-hook-setup-at-signal.js index 6f8ccfacb9964c..139678a1e5a493 100644 --- a/test/sequential/test-inspector-async-hook-setup-at-signal.js +++ b/test/sequential/test-inspector-async-hook-setup-at-signal.js @@ -6,6 +6,8 @@ common.skipIf32Bits(); const { NodeInstance } = require('../common/inspector-helper.js'); const assert = require('assert'); +common.skipIfWorker(); // Signal starts a server for a main thread inspector + const script = ` process._rawDebug('Waiting until a signal enables the inspector...'); let waiting = setInterval(waitUntilDebugged, 50); diff --git a/test/sequential/test-inspector-bindings.js b/test/sequential/test-inspector-bindings.js index bea8b552202087..f5583c1d7bc6d6 100644 --- a/test/sequential/test-inspector-bindings.js +++ b/test/sequential/test-inspector-bindings.js @@ -1,9 +1,11 @@ +// Flags: --expose-internals 'use strict'; const common = require('../common'); common.skipIfInspectorDisabled(); const assert = require('assert'); const inspector = require('inspector'); const path = require('path'); +const { pathToFileURL } = require('url'); // This test case will set a breakpoint 4 lines below function debuggedFunction() { @@ -84,8 +86,8 @@ function testSampleDebugSession() { }, TypeError); session.post('Debugger.enable', () => cbAsSecondArgCalled = true); session.post('Debugger.setBreakpointByUrl', { - 'lineNumber': 12, - 'url': path.resolve(__dirname, __filename), + 'lineNumber': 14, + 'url': pathToFileURL(path.resolve(__dirname, __filename)).toString(), 'columnNumber': 0, 'condition': '' }); diff --git a/test/sequential/test-inspector-break-when-eval.js b/test/sequential/test-inspector-break-when-eval.js index 8be5285221d513..e7529f786a9859 100644 --- a/test/sequential/test-inspector-break-when-eval.js +++ b/test/sequential/test-inspector-break-when-eval.js @@ -5,6 +5,7 @@ common.skipIfInspectorDisabled(); const assert = require('assert'); const { NodeInstance } = require('../common/inspector-helper.js'); const fixtures = require('../common/fixtures'); +const { pathToFileURL } = require('url'); const script = fixtures.path('inspector-global-function.js'); @@ -26,7 +27,7 @@ async function breakOnLine(session) { const commands = [ { 'method': 'Debugger.setBreakpointByUrl', 'params': { 'lineNumber': 9, - 'url': script, + 'url': pathToFileURL(script).toString(), 'columnNumber': 0, 'condition': '' } @@ -45,7 +46,7 @@ async function breakOnLine(session) { } ]; session.send(commands); - await session.waitForBreakOnLine(9, script); + await session.waitForBreakOnLine(9, pathToFileURL(script).toString()); } async function stepOverConsoleStatement(session) { diff --git a/test/sequential/test-inspector-contexts.js b/test/sequential/test-inspector-contexts.js index d2285e82536326..793868e3bc072c 100644 --- a/test/sequential/test-inspector-contexts.js +++ b/test/sequential/test-inspector-contexts.js @@ -33,7 +33,11 @@ async function testContextCreatedAndDestroyed() { // the PID. strictEqual(name.includes(`[${process.pid}]`), true); } else { - strictEqual(`${process.argv0}[${process.pid}]`, name); + let expects = `${process.argv0}[${process.pid}]`; + if (!common.isMainThread) { + expects = `Worker[${require('worker_threads').threadId}]`; + } + strictEqual(expects, name); } strictEqual(origin, '', JSON.stringify(contextCreated)); diff --git a/test/sequential/test-inspector-debug-brk-flag.js b/test/sequential/test-inspector-debug-brk-flag.js index 0e5df52560d2b1..d488eea2626584 100644 --- a/test/sequential/test-inspector-debug-brk-flag.js +++ b/test/sequential/test-inspector-debug-brk-flag.js @@ -24,7 +24,7 @@ async function testBreakpointOnStart(session) { ]; session.send(commands); - await session.waitForBreakOnLine(0, session.scriptPath()); + await session.waitForBreakOnLine(0, session.scriptURL()); } async function runTests() { diff --git a/test/sequential/test-inspector-exception.js b/test/sequential/test-inspector-exception.js index ef67e1d9a57264..4a41e8826a50d1 100644 --- a/test/sequential/test-inspector-exception.js +++ b/test/sequential/test-inspector-exception.js @@ -7,6 +7,7 @@ common.skipIfInspectorDisabled(); const assert = require('assert'); const { NodeInstance } = require('../common/inspector-helper.js'); +const { pathToFileURL } = require('url'); const script = fixtures.path('throws_error.js'); @@ -29,7 +30,7 @@ async function testBreakpointOnStart(session) { ]; await session.send(commands); - await session.waitForBreakOnLine(0, script); + await session.waitForBreakOnLine(0, pathToFileURL(script).toString()); } diff --git a/test/sequential/test-inspector-port-cluster.js b/test/sequential/test-inspector-port-cluster.js index f7bebd926e9780..b58dbd83b6159a 100644 --- a/test/sequential/test-inspector-port-cluster.js +++ b/test/sequential/test-inspector-port-cluster.js @@ -3,6 +3,7 @@ const common = require('../common'); common.skipIfInspectorDisabled(); +common.skipIfWorker(); const assert = require('assert'); const cluster = require('cluster'); diff --git a/test/sequential/test-inspector-resource-name-to-url.js b/test/sequential/test-inspector-resource-name-to-url.js new file mode 100644 index 00000000000000..41a98ba219b24c --- /dev/null +++ b/test/sequential/test-inspector-resource-name-to-url.js @@ -0,0 +1,40 @@ +'use strict'; +const common = require('../common'); + +common.skipIfInspectorDisabled(); + +(async function test() { + const { strictEqual } = require('assert'); + const { Session } = require('inspector'); + const { promisify } = require('util'); + const vm = require('vm'); + const session = new Session(); + session.connect(); + session.post = promisify(session.post); + await session.post('Debugger.enable'); + await check('http://example.com', 'http://example.com'); + await check(undefined, 'evalmachine.'); + await check('file:///foo.js', 'file:///foo.js'); + await check('file:///foo.js', 'file:///foo.js'); + await check('foo.js', 'foo.js'); + await check('[eval]', '[eval]'); + await check('%.js', '%.js'); + + if (common.isWindows) { + await check('C:\\foo.js', 'file:///C:/foo.js'); + await check('C:\\a\\b\\c\\foo.js', 'file:///C:/a/b/c/foo.js'); + await check('a:\\%.js', 'file:///a:/%25.js'); + } else { + await check('/foo.js', 'file:///foo.js'); + await check('/a/b/c/d/foo.js', 'file:///a/b/c/d/foo.js'); + await check('/%%%.js', 'file:///%25%25%25.js'); + } + + async function check(filename, expected) { + const promise = + new Promise((resolve) => session.once('inspectorNotification', resolve)); + new vm.Script('42', { filename }).runInThisContext(); + const { params: { url } } = await promise; + strictEqual(url, expected); + } +})(); diff --git a/test/sequential/test-inspector.js b/test/sequential/test-inspector.js index d641015a3c9954..2a7a2ef4bf34ba 100644 --- a/test/sequential/test-inspector.js +++ b/test/sequential/test-inspector.js @@ -68,7 +68,7 @@ async function testBreakpointOnStart(session) { ]; await session.send(commands); - await session.waitForBreakOnLine(0, session.scriptPath()); + await session.waitForBreakOnLine(0, session.scriptURL()); } async function testBreakpoint(session) { @@ -76,7 +76,7 @@ async function testBreakpoint(session) { const commands = [ { 'method': 'Debugger.setBreakpointByUrl', 'params': { 'lineNumber': 5, - 'url': session.scriptPath(), + 'url': session.scriptURL(), 'columnNumber': 0, 'condition': '' } @@ -91,7 +91,7 @@ async function testBreakpoint(session) { `Script source is wrong: ${scriptSource}`); await session.waitForConsoleOutput('log', ['A message', 5]); - const paused = await session.waitForBreakOnLine(5, session.scriptPath()); + const paused = await session.waitForBreakOnLine(5, session.scriptURL()); const scopeId = paused.params.callFrames[0].scopeChain[0].object.objectId; console.log('[test]', 'Verify we can read current application state'); diff --git a/test/sequential/test-module-loading.js b/test/sequential/test-module-loading.js index c71f9d1edf4d5b..42916a7903c344 100644 --- a/test/sequential/test-module-loading.js +++ b/test/sequential/test-module-loading.js @@ -104,6 +104,12 @@ const d2 = require('../fixtures/b/d'); assert.strictEqual(require('../fixtures/packages/index').ok, 'ok'); assert.strictEqual(require('../fixtures/packages/main').ok, 'ok'); assert.strictEqual(require('../fixtures/packages/main-index').ok, 'ok'); +assert.strictEqual(require('../fixtures/packages/missing-main').ok, 'ok'); + +assert.throws( + function() { require('../fixtures/packages/unparseable'); }, + /^SyntaxError: Error parsing/ +); { console.error('test cycles containing a .. path'); @@ -267,6 +273,7 @@ try { 'fixtures/packages/index/index.js': {}, 'fixtures/packages/main/package-main-module.js': {}, 'fixtures/packages/main-index/package-main-module/index.js': {}, + 'fixtures/packages/missing-main/index.js': {}, 'fixtures/cycles/root.js': { 'fixtures/cycles/folder/foo.js': {} }, diff --git a/tools/cpplint.py b/tools/cpplint.py index 8afcae72a3d833..5f5f1400d7ec56 100755 --- a/tools/cpplint.py +++ b/tools/cpplint.py @@ -129,7 +129,7 @@ def GetNonHeaderExtensions(): likely to be false positives. quiet - Supress output other than linting errors, such as information about + Suppress output other than linting errors, such as information about which files have been processed and excluded. filter=-x,+y,... @@ -650,7 +650,7 @@ def GetNonHeaderExtensions(): # Files to exclude from linting. This is set by the --exclude flag. _excludes = None -# Whether to supress PrintInfo messages +# Whether to suppress PrintInfo messages _quiet = False # The allowed line length of files. @@ -6429,11 +6429,10 @@ def ParseArguments(args): except ValueError: PrintUsage('Extensions must be comma seperated list.') elif opt == '--recursive': - PrintUsage('Extensions must be comma separated list.') - elif opt == '--logfile': recursive = True - elif opt == '--quiet': + elif opt == '--logfile': logger.addHandler(logging.FileHandler(val, mode='wb')) + elif opt == '--quiet': global _quiet _quiet = True diff --git a/tools/doc/apilinks.js b/tools/doc/apilinks.js index d7ec5684b79705..c86db143383c32 100644 --- a/tools/doc/apilinks.js +++ b/tools/doc/apilinks.js @@ -35,7 +35,7 @@ function execSync(command) { } } -// Determine orign repo and tag (or hash) of the most recent commit. +// Determine origin repo and tag (or hash) of the most recent commit. const local_branch = execSync('git name-rev --name-only HEAD'); const tracking_remote = execSync(`git config branch.${local_branch}.remote`); const remote_url = execSync(`git config remote.${tracking_remote}.url`); diff --git a/tools/doc/generate.js b/tools/doc/generate.js index 28e09d003fa6db..7ca47e2ae06dc8 100644 --- a/tools/doc/generate.js +++ b/tools/doc/generate.js @@ -38,7 +38,6 @@ const json = require('./json'); const args = process.argv.slice(2); let filename = null; let nodeVersion = null; -let analytics = null; let outputDir = null; let apilinks = {}; @@ -47,8 +46,6 @@ args.forEach(function(arg) { filename = arg; } else if (arg.startsWith('--node-version=')) { nodeVersion = arg.replace(/^--node-version=/, ''); - } else if (arg.startsWith('--analytics=')) { - analytics = arg.replace(/^--analytics=/, ''); } else if (arg.startsWith('--output-directory=')) { outputDir = arg.replace(/^--output-directory=/, ''); } else if (arg.startsWith('--apilinks=')) { @@ -85,7 +82,7 @@ fs.readFile(filename, 'utf8', (er, input) => { const basename = path.basename(filename, '.md'); html.toHTML( - { input, content, filename, nodeVersion, analytics }, + { input, content, filename, nodeVersion }, (err, html) => { const target = path.join(outputDir, `${basename}.html`); if (err) throw err; diff --git a/tools/doc/html.js b/tools/doc/html.js index c0a94b6534b171..fd74563dd7fc97 100644 --- a/tools/doc/html.js +++ b/tools/doc/html.js @@ -62,7 +62,7 @@ const gtocHTML = unified() const templatePath = path.join(docPath, 'template.html'); const template = fs.readFileSync(templatePath, 'utf8'); -function toHTML({ input, content, filename, nodeVersion, analytics }, cb) { +function toHTML({ input, content, filename, nodeVersion }, cb) { filename = path.basename(filename, '.md'); const id = filename.replace(/\W+/g, '-'); @@ -77,30 +77,6 @@ function toHTML({ input, content, filename, nodeVersion, analytics }, cb) { .replace('__EDIT_ON_GITHUB__', editOnGitHub(filename)) .replace('__CONTENT__', content.toString()); - if (analytics) { - HTML = HTML.replace('', ` - `); - } - const docCreated = input.match( //); if (docCreated) { diff --git a/tools/genv8constants.py b/tools/genv8constants.py index b516728635b7a8..2b6ed8499253ec 100755 --- a/tools/genv8constants.py +++ b/tools/genv8constants.py @@ -78,7 +78,7 @@ def out_define(): # format, but this is the most obvious robust approach. We could almost # rely on looking at numbered fields, but some instructions look very # much like hex numbers (e.g., "adc"), and we don't want to risk picking - # those up by mistake, so we look at character-based columns intead. + # those up by mistake, so we look at character-based columns instead. # for i in range (0, 3): # 6-character margin, 2-characters + 1 space for each field diff --git a/tools/gyp/pylib/gyp/generator/make.py b/tools/gyp/pylib/gyp/generator/make.py index 5870ed67be5fe2..e98d93ab233ff8 100644 --- a/tools/gyp/pylib/gyp/generator/make.py +++ b/tools/gyp/pylib/gyp/generator/make.py @@ -147,7 +147,7 @@ def CalculateGeneratorInputInfo(params): # special "figure out circular dependencies" flags around the entire # input list during linking. quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group +cmd_link = $(LINK.$(TOOLSET)) -o $@ $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group # We support two kinds of shared objects (.so): # 1) shared_library, which is just bundling together many dependent libraries @@ -166,10 +166,10 @@ def CalculateGeneratorInputInfo(params): # - Set SONAME to the library filename so our binaries don't reference # the local, absolute paths used on the link command-line. quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) +cmd_solink = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) +cmd_solink_module = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) """ LINK_COMMANDS_MAC = """\ @@ -360,10 +360,10 @@ def CalculateGeneratorInputInfo(params): # - quiet_cmd_foo is the brief-output summary of the command. quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< +cmd_cc = $(CC.$(TOOLSET)) -o $@ $< $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< +cmd_cxx = $(CXX.$(TOOLSET)) -o $@ $< $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c %(extra_commands)s quiet_cmd_touch = TOUCH $@ cmd_touch = touch $@ @@ -1756,7 +1756,7 @@ def WriteMakeRule(self, outputs, inputs, actions=None, comment=None, cmddigest = hashlib.sha1(command if command else self.target).hexdigest() intermediate = "%s.intermediate" % (cmddigest) self.WriteLn('%s: %s' % (' '.join(outputs), intermediate)) - self.WriteLn('\t%s' % '@:'); + self.WriteLn('\t%s' % '@:') self.WriteLn('%s: %s' % ('.INTERMEDIATE', intermediate)) self.WriteLn('%s: %s%s' % (intermediate, ' '.join(inputs), force_append)) diff --git a/tools/icu/README.md b/tools/icu/README.md index 223990bc4549c2..01c12279311441 100644 --- a/tools/icu/README.md +++ b/tools/icu/README.md @@ -92,7 +92,7 @@ make clean tools/license-builder.sh ``` -- Now, fix the default URL for the `full-icu` build in `/configure`, in +- Now, fix the default URL for the `full-icu` build in `/configure.py`, in the `configure_intl()` function. It should match the ICU URL used in the first step. When this is done, the following should build with full ICU. @@ -104,7 +104,7 @@ make make test-ci ``` -- commit the change to `configure` along with the updated `LICENSE` file. +- commit the change to `configure.py` along with the updated `LICENSE` file. - Note: To simplify review, I often will “pre-land” this patch, meaning that I run the patch through `curl -L https://github.com/nodejs/node/pull/xxx.patch diff --git a/tools/icu/icu-generic.gyp b/tools/icu/icu-generic.gyp index a50f12d7940bf7..f64981b6e6c0d5 100644 --- a/tools/icu/icu-generic.gyp +++ b/tools/icu/icu-generic.gyp @@ -52,7 +52,7 @@ 'direct_dependent_settings': { 'conditions': [ [ 'os_posix == 1 and OS != "mac" and OS != "ios"', { - 'cflags': [ '-Wno-deprecated-declarations' ], + 'cflags': [ '-Wno-deprecated-declarations', '-Wno-strict-aliasing' ], 'cflags_cc': [ '-frtti' ], 'cflags_cc!': [ '-fno-rtti' ], }], diff --git a/tools/icu/shrink-icu-src.py b/tools/icu/shrink-icu-src.py index 63080603ad16e6..e18243542408a5 100644 --- a/tools/icu/shrink-icu-src.py +++ b/tools/icu/shrink-icu-src.py @@ -22,7 +22,7 @@ parser.add_option('--icutmp', action='store', dest='icutmp', - default='out/Release/gen/icutmp', + default='out/Release/obj/gen/icutmp', help='path to icutmp dir.') diff --git a/tools/lint-js.js b/tools/lint-js.js index 69e5dd10e1a23a..4a7c2f08c324c8 100644 --- a/tools/lint-js.js +++ b/tools/lint-js.js @@ -192,7 +192,7 @@ if (cluster.isMaster) { const sliceLen = Math.min(maxWorkload, Math.ceil(files.length / numCPUs)); var slice; if (sliceLen === files.length) { - // Micro-ptimization to avoid splicing to an empty array + // Micro-optimization to avoid splicing to an empty array slice = files; files = null; } else { diff --git a/tools/lint-md.js b/tools/lint-md.js index 9d468165261766..8dd8a623db2fca 100644 --- a/tools/lint-md.js +++ b/tools/lint-md.js @@ -90,7 +90,7 @@ function wrap(fn, callback) { * pipeline), but later also threw an error. * We’re not about to restart the pipeline again, * so the only thing left to do is to throw the - * thing instea. */ + * thing instead. */ if (callback && invoked) { throw err } @@ -901,7 +901,7 @@ function representYamlFloat(object, style) { res = object.toString(10); // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requres dot: 5.e-100. Fix it with simple hack + // while YAML requires dot: 5.e-100. Fix it with simple hack return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; } @@ -2322,7 +2322,7 @@ function readBlockScalar(state, nodeIndent) { } } - // Break this `while` cycle and go to the funciton's epilogue. + // Break this `while` cycle and go to the function's epilogue. break; } diff --git a/tools/msvs/install_tools/install_tools.bat b/tools/msvs/install_tools/install_tools.bat new file mode 100644 index 00000000000000..db10cf1f46049e --- /dev/null +++ b/tools/msvs/install_tools/install_tools.bat @@ -0,0 +1,53 @@ +@echo off + +cls +echo ==================================================== +echo Tools for Node.js Native Modules Installation Script +echo ==================================================== +echo. +echo This Boxstarter script will install Python and the Visual Studio Build Tools, +echo necessary to compile Node.js native modules. Note that Boxstarter, +echo Chocolatey and required Windows updates will also be installed. +echo. +echo This will require about 3 Gb of free disk space, plus any space necessary to +echo install Windows updates. +echo. +echo This will take a while to run. Your computer may reboot during the +echo installation, and will resume automatically. +echo. +echo Please close all open programs for the duration of the installation. +echo. +echo You can close this window to stop now. This script can be invoked from the +echo Start menu. Detailed instructions to install these tools manually are +echo available at https://github.com/nodejs/node-gyp#on-windows +echo. +pause + +cls +REM Adapted from https://github.com/Microsoft/windows-dev-box-setup-scripts/blob/79bbe5bdc4867088b3e074f9610932f8e4e192c2/README.md#legal +echo Using this script downloads third party software +echo ------------------------------------------------ +echo This script will direct to Chocolatey to install packages. By using +echo Chocolatey to install a package, you are accepting the license for the +echo application, executable(s), or other artifacts delivered to your machine as a +echo result of a Chocolatey install. This acceptance occurs whether you know the +echo license terms or not. Read and understand the license terms of the packages +echo being installed and their dependencies prior to installation: +echo - https://chocolatey.org/packages/chocolatey +echo - https://chocolatey.org/packages/boxstarter +echo - https://chocolatey.org/packages/python2 +echo - https://chocolatey.org/packages/visualstudio2017buildtools +echo - https://chocolatey.org/packages/visualstudio2017-workload-vctools +echo. +echo This script is provided AS-IS without any warranties of any kind +echo ---------------------------------------------------------------- +echo Chocolatey has implemented security safeguards in their process to help +echo protect the community from malicious or pirated software, but any use of this +echo script is at your own risk. Please read the Chocolatey's legal terms of use +echo and the Boxstarter project license as well as how the community repository +echo for Chocolatey.org is maintained. +echo. +echo You can close this window to stop now. +pause + +"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command Start-Process '%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe' -ArgumentList '-NoProfile -InputFormat None -ExecutionPolicy Bypass -Command iex ((New-Object System.Net.WebClient).DownloadString(''https://boxstarter.org/bootstrapper.ps1'')); get-boxstarter -Force; Install-BoxstarterPackage -PackageName ''%~dp0\install_tools.txt''; Read-Host ''Type ENTER to exit'' ' -Verb RunAs diff --git a/tools/msvs/install_tools/install_tools.txt b/tools/msvs/install_tools/install_tools.txt new file mode 100644 index 00000000000000..baf530a774759b --- /dev/null +++ b/tools/msvs/install_tools/install_tools.txt @@ -0,0 +1,3 @@ +choco upgrade -y python2 +choco upgrade -y visualstudio2017buildtools +choco upgrade -y visualstudio2017-workload-vctools diff --git a/tools/msvs/msi/i18n/en-us.wxl b/tools/msvs/msi/i18n/en-us.wxl index 86da6ecc40ecaf..9b948156a5481d 100644 --- a/tools/msvs/msi/i18n/en-us.wxl +++ b/tools/msvs/msi/i18n/en-us.wxl @@ -8,6 +8,14 @@ A later version of [ProductName] is already installed. Setup will now exit. + [ProductName] Setup + {\WixUI_Font_Title}Tools for Native Modules + Optionally install the tools necessary to compile native modules. + WixUI_Bmp_Banner + Some npm modules need to be compiled from C/C++ when installing. If you want to be able to install such modules, some tools (Python 2 and Visual Studio Build Tools) need to be installed. + Automatically install the necessary tools. Note that this will also install Boxstarter and Chocolatey. The script will pop-up in a new window after the installation completes. + Alternatively, follow the instructions at https://github.com/nodejs/node-gyp#on-windows]]> to install the dependencies yourself. + Node.js runtime Install the core [ProductName] runtime (node.exe). diff --git a/tools/msvs/msi/product.wxs b/tools/msvs/msi/product.wxs index e9e4e33751d254..ad48fedafd9ea0 100755 --- a/tools/msvs/msi/product.wxs +++ b/tools/msvs/msi/product.wxs @@ -72,6 +72,8 @@ + + + + + + + + + + @@ -195,6 +205,12 @@ Arguments='/k "[INSTALLDIR]nodevars.bat"' Show="normal" WorkingDirectory="INSTALLDIR"/> + + + + @@ -340,6 +359,23 @@ + + + + + + + + + + + + + + + 1 + + NOT Installed Installed AND PATCH @@ -350,7 +386,6 @@ 1 1 1 - 1 NOT Installed OR WixUI_InstallMode = "Change" Installed AND NOT PATCH Installed AND PATCH @@ -361,7 +396,11 @@ 1 Installed NOT Installed - 1 + 1 + 1 + 1 + NATIVETOOLSCHECKBOX = 1 + 1 diff --git a/tools/node_modules/eslint/bin/eslint.js b/tools/node_modules/eslint/bin/eslint.js index adc07c2e75c33d..e51121ec6afe7f 100755 --- a/tools/node_modules/eslint/bin/eslint.js +++ b/tools/node_modules/eslint/bin/eslint.js @@ -48,7 +48,6 @@ process.once("uncaughtException", err => { console.error(`\nESLint: ${pkg.version}.\n${template(err.messageData || {})}`); } else { - console.error(err.message); console.error(err.stack); } diff --git a/tools/node_modules/eslint/lib/rules/one-var.js b/tools/node_modules/eslint/lib/rules/one-var.js index 13ab72b04ae5f3..15b664d77a3ce9 100644 --- a/tools/node_modules/eslint/lib/rules/one-var.js +++ b/tools/node_modules/eslint/lib/rules/one-var.js @@ -384,8 +384,13 @@ module.exports = { if (nodeIndex > 0) { const previousNode = parent.body[nodeIndex - 1]; const isPreviousNodeDeclaration = previousNode.type === "VariableDeclaration"; + const declarationsWithPrevious = declarations.concat(previousNode.declarations || []); - if (isPreviousNodeDeclaration && previousNode.kind === type) { + if ( + isPreviousNodeDeclaration && + previousNode.kind === type && + !(declarationsWithPrevious.some(isRequire) && !declarationsWithPrevious.every(isRequire)) + ) { const previousDeclCounts = countDeclarations(previousNode.declarations); if (options[type].initialized === MODE_CONSECUTIVE && options[type].uninitialized === MODE_CONSECUTIVE) { diff --git a/tools/node_modules/eslint/lib/rules/require-atomic-updates.js b/tools/node_modules/eslint/lib/rules/require-atomic-updates.js index 5d7d7151455e48..c6cf0d74774002 100644 --- a/tools/node_modules/eslint/lib/rules/require-atomic-updates.js +++ b/tools/node_modules/eslint/lib/rules/require-atomic-updates.js @@ -119,6 +119,66 @@ module.exports = { }); } + const alreadyReportedAssignments = new WeakSet(); + + class AssignmentTrackerState { + constructor({ openAssignmentsWithoutReads = new Set(), openAssignmentsWithReads = new Set() } = {}) { + this.openAssignmentsWithoutReads = openAssignmentsWithoutReads; + this.openAssignmentsWithReads = openAssignmentsWithReads; + } + + copy() { + return new AssignmentTrackerState({ + openAssignmentsWithoutReads: new Set(this.openAssignmentsWithoutReads), + openAssignmentsWithReads: new Set(this.openAssignmentsWithReads) + }); + } + + merge(other) { + const initialAssignmentsWithoutReadsCount = this.openAssignmentsWithoutReads.size; + const initialAssignmentsWithReadsCount = this.openAssignmentsWithReads.size; + + other.openAssignmentsWithoutReads.forEach(assignment => this.openAssignmentsWithoutReads.add(assignment)); + other.openAssignmentsWithReads.forEach(assignment => this.openAssignmentsWithReads.add(assignment)); + + return this.openAssignmentsWithoutReads.size > initialAssignmentsWithoutReadsCount || + this.openAssignmentsWithReads.size > initialAssignmentsWithReadsCount; + } + + enterAssignment(assignmentExpression) { + (assignmentExpression.operator === "=" ? this.openAssignmentsWithoutReads : this.openAssignmentsWithReads).add(assignmentExpression); + } + + exitAssignment(assignmentExpression) { + this.openAssignmentsWithoutReads.delete(assignmentExpression); + this.openAssignmentsWithReads.delete(assignmentExpression); + } + + exitAwaitOrYield(node, surroundingFunction) { + return [...this.openAssignmentsWithReads] + .filter(assignment => !isLocalVariableWithoutEscape(assignment.left, surroundingFunction)) + .forEach(assignment => { + if (!alreadyReportedAssignments.has(assignment)) { + reportAssignment(assignment); + alreadyReportedAssignments.add(assignment); + } + }); + } + + exitIdentifierOrMemberExpression(node) { + [...this.openAssignmentsWithoutReads] + .filter(assignment => ( + assignment.left !== node && + assignment.left.type === node.type && + astUtils.equalTokens(assignment.left, node, sourceCode) + )) + .forEach(assignment => { + this.openAssignmentsWithoutReads.delete(assignment); + this.openAssignmentsWithReads.add(assignment); + }); + } + } + /** * If the control flow graph of a function enters an assignment expression, then does the * both of the following steps in order (possibly with other steps in between) before exiting the @@ -135,54 +195,51 @@ module.exports = { codePathSegment, surroundingFunction, { - seenSegments = new Set(), - openAssignmentsWithoutReads = new Set(), - openAssignmentsWithReads = new Set() + stateBySegmentStart = new WeakMap(), + stateBySegmentEnd = new WeakMap() } = {} ) { - if (seenSegments.has(codePathSegment)) { - - // An AssignmentExpression can't contain loops, so it's not necessary to reenter them with new state. - return; + if (!stateBySegmentStart.has(codePathSegment)) { + stateBySegmentStart.set(codePathSegment, new AssignmentTrackerState()); } + const currentState = stateBySegmentStart.get(codePathSegment).copy(); + expressionsByCodePathSegment.get(codePathSegment).forEach(({ entering, node }) => { if (node.type === "AssignmentExpression") { if (entering) { - (node.operator === "=" ? openAssignmentsWithoutReads : openAssignmentsWithReads).add(node); + currentState.enterAssignment(node); } else { - openAssignmentsWithoutReads.delete(node); - openAssignmentsWithReads.delete(node); + currentState.exitAssignment(node); } } else if (!entering && (node.type === "AwaitExpression" || node.type === "YieldExpression")) { - [...openAssignmentsWithReads] - .filter(assignment => !isLocalVariableWithoutEscape(assignment.left, surroundingFunction)) - .forEach(reportAssignment); - - openAssignmentsWithReads.clear(); + currentState.exitAwaitOrYield(node, surroundingFunction); } else if (!entering && (node.type === "Identifier" || node.type === "MemberExpression")) { - [...openAssignmentsWithoutReads] - .filter(assignment => ( - assignment.left !== node && - assignment.left.type === node.type && - astUtils.equalTokens(assignment.left, node, sourceCode) - )) - .forEach(assignment => { - openAssignmentsWithoutReads.delete(assignment); - openAssignmentsWithReads.add(assignment); - }); + currentState.exitIdentifierOrMemberExpression(node); } }); + stateBySegmentEnd.set(codePathSegment, currentState); + codePathSegment.nextSegments.forEach(nextSegment => { + if (stateBySegmentStart.has(nextSegment)) { + if (!stateBySegmentStart.get(nextSegment).merge(currentState)) { + + /* + * This segment has already been processed with the given set of inputs; + * no need to do it again. After no new state is available to process + * for any control flow segment in the graph, the analysis reaches a fixpoint and + * traversal stops. + */ + return; + } + } else { + stateBySegmentStart.set(nextSegment, currentState.copy()); + } findOutdatedReads( nextSegment, surroundingFunction, - { - seenSegments: new Set(seenSegments).add(codePathSegment), - openAssignmentsWithoutReads: new Set(openAssignmentsWithoutReads), - openAssignmentsWithReads: new Set(openAssignmentsWithReads) - } + { stateBySegmentStart, stateBySegmentEnd } ); }); } diff --git a/tools/node_modules/eslint/lib/util/source-code-fixer.js b/tools/node_modules/eslint/lib/util/source-code-fixer.js index b3354d4d762556..53dc1dc6be73c4 100644 --- a/tools/node_modules/eslint/lib/util/source-code-fixer.js +++ b/tools/node_modules/eslint/lib/util/source-code-fixer.js @@ -8,7 +8,7 @@ // Requirements //------------------------------------------------------------------------------ -const debug = require("debug")("eslint:text-fixer"); +const debug = require("debug")("eslint:source-code-fixer"); //------------------------------------------------------------------------------ // Helpers diff --git a/tools/node_modules/eslint/node_modules/ajv/dist/ajv.bundle.js b/tools/node_modules/eslint/node_modules/ajv/dist/ajv.bundle.js index 409c0046e64e05..af2ff847874a84 100644 --- a/tools/node_modules/eslint/node_modules/ajv/dist/ajv.bundle.js +++ b/tools/node_modules/eslint/node_modules/ajv/dist/ajv.bundle.js @@ -1573,7 +1573,7 @@ module.exports = function generate__limitItems(it, $keyword, $ruleType) { if ($keyword == 'maxItems') { out += 'more'; } else { - out += 'less'; + out += 'fewer'; } out += ' than '; if ($isData) { @@ -1734,7 +1734,7 @@ module.exports = function generate__limitProperties(it, $keyword, $ruleType) { if ($keyword == 'maxProperties') { out += 'more'; } else { - out += 'less'; + out += 'fewer'; } out += ' than '; if ($isData) { @@ -3607,6 +3607,7 @@ module.exports = function generate_propertyNames(it, $keyword, $ruleType) { var $closingBraces = ''; $it.level++; var $nextValid = 'valid' + $it.level; + out += 'var ' + ($errs) + ' = errors;'; if (it.util.schemaHasRules($schema, it.RULES.all)) { $it.schema = $schema; $it.schemaPath = $schemaPath; @@ -3620,7 +3621,6 @@ module.exports = function generate_propertyNames(it, $keyword, $ruleType) { $dataProperties = 'dataProperties' + $lvl, $ownProperties = it.opts.ownProperties, $currentBaseId = it.baseId; - out += ' var ' + ($errs) + ' = errors; '; if ($ownProperties) { out += ' var ' + ($dataProperties) + ' = undefined; '; } diff --git a/tools/node_modules/eslint/node_modules/ajv/dist/ajv.min.js b/tools/node_modules/eslint/node_modules/ajv/dist/ajv.min.js index 4a6e7a131b2f3b..8719884acf9efc 100644 --- a/tools/node_modules/eslint/node_modules/ajv/dist/ajv.min.js +++ b/tools/node_modules/eslint/node_modules/ajv/dist/ajv.min.js @@ -1,3 +1,3 @@ -/* ajv 6.5.3: Another JSON Schema Validator */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Ajv=e()}}(function(){return function o(i,n,l){function c(r,e){if(!n[r]){if(!i[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(u)return u(r,!0);var a=new Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}var s=n[r]={exports:{}};i[r][0].call(s.exports,function(e){return c(i[r][1][e]||e)},s,s.exports,o,i,n,l)}return n[r].exports}for(var u="function"==typeof require&&require,e=0;e%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,f=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,p=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function m(e){return a.copy(m[e="full"==e?"full":"fast"])}function v(e){var r=e.match(o);if(!r)return!1;var t,a=+r[2],s=+r[3];return 1<=a&&a<=12&&1<=s&&s<=(2!=a||((t=+r[1])%4!=0||t%100==0&&t%400!=0)?i[a]:29)}function g(e,r){var t=e.match(n);if(!t)return!1;var a=t[1],s=t[2],o=t[3];return(a<=23&&s<=59&&o<=59||23==a&&59==s&&60==o)&&(!r||t[5])}(r.exports=m).fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:s,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p},m.full={date:v,time:g,"date-time":function(e){var r=e.split(y);return 2==r.length&&v(r[0])&&g(r[1],!0)},uri:function(e){return P.test(e)&&l.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:function(e){return e.length<=255&&s.test(e)},ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p};var y=/t|\s/i;var P=/\/|:/;var E=/[^\\]\\Z/;function w(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},{"./util":10}],5:[function(e,r,t){"use strict";var $=e("./resolve"),D=e("./util"),j=e("./error_classes"),l=e("fast-json-stable-stringify"),O=e("../dotjs/validate"),I=D.ucs2length,A=e("fast-deep-equal"),C=j.Validation;function k(e,r,t){for(var a=0;a",y=f?">":"<",P=void 0;if(v){var E=e.util.getData(m.$data,i,e.dataPathArr),w="exclusive"+o,S="exclType"+o,b="exclIsNumber"+o,_="' + "+(R="op"+o)+" + '";s+=" var schemaExcl"+o+" = "+E+"; ";var F;P=p;(F=F||[]).push(s+=" var "+w+"; var "+S+" = typeof "+(E="schemaExcl"+o)+"; if ("+S+" != 'boolean' && "+S+" != 'undefined' && "+S+" != 'number') { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var x=s;s=F.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+S+" == 'number' ? ( ("+w+" = "+a+" === undefined || "+E+" "+g+"= "+a+") ? "+h+" "+y+"= "+E+" : "+h+" "+y+" "+a+" ) : ( ("+w+" = "+E+" === true) ? "+h+" "+y+"= "+a+" : "+h+" "+y+" "+a+" ) || "+h+" !== "+h+") { var op"+o+" = "+w+" ? '"+g+"' : '"+g+"='; ",void 0===n&&(c=e.errSchemaPath+"/"+(P=p),a=E,d=v)}else{_=g;if((b="number"==typeof m)&&d){var R="'"+_+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ( "+a+" === undefined || "+m+" "+g+"= "+a+" ? "+h+" "+y+"= "+m+" : "+h+" "+y+" "+a+" ) || "+h+" !== "+h+") { "}else{b&&void 0===n?(w=!0,c=e.errSchemaPath+"/"+(P=p),a=m,y+="="):(b&&(a=Math[f?"min":"max"](m,n)),m===(!b||a)?(w=!0,c=e.errSchemaPath+"/"+(P=p),y+="="):(w=!1,_+="="));R="'"+_+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+h+" "+y+" "+a+" || "+h+" !== "+h+") { "}}P=P||r,(F=F||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+R+", limit: "+a+", exclusive: "+w+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+_+" ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";x=s;return s=F.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}},{}],13:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || ");var f=r,p=p||[];p.push(s+=" "+h+".length "+("maxItems"==r?">":"<")+" "+a+") { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"less",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=!1===e.opts.unicode?" "+h+".length ":" ucs2length("+h+") ";var f=r,p=p||[];p.push(s+=" "+("maxLength"==r?">":"<")+" "+a+") { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || ");var f=r,p=p||[];p.push(s+=" Object.keys("+h+").length "+("maxProperties"==r?">":"<")+" "+a+") { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"less",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.schema[r],o=e.schemaPath+e.util.getProperty(r),i=e.errSchemaPath+"/"+r,n=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var u="valid"+l.level,h=l.baseId,d=!0,f=s;if(f)for(var p,m=-1,v=f.length-1;m "+x+") { ";var $=u+"["+x+"]";f.schema=F,f.schemaPath=n+"["+x+"]",f.errSchemaPath=l+"/"+x,f.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),f.dataPathArr[g]=x;var D=e.validate(f);f.baseId=P,e.util.varOccurences(D,y)<2?a+=" "+e.util.varReplace(D,y,$)+" ":a+=" var "+y+" = "+$+"; "+D+" ",a+=" } ",c&&(a+=" if ("+m+") { ",p+="}")}if("object"==typeof E&&e.util.schemaHasRules(E,e.RULES.all)){f.schema=E,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+u+".length > "+i.length+") { for (var "+v+" = "+i.length+"; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[g]=v;D=e.validate(f);f.baseId=P,e.util.varOccurences(D,y)<2?a+=" "+e.util.varReplace(D,y,$)+" ":a+=" var "+y+" = "+$+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" } } ",c&&(a+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" for (var "+v+" = 0; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[g]=v;D=e.validate(f);f.baseId=P,e.util.varOccurences(D,y)<2?a+=" "+e.util.varReplace(D,y,$)+" ":a+=" var "+y+" = "+$+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" }"}return c&&(a+=" "+p+" if ("+d+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],28:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="var division"+o+";if (",d&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=" (division"+o+" = "+h+" / "+a+", ",s+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",d&&(s+=" ) ");var f=f||[];f.push(s+=" ) { "),s="",!1!==e.createErrors?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be multiple of ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var p=s;return s=f.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" var "+h+" = errors; ";var p,m=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.opts.allErrors&&(p=d.opts.allErrors,d.opts.allErrors=!1),a+=" "+e.validate(d)+" ",d.createErrors=!0,p&&(d.opts.allErrors=p),e.compositeRule=d.compositeRule=m;var v=v||[];v.push(a+=" if ("+f+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var g=a;a=v.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,v=f.baseId,g="prevValid"+s,y="passingSchemas"+s;a+="var "+d+" = errors , "+g+" = false , "+h+" = false , "+y+" = null; ";var P=e.compositeRule;e.compositeRule=f.compositeRule=!0;var E=i;if(E)for(var w,S=-1,b=E.length-1;S 1) { ";var p=e.schema.items&&e.schema.items.type,m=Array.isArray(p);if(!p||"object"==p||"array"==p||m&&(0<=p.indexOf("object")||0<=p.indexOf("array")))s+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+d+" = false; break outer; } } } ";else s+=" var itemIndices = {}, item; for (;i--;) { var item = "+h+"[i]; ",s+=" if ("+e.util["checkDataType"+(m?"s":"")](p,"item",!0)+") continue; ",m&&(s+=" if (typeof item == 'string') item = '\"' + item; "),s+=" if (typeof itemIndices[item] == 'number') { "+d+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";s+=" } ",f&&(s+=" } ");var v=v||[];v.push(s+=" if (!"+d+") { "),s="",!1!==e.createErrors?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var g=s;s=v.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}},{}],37:[function(e,r,t){"use strict";r.exports=function(a,e,r){var t="",s=!0===a.schema.$async,o=a.util.schemaHasRulesExcept(a.schema,a.RULES.all,"$ref"),i=a.self._getId(a.schema);if(a.isTop&&(t+=" var validate = ",s&&(a.async=!0,t+="async "),t+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",i&&(a.opts.sourceCode||a.opts.processCode)&&(t+=" /*# sourceURL="+i+" */ ")),"boolean"==typeof a.schema||!o&&!a.schema.$ref){var n=a.level,l=a.dataLevel,c=a.schema[e="false schema"],u=a.schemaPath+a.util.getProperty(e),h=a.errSchemaPath+"/"+e,d=!a.opts.allErrors,f="data"+(l||""),p="valid"+n;if(!1===a.schema){a.isTop?d=!0:t+=" var "+p+" = false; ",(K=K||[]).push(t),t="",!1!==a.createErrors?(t+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(h)+" , params: {} ",!1!==a.opts.messages&&(t+=" , message: 'boolean schema is false' "),a.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+a.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var m=t;t=K.pop(),t+=!a.compositeRule&&d?a.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else t+=a.isTop?s?" return data; ":" validate.errors = null; return true; ":" var "+p+" = true; ";return a.isTop&&(t+=" }; return validate; "),t}if(a.isTop){var v=a.isTop;n=a.level=0,l=a.dataLevel=0,f="data";a.rootId=a.resolve.fullPath(a.self._getId(a.root.schema)),a.baseId=a.baseId||a.rootId,delete a.isTop,a.dataPathArr=[void 0],t+=" var vErrors = null; ",t+=" var errors = 0; ",t+=" if (rootData === undefined) rootData = data; "}else{n=a.level,f="data"+((l=a.dataLevel)||"");if(i&&(a.baseId=a.resolve.url(a.baseId,i)),s&&!a.async)throw new Error("async schema in sync schema");t+=" var errs_"+n+" = errors;"}p="valid"+n,d=!a.opts.allErrors;var g="",y="",P=a.schema.type,E=Array.isArray(P);if(E&&1==P.length&&(P=P[0],E=!1),a.schema.$ref&&o){if("fail"==a.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+a.errSchemaPath+'" (see option extendRefs)');!0!==a.opts.extendRefs&&(o=!1,a.logger.warn('$ref: keywords ignored in schema at path "'+a.errSchemaPath+'"'))}if(a.schema.$comment&&a.opts.$comment&&(t+=" "+a.RULES.all.$comment.code(a,"$comment")),P){if(a.opts.coerceTypes)var w=a.util.coerceToTypes(a.opts.coerceTypes,P);var S=a.RULES.types[P];if(w||E||!0===S||S&&!J(S)){u=a.schemaPath+".type",h=a.errSchemaPath+"/type",u=a.schemaPath+".type",h=a.errSchemaPath+"/type";if(t+=" if ("+a.util[E?"checkDataTypes":"checkDataType"](P,f,!0)+") { ",w){var b="dataType"+n,_="coerced"+n;t+=" var "+b+" = typeof "+f+"; ","array"==a.opts.coerceTypes&&(t+=" if ("+b+" == 'object' && Array.isArray("+f+")) "+b+" = 'array'; "),t+=" var "+_+" = undefined; ";var F="",x=w;if(x)for(var R,$=-1,D=x.length-1;$= 0x80 (not a basic code point)","invalid-input":"Invalid input"},L=Math.floor,z=String.fromCharCode;function T(e){throw new RangeError(i[e])}function n(e,r){var t=e.split("@"),a="";return 1>1,e+=L(e/r);455L((A-s)/h))&&T("overflow"),s+=f*h;var p=d<=i?1:i+26<=d?26:d-i;if(fL(A/m)&&T("overflow"),h*=m}var v=t.length+1;i=U(s-u,v,0==u),L(s/v)>A-o&&T("overflow"),o+=L(s/v),s%=v,t.splice(s++,0,o)}return String.fromCodePoint.apply(String,t)},c=function(e){var r=[],t=(e=N(e)).length,a=128,s=0,o=72,i=!0,n=!1,l=void 0;try{for(var c,u=e[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var h=c.value;h<128&&r.push(z(h))}}catch(e){n=!0,l=e}finally{try{!i&&u.return&&u.return()}finally{if(n)throw l}}var d=r.length,f=d;for(d&&r.push("-");fL((A-s)/w)&&T("overflow"),s+=(p-a)*w,a=p;var S=!0,b=!1,_=void 0;try{for(var F,x=e[Symbol.iterator]();!(S=(F=x.next()).done);S=!0){var R=F.value;if(RA&&T("overflow"),R==a){for(var $=s,D=36;;D+=36){var j=D<=o?1:o+26<=D?26:D-o;if($>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function f(e){for(var r="",t=0,a=e.length;tA-Z\\x5E-\\x7E]",'[\\"\\\\]'),Z=new RegExp(M,"g"),G=new RegExp(K,"g"),Y=new RegExp(C("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',J),"g"),W=new RegExp(C("[^]",M,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),X=W;function ee(e){var r=f(e);return r.match(Z)?r:e}var re={scheme:"mailto",parse:function(e,r){var t=e,a=t.to=t.path?t.path.split(","):[];if(t.path=void 0,t.query){for(var s=!1,o={},i=t.query.split("&"),n=0,l=i.length;n%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,f=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,p=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function m(e){return a.copy(m[e="full"==e?"full":"fast"])}function v(e){var r=e.match(o);if(!r)return!1;var t,a=+r[2],s=+r[3];return 1<=a&&a<=12&&1<=s&&s<=(2!=a||((t=+r[1])%4!=0||t%100==0&&t%400!=0)?i[a]:29)}function g(e,r){var t=e.match(n);if(!t)return!1;var a=t[1],s=t[2],o=t[3];return(a<=23&&s<=59&&o<=59||23==a&&59==s&&60==o)&&(!r||t[5])}(r.exports=m).fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:s,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p},m.full={date:v,time:g,"date-time":function(e){var r=e.split(y);return 2==r.length&&v(r[0])&&g(r[1],!0)},uri:function(e){return P.test(e)&&l.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:function(e){return e.length<=255&&s.test(e)},ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p};var y=/t|\s/i;var P=/\/|:/;var E=/[^\\]\\Z/;function w(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},{"./util":10}],5:[function(e,r,t){"use strict";var $=e("./resolve"),D=e("./util"),j=e("./error_classes"),l=e("fast-json-stable-stringify"),O=e("../dotjs/validate"),I=D.ucs2length,A=e("fast-deep-equal"),C=j.Validation;function k(e,r,t){for(var a=0;a",y=f?">":"<",P=void 0;if(v){var E=e.util.getData(m.$data,i,e.dataPathArr),w="exclusive"+o,S="exclType"+o,b="exclIsNumber"+o,_="' + "+(R="op"+o)+" + '";s+=" var schemaExcl"+o+" = "+E+"; ";var F;P=p;(F=F||[]).push(s+=" var "+w+"; var "+S+" = typeof "+(E="schemaExcl"+o)+"; if ("+S+" != 'boolean' && "+S+" != 'undefined' && "+S+" != 'number') { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var x=s;s=F.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+S+" == 'number' ? ( ("+w+" = "+a+" === undefined || "+E+" "+g+"= "+a+") ? "+h+" "+y+"= "+E+" : "+h+" "+y+" "+a+" ) : ( ("+w+" = "+E+" === true) ? "+h+" "+y+"= "+a+" : "+h+" "+y+" "+a+" ) || "+h+" !== "+h+") { var op"+o+" = "+w+" ? '"+g+"' : '"+g+"='; ",void 0===n&&(c=e.errSchemaPath+"/"+(P=p),a=E,d=v)}else{_=g;if((b="number"==typeof m)&&d){var R="'"+_+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ( "+a+" === undefined || "+m+" "+g+"= "+a+" ? "+h+" "+y+"= "+m+" : "+h+" "+y+" "+a+" ) || "+h+" !== "+h+") { "}else{b&&void 0===n?(w=!0,c=e.errSchemaPath+"/"+(P=p),a=m,y+="="):(b&&(a=Math[f?"min":"max"](m,n)),m===(!b||a)?(w=!0,c=e.errSchemaPath+"/"+(P=p),y+="="):(w=!1,_+="="));R="'"+_+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+h+" "+y+" "+a+" || "+h+" !== "+h+") { "}}P=P||r,(F=F||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+R+", limit: "+a+", exclusive: "+w+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+_+" ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";x=s;return s=F.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}},{}],13:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || ");var f=r,p=p||[];p.push(s+=" "+h+".length "+("maxItems"==r?">":"<")+" "+a+") { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"fewer",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=!1===e.opts.unicode?" "+h+".length ":" ucs2length("+h+") ";var f=r,p=p||[];p.push(s+=" "+("maxLength"==r?">":"<")+" "+a+") { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || ");var f=r,p=p||[];p.push(s+=" Object.keys("+h+").length "+("maxProperties"==r?">":"<")+" "+a+") { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"fewer",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.schema[r],o=e.schemaPath+e.util.getProperty(r),i=e.errSchemaPath+"/"+r,n=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var u="valid"+l.level,h=l.baseId,d=!0,f=s;if(f)for(var p,m=-1,v=f.length-1;m "+x+") { ";var $=u+"["+x+"]";f.schema=F,f.schemaPath=n+"["+x+"]",f.errSchemaPath=l+"/"+x,f.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),f.dataPathArr[g]=x;var D=e.validate(f);f.baseId=P,e.util.varOccurences(D,y)<2?a+=" "+e.util.varReplace(D,y,$)+" ":a+=" var "+y+" = "+$+"; "+D+" ",a+=" } ",c&&(a+=" if ("+m+") { ",p+="}")}if("object"==typeof E&&e.util.schemaHasRules(E,e.RULES.all)){f.schema=E,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+u+".length > "+i.length+") { for (var "+v+" = "+i.length+"; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[g]=v;D=e.validate(f);f.baseId=P,e.util.varOccurences(D,y)<2?a+=" "+e.util.varReplace(D,y,$)+" ":a+=" var "+y+" = "+$+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" } } ",c&&(a+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" for (var "+v+" = 0; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[g]=v;D=e.validate(f);f.baseId=P,e.util.varOccurences(D,y)<2?a+=" "+e.util.varReplace(D,y,$)+" ":a+=" var "+y+" = "+$+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" }"}return c&&(a+=" "+p+" if ("+d+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],28:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="var division"+o+";if (",d&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=" (division"+o+" = "+h+" / "+a+", ",s+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",d&&(s+=" ) ");var f=f||[];f.push(s+=" ) { "),s="",!1!==e.createErrors?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be multiple of ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var p=s;return s=f.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" var "+h+" = errors; ";var p,m=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.opts.allErrors&&(p=d.opts.allErrors,d.opts.allErrors=!1),a+=" "+e.validate(d)+" ",d.createErrors=!0,p&&(d.opts.allErrors=p),e.compositeRule=d.compositeRule=m;var v=v||[];v.push(a+=" if ("+f+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var g=a;a=v.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,v=f.baseId,g="prevValid"+s,y="passingSchemas"+s;a+="var "+d+" = errors , "+g+" = false , "+h+" = false , "+y+" = null; ";var P=e.compositeRule;e.compositeRule=f.compositeRule=!0;var E=i;if(E)for(var w,S=-1,b=E.length-1;S 1) { ";var p=e.schema.items&&e.schema.items.type,m=Array.isArray(p);if(!p||"object"==p||"array"==p||m&&(0<=p.indexOf("object")||0<=p.indexOf("array")))s+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+d+" = false; break outer; } } } ";else s+=" var itemIndices = {}, item; for (;i--;) { var item = "+h+"[i]; ",s+=" if ("+e.util["checkDataType"+(m?"s":"")](p,"item",!0)+") continue; ",m&&(s+=" if (typeof item == 'string') item = '\"' + item; "),s+=" if (typeof itemIndices[item] == 'number') { "+d+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";s+=" } ",f&&(s+=" } ");var v=v||[];v.push(s+=" if (!"+d+") { "),s="",!1!==e.createErrors?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var g=s;s=v.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}},{}],37:[function(e,r,t){"use strict";r.exports=function(a,e,r){var t="",s=!0===a.schema.$async,o=a.util.schemaHasRulesExcept(a.schema,a.RULES.all,"$ref"),i=a.self._getId(a.schema);if(a.isTop&&(t+=" var validate = ",s&&(a.async=!0,t+="async "),t+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",i&&(a.opts.sourceCode||a.opts.processCode)&&(t+=" /*# sourceURL="+i+" */ ")),"boolean"==typeof a.schema||!o&&!a.schema.$ref){var n=a.level,l=a.dataLevel,c=a.schema[e="false schema"],u=a.schemaPath+a.util.getProperty(e),h=a.errSchemaPath+"/"+e,d=!a.opts.allErrors,f="data"+(l||""),p="valid"+n;if(!1===a.schema){a.isTop?d=!0:t+=" var "+p+" = false; ",(K=K||[]).push(t),t="",!1!==a.createErrors?(t+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(h)+" , params: {} ",!1!==a.opts.messages&&(t+=" , message: 'boolean schema is false' "),a.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+a.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var m=t;t=K.pop(),t+=!a.compositeRule&&d?a.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else t+=a.isTop?s?" return data; ":" validate.errors = null; return true; ":" var "+p+" = true; ";return a.isTop&&(t+=" }; return validate; "),t}if(a.isTop){var v=a.isTop;n=a.level=0,l=a.dataLevel=0,f="data";a.rootId=a.resolve.fullPath(a.self._getId(a.root.schema)),a.baseId=a.baseId||a.rootId,delete a.isTop,a.dataPathArr=[void 0],t+=" var vErrors = null; ",t+=" var errors = 0; ",t+=" if (rootData === undefined) rootData = data; "}else{n=a.level,f="data"+((l=a.dataLevel)||"");if(i&&(a.baseId=a.resolve.url(a.baseId,i)),s&&!a.async)throw new Error("async schema in sync schema");t+=" var errs_"+n+" = errors;"}p="valid"+n,d=!a.opts.allErrors;var g="",y="",P=a.schema.type,E=Array.isArray(P);if(E&&1==P.length&&(P=P[0],E=!1),a.schema.$ref&&o){if("fail"==a.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+a.errSchemaPath+'" (see option extendRefs)');!0!==a.opts.extendRefs&&(o=!1,a.logger.warn('$ref: keywords ignored in schema at path "'+a.errSchemaPath+'"'))}if(a.schema.$comment&&a.opts.$comment&&(t+=" "+a.RULES.all.$comment.code(a,"$comment")),P){if(a.opts.coerceTypes)var w=a.util.coerceToTypes(a.opts.coerceTypes,P);var S=a.RULES.types[P];if(w||E||!0===S||S&&!J(S)){u=a.schemaPath+".type",h=a.errSchemaPath+"/type",u=a.schemaPath+".type",h=a.errSchemaPath+"/type";if(t+=" if ("+a.util[E?"checkDataTypes":"checkDataType"](P,f,!0)+") { ",w){var b="dataType"+n,_="coerced"+n;t+=" var "+b+" = typeof "+f+"; ","array"==a.opts.coerceTypes&&(t+=" if ("+b+" == 'object' && Array.isArray("+f+")) "+b+" = 'array'; "),t+=" var "+_+" = undefined; ";var F="",x=w;if(x)for(var R,$=-1,D=x.length-1;$= 0x80 (not a basic code point)","invalid-input":"Invalid input"},L=Math.floor,z=String.fromCharCode;function T(e){throw new RangeError(i[e])}function n(e,r){var t=e.split("@"),a="";return 1>1,e+=L(e/r);455L((A-s)/h))&&T("overflow"),s+=f*h;var p=d<=i?1:i+26<=d?26:d-i;if(fL(A/m)&&T("overflow"),h*=m}var v=t.length+1;i=U(s-u,v,0==u),L(s/v)>A-o&&T("overflow"),o+=L(s/v),s%=v,t.splice(s++,0,o)}return String.fromCodePoint.apply(String,t)},c=function(e){var r=[],t=(e=N(e)).length,a=128,s=0,o=72,i=!0,n=!1,l=void 0;try{for(var c,u=e[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var h=c.value;h<128&&r.push(z(h))}}catch(e){n=!0,l=e}finally{try{!i&&u.return&&u.return()}finally{if(n)throw l}}var d=r.length,f=d;for(d&&r.push("-");fL((A-s)/w)&&T("overflow"),s+=(p-a)*w,a=p;var S=!0,b=!1,_=void 0;try{for(var F,x=e[Symbol.iterator]();!(S=(F=x.next()).done);S=!0){var R=F.value;if(RA&&T("overflow"),R==a){for(var $=s,D=36;;D+=36){var j=D<=o?1:o+26<=D?26:D-o;if($>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function f(e){for(var r="",t=0,a=e.length;tA-Z\\x5E-\\x7E]",'[\\"\\\\]'),Z=new RegExp(M,"g"),G=new RegExp(K,"g"),Y=new RegExp(C("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',J),"g"),W=new RegExp(C("[^]",M,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),X=W;function ee(e){var r=f(e);return r.match(Z)?r:e}var re={scheme:"mailto",parse:function(e,r){var t=e,a=t.to=t.path?t.path.split(","):[];if(t.path=void 0,t.query){for(var s=!1,o={},i=t.query.split("&"),n=0,l=i.length;n= v31, * and the Firebug extension (any Firefox version) are known @@ -25,123 +101,130 @@ exports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066F * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ -// eslint-disable-next-line complexity +// eslint-disable-next-line complexity function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } // Internet Explorer and Edge do not support colors. - + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } - - return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 - typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker - typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } + /** * Colorize log arguments if enabled. * * @api public */ - function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff); - - if (!this.useColors) { - return; - } - - var c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - - var index = 0; - var lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, function (match) { - if (match === '%%') { - return; - } - - index++; - - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - args.splice(lastC, 0, c); + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); } + /** * Invokes `console.log()` when available. * No-op when `console.log` is not a "function". * * @api public */ - - -function log() { - var _console; - - // This hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return (typeof console === "undefined" ? "undefined" : _typeof(console)) === 'object' && console.log && (_console = console).log.apply(_console, arguments); +function log(...args) { + // This hackery is required for IE8/9, where + // the `console.log` function doesn't have 'apply' + return typeof console === 'object' && + console.log && + console.log(...args); } + /** * Save `namespaces`. * * @param {String} namespaces * @api private */ - - function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) {// Swallow - // XXX (@Qix-) should we be logging these? - } + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } } + /** * Load `namespaces`. * * @return {String} returns the previously persisted debug modes * @api private */ - - function load() { - var r; - - try { - r = exports.storage.getItem('debug'); - } catch (error) {} // Swallow - // XXX (@Qix-) should we be logging these? - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; + return r; } + /** * Localstorage attempts to return the localstorage. * @@ -153,27 +236,29 @@ function load() { * @api private */ - function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) {// Swallow - // XXX (@Qix-) should we be logging these? - } + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } } module.exports = require('./common')(exports); -var formatters = module.exports.formatters; + +const {formatters} = module.exports; + /** * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. */ formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } }; diff --git a/tools/node_modules/eslint/node_modules/debug/src/common.js b/tools/node_modules/eslint/node_modules/debug/src/common.js index a153ed532ad3ad..dab9e480278b32 100644 --- a/tools/node_modules/eslint/node_modules/debug/src/common.js +++ b/tools/node_modules/eslint/node_modules/debug/src/common.js @@ -1,248 +1,245 @@ -"use strict"; /** * This is the common logic for both the Node.js and web browser * implementations of `debug()`. */ + function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = require('ms'); - Object.keys(env).forEach(function (key) { - createDebug[key] = env[key]; - }); - /** - * Active `debug` instances. - */ - - createDebug.instances = []; - /** - * The currently active debug mode names, and names to skip. - */ - - createDebug.names = []; - createDebug.skips = []; - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - - createDebug.formatters = {}; - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - - function selectColor(namespace) { - var hash = 0; - - for (var i = 0; i < namespace.length; i++) { - hash = (hash << 5) - hash + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - - createDebug.selectColor = selectColor; - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - - function createDebug(namespace) { - var prevTime; - - function debug() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - // Disabled? - if (!debug.enabled) { - return; - } - - var self = debug; // Set `diff` timestamp - - var curr = Number(new Date()); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - args[0] = createDebug.coerce(args[0]); - - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } // Apply any `formatters` transformations - - - var index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return match; - } - - index++; - var formatter = createDebug.formatters[format]; - - if (typeof formatter === 'function') { - var val = args[index]; - match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format` - - args.splice(index, 1); - index--; - } - - return match; - }); // Apply env-specific formatting (colors, etc.) - - createDebug.formatArgs.call(self, args); - var logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.enabled = createDebug.enabled(namespace); - debug.useColors = createDebug.useColors(); - debug.color = selectColor(namespace); - debug.destroy = destroy; - debug.extend = extend; // Debug.formatArgs = formatArgs; - // debug.rawLog = rawLog; - // env-specific initialization logic for debug instances - - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - - createDebug.instances.push(debug); - return debug; - } - - function destroy() { - var index = createDebug.instances.indexOf(this); - - if (index !== -1) { - createDebug.instances.splice(index, 1); - return true; - } - - return false; - } - - function extend(namespace, delimiter) { - return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - } - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - - - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.names = []; - createDebug.skips = []; - var i; - var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - var len = split.length; - - for (i = 0; i < len; i++) { - if (!split[i]) { - // ignore empty strings - continue; - } - - namespaces = split[i].replace(/\*/g, '.*?'); - - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } - - for (i = 0; i < createDebug.instances.length; i++) { - var instance = createDebug.instances[i]; - instance.enabled = createDebug.enabled(instance.namespace); - } - } - /** - * Disable debug output. - * - * @api public - */ - - - function disable() { - createDebug.enable(''); - } - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - - - function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } - - var i; - var len; - - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } - - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } - - return false; - } - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - - - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - - return val; - } - - createDebug.enable(createDebug.load()); - return createDebug; + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require('ms'); + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * Active `debug` instances. + */ + createDebug.instances = []; + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return match; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.enabled = createDebug.enabled(namespace); + debug.useColors = createDebug.useColors(); + debug.color = selectColor(namespace); + debug.destroy = destroy; + debug.extend = extend; + // Debug.formatArgs = formatArgs; + // debug.rawLog = rawLog; + + // env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + createDebug.instances.push(debug); + + return debug; + } + + function destroy() { + const index = createDebug.instances.indexOf(this); + if (index !== -1) { + createDebug.instances.splice(index, 1); + return true; + } + return false; + } + + function extend(namespace, delimiter) { + return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + + createDebug.names = []; + createDebug.skips = []; + + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } + + namespaces = split[i].replace(/\*/g, '.*?'); + + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + + for (i = 0; i < createDebug.instances.length; i++) { + const instance = createDebug.instances[i]; + instance.enabled = createDebug.enabled(instance.namespace); + } + } + + /** + * Disable debug output. + * + * @api public + */ + function disable() { + createDebug.enable(''); + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } + + let i; + let len; + + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + + return false; + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + createDebug.enable(createDebug.load()); + + return createDebug; } module.exports = setup; diff --git a/tools/node_modules/eslint/node_modules/debug/src/index.js b/tools/node_modules/eslint/node_modules/debug/src/index.js index 9fb731212c53a9..bf4c57f259df2e 100644 --- a/tools/node_modules/eslint/node_modules/debug/src/index.js +++ b/tools/node_modules/eslint/node_modules/debug/src/index.js @@ -1,11 +1,10 @@ -"use strict"; - /** * Detect Electron renderer / nwjs process, which is node, but we should * treat as a browser. */ + if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = require('./browser.js'); + module.exports = require('./browser.js'); } else { - module.exports = require('./node.js'); + module.exports = require('./node.js'); } diff --git a/tools/node_modules/eslint/node_modules/debug/src/node.js b/tools/node_modules/eslint/node_modules/debug/src/node.js index 7932fdba35cba1..5e1f1541a05593 100644 --- a/tools/node_modules/eslint/node_modules/debug/src/node.js +++ b/tools/node_modules/eslint/node_modules/debug/src/node.js @@ -1,22 +1,21 @@ -"use strict"; - /** * Module dependencies. */ -var tty = require('tty'); -var util = require('util'); +const tty = require('tty'); +const util = require('util'); + /** * This is the Node.js implementation of `debug()`. */ - exports.init = init; exports.log = log; exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; + /** * Colors. */ @@ -24,14 +23,93 @@ exports.useColors = useColors; exports.colors = [6, 2, 3, 4, 5, 1]; try { - // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) - // eslint-disable-next-line import/no-extraneous-dependencies - var supportsColor = require('supports-color'); - - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221]; - } -} catch (error) {} // Swallow - we only care if `supports-color` is available; it doesn't have to be. + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = require('supports-color'); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. +} /** * Build up the default `inspectOpts` object from the environment variables. @@ -39,91 +117,95 @@ try { * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js */ - -exports.inspectOpts = Object.keys(process.env).filter(function (key) { - return /^debug_/i.test(key); -}).reduce(function (obj, key) { - // Camel-case - var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function (_, k) { - return k.toUpperCase(); - }); // Coerce string value into JS value - - var val = process.env[key]; - - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === 'null') { - val = null; - } else { - val = Number(val); - } - - obj[prop] = val; - return obj; +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; }, {}); + /** * Is stdout a TTY? Colored output is enabled when `true`. */ function useColors() { - return 'colors' in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); } + /** * Adds ANSI color escape codes if enabled. * * @api public */ - function formatArgs(args) { - var name = this.namespace, - useColors = this.useColors; - - if (useColors) { - var c = this.color; - var colorCode = "\x1B[3" + (c < 8 ? c : '8;5;' + c); - var prefix = " ".concat(colorCode, ";1m").concat(name, " \x1B[0m"); - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + "\x1B[0m"); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } } function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - - return new Date().toISOString() + ' '; + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; } + /** * Invokes `util.format()` with the specified arguments and writes to stderr. */ - -function log() { - return process.stderr.write(util.format.apply(util, arguments) + '\n'); +function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); } + /** * Save `namespaces`. * * @param {String} namespaces * @api private */ - - function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } } + /** * Load `namespaces`. * @@ -131,10 +213,10 @@ function save(namespaces) { * @api private */ - function load() { - return process.env.DEBUG; + return process.env.DEBUG; } + /** * Init logic for `debug` instances. * @@ -142,32 +224,34 @@ function load() { * differently for a particular `debug` instance. */ - function init(debug) { - debug.inspectOpts = {}; - var keys = Object.keys(exports.inspectOpts); + debug.inspectOpts = {}; - for (var i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } } module.exports = require('./common')(exports); -var formatters = module.exports.formatters; + +const {formatters} = module.exports; + /** * Map %o to `util.inspect()`, all on a single line. */ formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts).replace(/\s*\n\s*/g, ' '); + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .replace(/\s*\n\s*/g, ' '); }; + /** * Map %O to `util.inspect()`, allowing multiple lines if needed. */ - formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); }; diff --git a/tools/node_modules/eslint/node_modules/parse-entities/decode-entity.browser.js b/tools/node_modules/eslint/node_modules/parse-entities/decode-entity.browser.js new file mode 100644 index 00000000000000..ca97cd28958dea --- /dev/null +++ b/tools/node_modules/eslint/node_modules/parse-entities/decode-entity.browser.js @@ -0,0 +1,28 @@ +'use strict' + +/* eslint-env browser */ + +var el + +module.exports = decodeEntity + +function decodeEntity(characters) { + var entity = '&' + characters + ';' + var char + + el = el || document.createElement('i') + el.innerHTML = entity + char = el.textContent + + // Some entities do not require the closing semicolon (¬ - for instance), + // which leads to situations where parsing the assumed entity of ¬it; will + // result in the string `¬it;`. When we encounter a trailing semicolon after + // parsing and the entity to decode was not a semicolon (;), we can + // assume that the matching was incomplete + if (char.slice(-1) === ';' && characters !== 'semi') { + return false + } + + // If the decoded string is equal to the input, the entity was not valid + return char === entity ? false : char +} diff --git a/tools/node_modules/eslint/node_modules/parse-entities/decode-entity.js b/tools/node_modules/eslint/node_modules/parse-entities/decode-entity.js new file mode 100644 index 00000000000000..87c3b1e0bc2657 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/parse-entities/decode-entity.js @@ -0,0 +1,13 @@ +'use strict' + +var characterEntities = require('character-entities') + +module.exports = decodeEntity + +var own = {}.hasOwnProperty + +function decodeEntity(characters) { + return own.call(characterEntities, characters) + ? characterEntities[characters] + : false +} diff --git a/tools/node_modules/eslint/node_modules/parse-entities/index.js b/tools/node_modules/eslint/node_modules/parse-entities/index.js index 184a8889d1fab0..ab332bf2f93fc3 100644 --- a/tools/node_modules/eslint/node_modules/parse-entities/index.js +++ b/tools/node_modules/eslint/node_modules/parse-entities/index.js @@ -1,11 +1,11 @@ 'use strict' -var characterEntities = require('character-entities') var legacy = require('character-entities-legacy') var invalid = require('character-reference-invalid') var decimal = require('is-decimal') var hexadecimal = require('is-hexadecimal') var alphanumerical = require('is-alphanumerical') +var decodeEntity = require('./decode-entity') module.exports = parseEntities @@ -115,6 +115,7 @@ function parse(value, settings) { var queue = '' var result = [] var entityCharacters + var namedEntity var terminated var characters var character @@ -246,9 +247,11 @@ function parse(value, settings) { if (terminated) { end++ - if (type === NAMED && own.call(characterEntities, characters)) { + namedEntity = type === NAMED ? decodeEntity(characters) : false + + if (namedEntity) { entityCharacters = characters - entity = characterEntities[characters] + entity = namedEntity } } diff --git a/tools/node_modules/eslint/node_modules/parse-entities/package.json b/tools/node_modules/eslint/node_modules/parse-entities/package.json index bc0e20b92a49cf..9dc76d30251724 100644 --- a/tools/node_modules/eslint/node_modules/parse-entities/package.json +++ b/tools/node_modules/eslint/node_modules/parse-entities/package.json @@ -4,6 +4,9 @@ "email": "tituswormer@gmail.com", "url": "http://wooorm.com" }, + "browser": { + "./decode-entity.js": "./decode-entity.browser.js" + }, "bugs": { "url": "https://github.com/wooorm/parse-entities/issues" }, @@ -27,16 +30,19 @@ "description": "Parse HTML character references: fast, spec-compliant, positional information", "devDependencies": { "browserify": "^16.0.0", - "esmangle": "^1.0.0", "nyc": "^11.0.0", "prettier": "^1.12.1", "remark-cli": "^5.0.0", "remark-preset-wooorm": "^4.0.0", "tape": "^4.2.0", + "tape-run": "^4.0.0", + "tinyify": "^2.4.3", "xo": "^0.20.0" }, "files": [ - "index.js" + "index.js", + "decode-entity.js", + "decode-entity.browser.js" ], "homepage": "https://github.com/wooorm/parse-entities#readme", "keywords": [ @@ -74,14 +80,15 @@ }, "scripts": { "build": "npm run build-bundle && npm run build-mangle", - "build-bundle": "browserify index.js --bare -s parseEntities > parse-entities.js", - "build-mangle": "esmangle parse-entities.js > parse-entities.min.js", + "build-bundle": "browserify . -s parseEntities > parse-entities.js", + "build-mangle": "browserify . -s parseEntities -p tinyify > parse-entities.min.js", "format": "remark . -qfo && prettier --write '**/*.js' && xo --fix", - "test": "npm run format && npm run build && npm run test-coverage", + "test": "npm run format && npm run build && npm run test-coverage && npm run test-browser", "test-api": "node test", + "test-browser": "browserify test.js | tape-run", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.1.2", + "version": "1.2.0", "xo": { "prettier": true, "esnext": false, diff --git a/tools/node_modules/eslint/node_modules/parse-entities/readme.md b/tools/node_modules/eslint/node_modules/parse-entities/readme.md index a96aa4d0fa2037..c7f547d4c9c94d 100644 --- a/tools/node_modules/eslint/node_modules/parse-entities/readme.md +++ b/tools/node_modules/eslint/node_modules/parse-entities/readme.md @@ -191,7 +191,7 @@ Source of character reference (`Location`). [npm]: https://docs.npmjs.com/cli/install -[license]: LICENSE +[license]: license [author]: http://wooorm.com diff --git a/tools/node_modules/eslint/node_modules/regexpp/index.d.ts b/tools/node_modules/eslint/node_modules/regexpp/index.d.ts index d3b1d48e5ba30e..174b40e714531f 100644 --- a/tools/node_modules/eslint/node_modules/regexpp/index.d.ts +++ b/tools/node_modules/eslint/node_modules/regexpp/index.d.ts @@ -141,9 +141,9 @@ declare module 'regexpp/ast' { multiline: boolean; sticky: boolean; unicode: boolean; - } -} - + } +} + declare module 'regexpp/parser' { import { Flags, RegExpLiteral, Pattern } from "regexpp/ast"; export namespace RegExpParser { @@ -186,9 +186,9 @@ declare module 'regexpp/validator' { onAnyCharacterSet?(start: number, end: number, kind: "any"): void; onEscapeCharacterSet?(start: number, end: number, kind: "digit" | "space" | "word", negate: boolean): void; onUnicodePropertyCharacterSet?(start: number, end: number, kind: "property", key: string, value: string | null, negate: boolean): void; - onCharacter?(start: number, end: number, value: number): void; - onBackreference?(start: number, end: number, ref: number | string): void; - onCharacterClassEnter?(start: number, negate: boolean): void; + onCharacter?(start: number, end: number, value: number): void; + onBackreference?(start: number, end: number, ref: number | string): void; + onCharacterClassEnter?(start: number, negate: boolean): void; onCharacterClassLeave?(start: number, end: number, negate: boolean): void; onCharacterClassRange?(start: number, end: number, min: number, max: number): void; } diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map index 916daee8859991..a99b9814643a21 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map @@ -1 +1 @@ -{"version":3,"file":"AsyncSubject.js","sources":["../../src/internal/AsyncSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C,MAAM,OAAO,YAAgB,SAAQ,OAAU;IAA/C;;QACU,UAAK,GAAM,IAAI,CAAC;QAChB,YAAO,GAAY,KAAK,CAAC;QACzB,iBAAY,GAAY,KAAK,CAAC;IAmCxC,CAAC;IAhCC,UAAU,CAAC,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;CACF"} +{"version":3,"file":"AsyncSubject.js","sources":["../../src/internal/AsyncSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,MAAM,OAAO,YAAgB,SAAQ,OAAU;IAA/C;;QACU,UAAK,GAAM,IAAI,CAAC;QAChB,YAAO,GAAY,KAAK,CAAC;QACzB,iBAAY,GAAY,KAAK,CAAC;IAmCxC,CAAC;IAhCC,UAAU,CAAC,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;CACF"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map index 9e53fd009734ea..d8d3d5ea8a433a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map @@ -1 +1 @@ -{"version":3,"file":"BehaviorSubject.js","sources":["../../src/internal/BehaviorSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAKzE,MAAM,OAAO,eAAmB,SAAQ,OAAU;IAEhD,YAAoB,MAAS;QAC3B,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAG;IAE7B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAGD,UAAU,CAAC,UAAyB;QAClC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;CACF"} +{"version":3,"file":"BehaviorSubject.js","sources":["../../src/internal/BehaviorSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAQzE,MAAM,OAAO,eAAmB,SAAQ,OAAU;IAEhD,YAAoB,MAAS;QAC3B,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAG;IAE7B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAGD,UAAU,CAAC,UAAyB;QAClC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;CACF"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Observable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Observable.js index 792cdfcaedc343..a093a76de44226 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Observable.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Observable.js @@ -1,3 +1,4 @@ +import { canReportError } from './util/canReportError'; import { toSubscriber } from './util/toSubscriber'; import { observable as Symbol_observable } from '../internal/symbol/observable'; import { pipeFromArray } from './util/pipe'; @@ -22,7 +23,7 @@ export class Observable { operator.call(sink, this.source); } else { - sink._addParentTeardownLogic(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? this._subscribe(sink) : this._trySubscribe(sink)); } @@ -45,7 +46,12 @@ export class Observable { sink.syncErrorThrown = true; sink.syncErrorValue = err; } - sink.error(err); + if (canReportError(sink)) { + sink.error(err); + } + else { + console.warn(err); + } } } forEach(next, promiseCtor) { diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Observable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Observable.js.map index d689b61b3bcf6f..d776d5d9c93378 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Observable.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Observable.js.map @@ -1 +1 @@ -{"version":3,"file":"Observable.js","sources":["../../src/internal/Observable.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Observable.js","sources":["../../src/internal/Observable.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map index cb480e79ab10b2..24c5cc36cca45b 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map @@ -1 +1 @@ -{"version":3,"file":"ReplaySubject.js","sources":["../../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"ReplaySubject.js","sources":["../../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subject.js.map index a69abac20c9abd..636791ce32c85f 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subject.js.map @@ -1 +1 @@ -{"version":3,"file":"Subject.js","sources":["../../src/internal/Subject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAKrF,MAAM,OAAO,iBAAqB,SAAQ,UAAa;IACrD,YAAsB,WAAuB;QAC3C,KAAK,CAAC,WAAW,CAAC,CAAC;QADC,gBAAW,GAAX,WAAW,CAAY;IAE7C,CAAC;CACF;AAKD,MAAM,OAAO,OAAW,SAAQ,UAAa;IAgB3C;QACE,KAAK,EAAE,CAAC;QAXV,cAAS,GAAkB,EAAE,CAAC;QAE9B,WAAM,GAAG,KAAK,CAAC;QAEf,cAAS,GAAG,KAAK,CAAC;QAElB,aAAQ,GAAG,KAAK,CAAC;QAEjB,gBAAW,GAAQ,IAAI,CAAC;IAIxB,CAAC;IAhBD,CAAC,kBAAkB,CAAC;QAClB,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAqBD,IAAI,CAAI,QAAwB;QAC9B,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,QAAQ,GAAQ,QAAQ,CAAC;QACjC,OAAY,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,KAAS;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;YAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACrB;SACF;IACH,CAAC;IAED,KAAK,CAAC,GAAQ;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAGD,aAAa,CAAC,UAAyB;QACrC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACxC;IACH,CAAC;IAGD,UAAU,CAAC,UAAyB;QAClC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACzB,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAClD;IACH,CAAC;IAED,YAAY;QACV,MAAM,UAAU,GAAG,IAAI,UAAU,EAAK,CAAC;QACjC,UAAW,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;;AAzFM,cAAM,GAAa,CAAI,WAAwB,EAAE,MAAqB,EAAuB,EAAE;IACpG,OAAO,IAAI,gBAAgB,CAAI,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAAA;AA6FH,MAAM,OAAO,gBAAoB,SAAQ,OAAU;IACjD,YAAsB,WAAyB,EAAE,MAAsB;QACrE,KAAK,EAAE,CAAC;QADY,gBAAW,GAAX,WAAW,CAAc;QAE7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;YACnC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAED,KAAK,CAAC,GAAQ;QACZ,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAED,QAAQ;QACN,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAGD,UAAU,CAAC,UAAyB;QAClC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAI,MAAM,EAAE;YACV,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SAC1C;aAAM;YACL,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;IACH,CAAC;CACF"} +{"version":3,"file":"Subject.js","sources":["../../src/internal/Subject.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscriber.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscriber.js index dd90207b59f999..553001ee25652a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscriber.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscriber.js @@ -22,11 +22,10 @@ export class Subscriber extends Subscription { break; } if (typeof destinationOrNext === 'object') { - if (isTrustedSubscriber(destinationOrNext)) { - const trustedSubscriber = destinationOrNext[rxSubscriberSymbol](); - this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable; - this.destination = trustedSubscriber; - trustedSubscriber._addParentTeardownLogic(this); + if (destinationOrNext instanceof Subscriber) { + this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + this.destination = destinationOrNext; + destinationOrNext.add(this); } else { this.syncErrorThrowable = true; @@ -55,14 +54,12 @@ export class Subscriber extends Subscription { if (!this.isStopped) { this.isStopped = true; this._error(err); - this._unsubscribeParentSubscription(); } } complete() { if (!this.isStopped) { this.isStopped = true; this._complete(); - this._unsubscribeParentSubscription(); } } unsubscribe() { @@ -83,16 +80,6 @@ export class Subscriber extends Subscription { this.destination.complete(); this.unsubscribe(); } - _addParentTeardownLogic(parentTeardownLogic) { - if (parentTeardownLogic !== this) { - this._parentSubscription = this.add(parentTeardownLogic); - } - } - _unsubscribeParentSubscription() { - if (this._parentSubscription !== null) { - this._parentSubscription.unsubscribe(); - } - } _unsubscribeAndRecycle() { const { _parent, _parents } = this; this._parent = null; @@ -236,7 +223,4 @@ export class SafeSubscriber extends Subscriber { _parentSubscriber.unsubscribe(); } } -function isTrustedSubscriber(obj) { - return obj instanceof Subscriber || ('_addParentTeardownLogic' in obj && obj[rxSubscriberSymbol]); -} //# sourceMappingURL=Subscriber.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscriber.js.map index d1a7d751b1ada6..cf438be4405377 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscriber.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscriber.js.map @@ -1 +1 @@ -{"version":3,"file":"Subscriber.js","sources":["../../src/internal/Subscriber.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Subscriber.js","sources":["../../src/internal/Subscriber.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscription.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscription.js.map index abce4e690a367e..c9b7a4f4b8e938 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscription.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/Subscription.js.map @@ -1 +1 @@ -{"version":3,"file":"Subscription.js","sources":["../../src/internal/Subscription.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Subscription.js","sources":["../../src/internal/Subscription.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js index 43341e9828b420..6d74773432ee5f 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js @@ -1,6 +1,7 @@ import { Observable } from '../Observable'; import { AsyncSubject } from '../AsyncSubject'; import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; import { isArray } from '../util/isArray'; import { isScheduler } from '../util/isScheduler'; export function bindCallback(callbackFunc, resultSelector, scheduler) { @@ -33,7 +34,12 @@ export function bindCallback(callbackFunc, resultSelector, scheduler) { callbackFunc.apply(context, [...args, handler]); } catch (err) { - subject.error(err); + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } } } return subject.subscribe(subscriber); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map index fd75b116744dc3..a7b4fa58b6d336 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map @@ -1 +1 @@ -{"version":3,"file":"bindCallback.js","sources":["../../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"bindCallback.js","sources":["../../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js index 64ebcfbd1ccdf7..81ca5a65c21312 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js @@ -1,6 +1,7 @@ import { Observable } from '../Observable'; import { AsyncSubject } from '../AsyncSubject'; import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; import { isScheduler } from '../util/isScheduler'; import { isArray } from '../util/isArray'; export function bindNodeCallback(callbackFunc, resultSelector, scheduler) { @@ -39,7 +40,12 @@ export function bindNodeCallback(callbackFunc, resultSelector, scheduler) { callbackFunc.apply(context, [...args, handler]); } catch (err) { - subject.error(err); + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } } } return subject.subscribe(subscriber); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map index 148aa897fd0921..6382afd22618d3 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map @@ -1 +1 @@ -{"version":3,"file":"bindNodeCallback.js","sources":["../../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"bindNodeCallback.js","sources":["../../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/zip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/zip.js index 5fccb62b2b491e..076ef5bc10e05c 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/zip.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/zip.js @@ -42,6 +42,7 @@ export class ZipSubscriber extends Subscriber { _complete() { const iterators = this.iterators; const len = iterators.length; + this.unsubscribe(); if (len === 0) { this.destination.complete(); return; @@ -50,7 +51,8 @@ export class ZipSubscriber extends Subscriber { for (let i = 0; i < len; i++) { let iterator = iterators[i]; if (iterator.stillUnsubscribed) { - this.add(iterator.subscribe(iterator, i)); + const destination = this.destination; + destination.add(iterator.subscribe(iterator, i)); } else { this.active--; diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/zip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/zip.js.map index 5479b79701c88b..de4bd1377805ff 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/zip.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/observable/zip.js.map @@ -1 +1 @@ -{"version":3,"file":"zip.js","sources":["../../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"zip.js","sources":["../../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delay.js index 7ca72f0e3eb63c..de834ba110c830 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delay.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delay.js @@ -44,7 +44,8 @@ class DelaySubscriber extends Subscriber { } _schedule(scheduler) { this.active = true; - this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + const destination = this.destination; + destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { source: this, destination: this.destination, scheduler: scheduler })); } @@ -66,9 +67,11 @@ class DelaySubscriber extends Subscriber { this.errored = true; this.queue = []; this.destination.error(err); + this.unsubscribe(); } _complete() { this.scheduleNotification(Notification.createComplete()); + this.unsubscribe(); } } class DelayMessage { diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delay.js.map index b7b7aed7d82590..79b0309660501f 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delay.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delay.js.map @@ -1 +1 @@ -{"version":3,"file":"delay.js","sources":["../../../src/internal/operators/delay.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"delay.js","sources":["../../../src/internal/operators/delay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAgD/C,MAAM,UAAU,KAAK,CAAI,KAAkB,EAClB,YAA2B,KAAK;IACvD,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAS,KAAK,CAAC,CAAC;IACtF,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,aAAa;IACjB,YAAoB,KAAa,EACb,SAAwB;QADxB,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAaD,MAAM,eAAmB,SAAQ,UAAa;IAwB5C,YAAY,WAA0B,EAClB,KAAa,EACb,SAAwB;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAe;QAzBpC,UAAK,GAA2B,EAAE,CAAC;QACnC,WAAM,GAAY,KAAK,CAAC;QACxB,YAAO,GAAY,KAAK,CAAC;IAyBjC,CAAC;IAvBO,MAAM,CAAC,QAAQ,CAA0C,KAAoB;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAEtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;YACjE,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACjD;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;IACH,CAAC;IAQO,SAAS,CAAC,SAAwB;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAgB,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE;YACtF,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS;SAClE,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,oBAAoB,CAAC,YAA6B;QACxD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;YACzB,OAAO;SACR;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAC3B;IACH,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF;AAED,MAAM,YAAY;IAChB,YAA4B,IAAY,EACZ,YAA6B;QAD7B,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAiB;IACzD,CAAC;CACF"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js index ccb2ca40abfff5..3b8d6c00e34292 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js @@ -55,6 +55,7 @@ class DelayWhenSubscriber extends OuterSubscriber { _complete() { this.completed = true; this.tryComplete(); + this.unsubscribe(); } removeSubscription(subscription) { subscription.unsubscribe(); @@ -67,7 +68,8 @@ class DelayWhenSubscriber extends OuterSubscriber { tryDelay(delayNotifier, value) { const notifierSubscription = subscribeToResult(this, delayNotifier, value); if (notifierSubscription && !notifierSubscription.closed) { - this.add(notifierSubscription); + const destination = this.destination; + destination.add(notifierSubscription); this.delayNotifierSubscriptions.push(notifierSubscription); } } @@ -102,6 +104,7 @@ class SubscriptionDelaySubscriber extends Subscriber { this.parent.error(err); } _complete() { + this.unsubscribe(); this.subscribeToSource(); } subscribeToSource() { diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map index 63cb999040f5db..b3074082687db7 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map @@ -1 +1 @@ -{"version":3,"file":"delayWhen.js","sources":["../../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"delayWhen.js","sources":["../../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js index 027438bebb1489..c856afb19d994c 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js @@ -45,7 +45,8 @@ class ExhaustMapSubscriber extends OuterSubscriber { } _innerSub(result, value, index) { const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, result, value, index, innerSubscriber); } _complete() { @@ -53,6 +54,7 @@ class ExhaustMapSubscriber extends OuterSubscriber { if (!this.hasSubscription) { this.destination.complete(); } + this.unsubscribe(); } notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.destination.next(innerValue); @@ -61,7 +63,8 @@ class ExhaustMapSubscriber extends OuterSubscriber { this.destination.error(err); } notifyComplete(innerSub) { - this.remove(innerSub); + const destination = this.destination; + destination.remove(innerSub); this.hasSubscription = false; if (this.hasCompleted) { this.destination.complete(); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map index 9c38ad702be3f4..ae41c99720fda9 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map @@ -1 +1 @@ -{"version":3,"file":"exhaustMap.js","sources":["../../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"exhaustMap.js","sources":["../../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/expand.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/expand.js index 4f0cd86f6dd54b..69512a534dd559 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/expand.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/expand.js @@ -51,7 +51,8 @@ export class ExpandSubscriber extends OuterSubscriber { } else { const state = { subscriber: this, result, value, index }; - this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + const destination = this.destination; + destination.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); } } else { @@ -60,20 +61,23 @@ export class ExpandSubscriber extends OuterSubscriber { } subscribeToProjection(result, value, index) { this.active++; - this.add(subscribeToResult(this, result, value, index)); + const destination = this.destination; + destination.add(subscribeToResult(this, result, value, index)); } _complete() { this.hasCompleted = true; if (this.hasCompleted && this.active === 0) { this.destination.complete(); } + this.unsubscribe(); } notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { this._next(innerValue); } notifyComplete(innerSub) { const buffer = this.buffer; - this.remove(innerSub); + const destination = this.destination; + destination.remove(innerSub); this.active--; if (buffer && buffer.length > 0) { this._next(buffer.shift()); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/expand.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/expand.js.map index 0e06e842eadb6a..7b62c906d63b2f 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/expand.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/expand.js.map @@ -1 +1 @@ -{"version":3,"file":"expand.js","sources":["../../../src/internal/operators/expand.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"expand.js","sources":["../../../src/internal/operators/expand.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js index fe6fa5db534bd7..7d47338367fcae 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js @@ -54,7 +54,8 @@ export class MergeMapSubscriber extends OuterSubscriber { } _innerSub(ish, value, index) { const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, ish, value, index, innerSubscriber); } _complete() { @@ -62,6 +63,7 @@ export class MergeMapSubscriber extends OuterSubscriber { if (this.active === 0 && this.buffer.length === 0) { this.destination.complete(); } + this.unsubscribe(); } notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.destination.next(innerValue); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map index 6f67d22b85ec3d..d5e225396783f6 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map @@ -1 +1 @@ -{"version":3,"file":"mergeMap.js","sources":["../../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AA+D1C,MAAM,UAAU,QAAQ,CACtB,OAAwD,EACxD,cAAuG,EACvG,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QAExC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3C,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5C,EAAE,UAAU,CAAC,CACf,CAAC;KACH;SAAM,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QAC7C,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,OAAO,gBAAgB;IAC3B,YAAoB,OAAwD,EACxD,aAAqB,MAAM,CAAC,iBAAiB;QAD7C,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAmC;IACjE,CAAC;IAED,IAAI,CAAC,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CACxC,CAAC,CAAC;IACL,CAAC;CACF;AAOD,MAAM,OAAO,kBAAyB,SAAQ,eAAqB;IAMjE,YAAY,WAA0B,EAClB,OAAwD,EACxD,aAAqB,MAAM,CAAC,iBAAiB;QAC/D,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAmC;QAPzD,iBAAY,GAAY,KAAK,CAAC;QAC9B,WAAM,GAAQ,EAAE,CAAC;QACjB,WAAM,GAAW,CAAC,CAAC;QACjB,UAAK,GAAW,CAAC,CAAC;IAM5B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAES,QAAQ,CAAC,KAAQ;QACzB,IAAI,MAA0B,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,SAAS,CAAC,GAAuB,EAAE,KAAQ,EAAE,KAAa;QAChE,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,iBAAiB,CAAO,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,QAAsB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;CACF"} +{"version":3,"file":"mergeMap.js","sources":["../../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js index 8a83a3525d31fb..1fc27ea02d33ee 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js @@ -47,7 +47,8 @@ export class MergeScanSubscriber extends OuterSubscriber { } _innerSub(ish, value, index) { const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, ish, value, index, innerSubscriber); } _complete() { @@ -58,6 +59,7 @@ export class MergeScanSubscriber extends OuterSubscriber { } this.destination.complete(); } + this.unsubscribe(); } notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { const { destination } = this; @@ -67,7 +69,8 @@ export class MergeScanSubscriber extends OuterSubscriber { } notifyComplete(innerSub) { const buffer = this.buffer; - this.remove(innerSub); + const destination = this.destination; + destination.remove(innerSub); this.active--; if (buffer.length > 0) { this._next(buffer.shift()); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map index a3a7164e65b405..281ee151b7a40a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map @@ -1 +1 @@ -{"version":3,"file":"mergeScan.js","sources":["../../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"mergeScan.js","sources":["../../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/observeOn.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/observeOn.js index ddc5f549f61cfd..1efe6d4903c2fe 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/observeOn.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/observeOn.js @@ -26,16 +26,19 @@ export class ObserveOnSubscriber extends Subscriber { this.unsubscribe(); } scheduleMessage(notification) { - this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + const destination = this.destination; + destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); } _next(value) { this.scheduleMessage(Notification.createNext(value)); } _error(err) { this.scheduleMessage(Notification.createError(err)); + this.unsubscribe(); } _complete() { this.scheduleMessage(Notification.createComplete()); + this.unsubscribe(); } } export class ObserveOnMessage { diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map index 0ca956a36a0254..8b96d7372a53a6 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map @@ -1 +1 @@ -{"version":3,"file":"observeOn.js","sources":["../../../src/internal/operators/observeOn.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAoD/C,MAAM,UAAU,SAAS,CAAI,SAAwB,EAAE,QAAgB,CAAC;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,SAAwB,EAAU,QAAgB,CAAC;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;CACF;AAOD,MAAM,OAAO,mBAAuB,SAAQ,UAAa;IAQvD,YAAY,WAA0B,EAClB,SAAwB,EACxB,QAAgB,CAAC;QACnC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAY;IAErC,CAAC;IAVD,MAAM,CAAC,QAAQ,CAA0C,GAAqB;QAC5E,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,eAAe,CAAC,YAA+B;QACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC9B,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAC3B,YAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;CACF"} +{"version":3,"file":"observeOn.js","sources":["../../../src/internal/operators/observeOn.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAoD/C,MAAM,UAAU,SAAS,CAAI,SAAwB,EAAE,QAAgB,CAAC;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,SAAwB,EAAU,QAAgB,CAAC;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;CACF;AAOD,MAAM,OAAO,mBAAuB,SAAQ,UAAa;IAQvD,YAAY,WAA0B,EAClB,SAAwB,EACxB,QAAgB,CAAC;QACnC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAY;IAErC,CAAC;IAVD,MAAM,CAAC,QAAQ,CAA0C,GAAqB;QAC5E,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,eAAe,CAAC,YAA+B;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrC,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAC3B,YAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;CACF"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js index ff940e1591183f..918b206e76cc3e 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js @@ -39,15 +39,18 @@ class OnErrorResumeNextSubscriber extends OuterSubscriber { } _error(err) { this.subscribeToNextSource(); + this.unsubscribe(); } _complete() { this.subscribeToNextSource(); + this.unsubscribe(); } subscribeToNextSource() { const next = this.nextSources.shift(); if (next) { const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, next, undefined, undefined, innerSubscriber); } else { diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map index 2dff64c46bac30..b8a2e649706365 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map @@ -1 +1 @@ -{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA+E9D,MAAM,UAAU,iBAAiB,CAAO,GAAG,WAE2C;IACpF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AAClG,CAAC;AAaD,MAAM,UAAU,uBAAuB,CAAO,GAAG,WAE4C;IAC3F,IAAI,MAAM,GAAyB,IAAI,CAAC;IAExC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAgC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC3D;IACD,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;IAE7B,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,yBAAyB;IAC7B,YAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAC5D,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;CACF;AAED,MAAM,2BAAkC,SAAQ,eAAqB;IACnE,YAAsB,WAA0B,EAC5B,WAAwC;QAC1D,KAAK,CAAC,WAAW,CAAC,CAAC;QAFC,gBAAW,GAAX,WAAW,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAA6B;IAE5D,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,QAAiC;QAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,qBAAqB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,IAAI,EAAE;YACR,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;SACtE;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;CACF"} +{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAI1C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA+E9D,MAAM,UAAU,iBAAiB,CAAO,GAAG,WAE2C;IACpF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AAClG,CAAC;AAaD,MAAM,UAAU,uBAAuB,CAAO,GAAG,WAE4C;IAC3F,IAAI,MAAM,GAAyB,IAAI,CAAC;IAExC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAgC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC3D;IACD,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;IAE7B,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,yBAAyB;IAC7B,YAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAC5D,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;CACF;AAED,MAAM,2BAAkC,SAAQ,eAAqB;IACnE,YAAsB,WAA0B,EAC5B,WAAwC;QAC1D,KAAK,CAAC,WAAW,CAAC,CAAC;QAFC,gBAAW,GAAX,WAAW,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAA6B;IAE5D,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,QAAiC;QAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,qBAAqB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,IAAI,EAAE;YACR,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,MAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;YACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACjC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;SACtE;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;CACF"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/reduce.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/reduce.js index 094f9040b8369e..ca1298721e2c36 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/reduce.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/reduce.js @@ -9,9 +9,7 @@ export function reduce(accumulator, seed) { }; } return function reduceOperatorFunction(source) { - return pipe(scan((acc, value, index) => { - return accumulator(acc, value, index + 1); - }), takeLast(1))(source); + return pipe(scan((acc, value, index) => accumulator(acc, value, index + 1)), takeLast(1))(source); }; } //# sourceMappingURL=reduce.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map index 7b0526a2182990..78f556057ec4ee 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map @@ -1 +1 @@ -{"version":3,"file":"reduce.js","sources":["../../../src/internal/operators/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAwDpC,MAAM,UAAU,MAAM,CAAO,WAAoD,EAAE,IAAQ;IAMzF,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/C,OAAO,WAAW,CAAI,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAkB,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC"} +{"version":3,"file":"reduce.js","sources":["../../../src/internal/operators/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAwDpC,MAAM,UAAU,MAAM,CAAO,WAAoD,EAAE,IAAQ;IAMzF,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,IAAI,CACT,IAAI,CAAC,CAAC,GAAM,EAAE,KAAQ,EAAE,KAAa,EAAK,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAChF,QAAQ,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js index 4a6f89e03d93e2..f8a176d2b26f44 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js @@ -21,7 +21,7 @@ export class SequenceEqualSubscriber extends Subscriber { this._a = []; this._b = []; this._oneComplete = false; - this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this))); + this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this))); } _next(value) { if (this._oneComplete && this._b.length === 0) { @@ -39,6 +39,7 @@ export class SequenceEqualSubscriber extends Subscriber { else { this._oneComplete = true; } + this.unsubscribe(); } checkValues() { const { _a, _b, comparor } = this; @@ -74,6 +75,14 @@ export class SequenceEqualSubscriber extends Subscriber { this.checkValues(); } } + completeB() { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + } } class SequenceEqualCompareToSubscriber extends Subscriber { constructor(destination, parent) { @@ -85,9 +94,11 @@ class SequenceEqualCompareToSubscriber extends Subscriber { } _error(err) { this.parent.error(err); + this.unsubscribe(); } _complete() { - this.parent._complete(); + this.parent.completeB(); + this.unsubscribe(); } } //# sourceMappingURL=sequenceEqual.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map index 6db41f65d3e4c5..6faf233fcd156d 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map @@ -1 +1 @@ -{"version":3,"file":"sequenceEqual.js","sources":["../../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"sequenceEqual.js","sources":["../../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js index f5b276f6191472..b9cd0092f6c869 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js @@ -1,5 +1,5 @@ import { ReplaySubject } from '../ReplaySubject'; -export function shareReplay(bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.MAX_VALUE, scheduler) { +export function shareReplay(bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, scheduler) { return (source) => source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); } function shareReplayOperator(bufferSize, windowTime, scheduler) { diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map index fd6564b8f43278..5ce638f656c23a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map @@ -1 +1 @@ -{"version":3,"file":"shareReplay.js","sources":["../../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA+CjD,MAAM,UAAU,WAAW,CACzB,aAAqB,MAAM,CAAC,iBAAiB,EAC7C,aAAqB,MAAM,CAAC,SAAS,EACrC,SAAyB;IAEzB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,SAAS,mBAAmB,CAAI,UAAmB,EAAE,UAAmB,EAAE,SAAyB;IACjG,IAAI,OAAyB,CAAC;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAA0B,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,CAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,QAAQ,KAAK,CAAC,IAAI,UAAU,EAAE;gBAChD,YAAY,CAAC,WAAW,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"} +{"version":3,"file":"shareReplay.js","sources":["../../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA+CjD,MAAM,UAAU,WAAW,CACzB,aAAqB,MAAM,CAAC,iBAAiB,EAC7C,aAAqB,MAAM,CAAC,iBAAiB,EAC7C,SAAyB;IAEzB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,SAAS,mBAAmB,CAAI,UAAmB,EAAE,UAAmB,EAAE,SAAyB;IACjG,IAAI,OAAyB,CAAC;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAA0B,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,CAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE;YACV,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,QAAQ,KAAK,CAAC,IAAI,UAAU,EAAE;gBAChD,YAAY,CAAC,WAAW,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/switchMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/switchMap.js index 253e914048d553..0c42dc95c36792 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/switchMap.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/switchMap.js @@ -41,7 +41,8 @@ class SwitchMapSubscriber extends OuterSubscriber { innerSubscription.unsubscribe(); } const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination; + destination.add(innerSubscriber); this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber); } _complete() { @@ -49,12 +50,14 @@ class SwitchMapSubscriber extends OuterSubscriber { if (!innerSubscription || innerSubscription.closed) { super._complete(); } + this.unsubscribe(); } _unsubscribe() { this.innerSubscription = null; } notifyComplete(innerSub) { - this.remove(innerSub); + const destination = this.destination; + destination.remove(innerSub); this.innerSubscription = null; if (this.isStopped) { super._complete(); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map index 49cd3a61226856..55e98c69432b73 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map @@ -1 +1 @@ -{"version":3,"file":"switchMap.js","sources":["../../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"switchMap.js","sources":["../../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAoD1C,MAAM,UAAU,SAAS,CACvB,OAAwD,EACxD,cAA4F;IAE5F,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5C,CAAC,CACH,CAAC;KACH;IACD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAoB,OAAwD;QAAxD,YAAO,GAAP,OAAO,CAAiD;IAC5E,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF;AAOD,MAAM,mBAA0B,SAAQ,eAAqB;IAI3D,YAAY,WAA0B,EAClB,OAAwD;QAC1E,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,YAAO,GAAP,OAAO,CAAiD;QAJpE,UAAK,GAAW,CAAC,CAAC;IAM1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,MAA0B,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO;SACR;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,SAAS,CAAC,MAA0B,EAAE,KAAQ,EAAE,KAAa;QACnE,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACjC;QACD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAC1F,CAAC;IAES,SAAS;QACjB,MAAM,EAAC,iBAAiB,EAAC,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;YAClD,KAAK,CAAC,SAAS,EAAE,CAAC;SACnB;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,QAAsB;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,KAAK,CAAC,SAAS,EAAE,CAAC;SACnB;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;CACF"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map index da36d4b0d9134f..377d1cb97c19fb 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map @@ -1 +1 @@ -{"version":3,"file":"takeWhile.js","sources":["../../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA0C3C,MAAM,UAAU,SAAS,CAAI,SAA+C;IAC1E,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF;AAOD,MAAM,mBAAuB,SAAQ,UAAa;IAGhD,YAAY,WAA0B,EAClB,SAA+C;QACjE,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,cAAS,GAAT,SAAS,CAAsC;QAH3D,UAAK,GAAW,CAAC,CAAC;IAK1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,cAAc,CAAC,KAAQ,EAAE,eAAwB;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;CACF"} +{"version":3,"file":"takeWhile.js","sources":["../../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA6C3C,MAAM,UAAU,SAAS,CAAI,SAA+C;IAC1E,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF;AAOD,MAAM,mBAAuB,SAAQ,UAAa;IAGhD,YAAY,WAA0B,EAClB,SAA+C;QACjE,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,cAAS,GAAT,SAAS,CAAsC;QAH3D,UAAK,GAAW,CAAC,CAAC;IAK1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,cAAc,CAAC,KAAQ,EAAE,eAAwB;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;CACF"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js index c7f51b4af5252e..9d4ddb31cd85ad 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js @@ -1,5 +1,5 @@ -export const rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') - ? Symbol.for('rxSubscriber') - : '@@rxSubscriber'; +export const rxSubscriber = typeof Symbol === 'function' + ? Symbol('rxSubscriber') + : '@@rxSubscriber_' + Math.random(); export const $$rxSubscriber = rxSubscriber; //# sourceMappingURL=rxSubscriber.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map index 05ea73f5b20b33..596adb01b13b81 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map @@ -1 +1 @@ -{"version":3,"file":"rxSubscriber.js","sources":["../../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GACvB,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC;IAChE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IAC5B,CAAC,CAAC,gBAAgB,CAAC;AAKvB,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC"} +{"version":3,"file":"rxSubscriber.js","sources":["../../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,YAAY,GACvB,OAAO,MAAM,KAAK,UAAU;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IACxB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAKxC,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/canReportError.js b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/canReportError.js new file mode 100644 index 00000000000000..08819b51cbf3a7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/canReportError.js @@ -0,0 +1,17 @@ +import { Subscriber } from '../Subscriber'; +export function canReportError(observer) { + while (observer) { + const { closed, destination, isStopped } = observer; + if (closed || isStopped) { + return false; + } + else if (destination && destination instanceof Subscriber) { + observer = destination; + } + else { + observer = null; + } + } + return true; +} +//# sourceMappingURL=canReportError.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map new file mode 100644 index 00000000000000..bed1e3b399501a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"canReportError.js","sources":["../../../src/internal/util/canReportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,MAAM,UAAU,cAAc,CAAC,QAAwC;IACrE,OAAO,QAAQ,EAAE;QACf,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,QAAe,CAAC;QAC3D,IAAI,MAAM,IAAI,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,WAAW,IAAI,WAAW,YAAY,UAAU,EAAE;YAC3D,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/pipe.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/pipe.js.map index 27fd90f28535d1..f82b8e1b78bddd 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/pipe.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm2015/internal/util/pipe.js.map @@ -1 +1 @@ -{"version":3,"file":"pipe.js","sources":["../../../src/internal/util/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAgB9B,MAAM,UAAU,IAAI,CAAO,GAAG,GAA+B;IAC3D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAGD,MAAM,UAAU,aAAa,CAAO,GAA+B;IACjE,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAA+B,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAuB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC"} +{"version":3,"file":"pipe.js","sources":["../../../src/internal/util/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiB9B,MAAM,UAAU,IAAI,CAAC,GAAG,GAAmC;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAGD,MAAM,UAAU,aAAa,CAAO,GAA+B;IACjE,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAA+B,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAuB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map index 95ef618ac7eaa4..cdf243af00d15e 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map @@ -1 +1 @@ -{"version":3,"file":"AsyncSubject.js","sources":["../../src/internal/AsyncSubject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C;IAAqC,wCAAU;IAA/C;QAAA,qEAsCC;QArCS,WAAK,GAAM,IAAI,CAAC;QAChB,aAAO,GAAY,KAAK,CAAC;QACzB,kBAAY,GAAY,KAAK,CAAC;;IAmCxC,CAAC;IAhCC,iCAAU,GAAV,UAAW,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,4BAAK,GAAL,UAAM,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,iBAAM,IAAI,YAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtCD,CAAqC,OAAO,GAsC3C"} +{"version":3,"file":"AsyncSubject.js","sources":["../../src/internal/AsyncSubject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C;IAAqC,wCAAU;IAA/C;QAAA,qEAsCC;QArCS,WAAK,GAAM,IAAI,CAAC;QAChB,aAAO,GAAY,KAAK,CAAC;QACzB,kBAAY,GAAY,KAAK,CAAC;;IAmCxC,CAAC;IAhCC,iCAAU,GAAV,UAAW,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,4BAAK,GAAL,UAAM,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,iBAAM,IAAI,YAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtCD,CAAqC,OAAO,GAsC3C"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map index aaf3f55863942e..cc33132b9c7850 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map @@ -1 +1 @@ -{"version":3,"file":"BehaviorSubject.js","sources":["../../src/internal/BehaviorSubject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAKzE;IAAwC,2CAAU;IAEhD,yBAAoB,MAAS;QAA7B,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAG;;IAE7B,CAAC;IAED,sBAAI,kCAAK;aAAT;YACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;;;OAAA;IAGD,oCAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,YAAY,GAAG,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,8BAAI,GAAJ,UAAK,KAAQ;QACX,iBAAM,IAAI,YAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IACH,sBAAC;AAAD,CAAC,AAhCD,CAAwC,OAAO,GAgC9C"} +{"version":3,"file":"BehaviorSubject.js","sources":["../../src/internal/BehaviorSubject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAQzE;IAAwC,2CAAU;IAEhD,yBAAoB,MAAS;QAA7B,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAG;;IAE7B,CAAC;IAED,sBAAI,kCAAK;aAAT;YACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;;;OAAA;IAGD,oCAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,YAAY,GAAG,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,8BAAI,GAAJ,UAAK,KAAQ;QACX,iBAAM,IAAI,YAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IACH,sBAAC;AAAD,CAAC,AAhCD,CAAwC,OAAO,GAgC9C"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Observable.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Observable.js index 082b794ad32156..55b8144637e73e 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Observable.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Observable.js @@ -1,4 +1,5 @@ -/** PURE_IMPORTS_START _util_toSubscriber,_internal_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */ +/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_internal_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */ +import { canReportError } from './util/canReportError'; import { toSubscriber } from './util/toSubscriber'; import { observable as Symbol_observable } from '../internal/symbol/observable'; import { pipeFromArray } from './util/pipe'; @@ -23,7 +24,7 @@ var Observable = /*@__PURE__*/ (function () { operator.call(sink, this.source); } else { - sink._addParentTeardownLogic(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? this._subscribe(sink) : this._trySubscribe(sink)); } @@ -46,7 +47,12 @@ var Observable = /*@__PURE__*/ (function () { sink.syncErrorThrown = true; sink.syncErrorValue = err; } - sink.error(err); + if (canReportError(sink)) { + sink.error(err); + } + else { + console.warn(err); + } } }; Observable.prototype.forEach = function (next, promiseCtor) { diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Observable.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Observable.js.map index 7f9fbb3ce47787..43d3e8f25737da 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Observable.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Observable.js.map @@ -1 +1 @@ -{"version":3,"file":"Observable.js","sources":["../../src/internal/Observable.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Observable.js","sources":["../../src/internal/Observable.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map index 8edf1ed71ae276..a881321b517b07 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map @@ -1 +1 @@ -{"version":3,"file":"ReplaySubject.js","sources":["../../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"ReplaySubject.js","sources":["../../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subject.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subject.js.map index e87d6ed1dc0bc9..93b0d524166814 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subject.js.map @@ -1 +1 @@ -{"version":3,"file":"Subject.js","sources":["../../src/internal/Subject.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Subject.js","sources":["../../src/internal/Subject.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAKrF;IAA0C,6CAAa;IACrD,2BAAsB,WAAuB;QAA7C,YACE,kBAAM,WAAW,CAAC,SACnB;QAFqB,iBAAW,GAAX,WAAW,CAAY;;IAE7C,CAAC;IACH,wBAAC;AAAD,CAAC,AAJD,CAA0C,UAAU,GAInD;;AAWD;IAAgC,mCAAa;IAgB3C;QAAA,YACE,iBAAO,SACR;QAZD,eAAS,GAAkB,EAAE,CAAC;QAE9B,YAAM,GAAG,KAAK,CAAC;QAEf,eAAS,GAAG,KAAK,CAAC;QAElB,cAAQ,GAAG,KAAK,CAAC;QAEjB,iBAAW,GAAQ,IAAI,CAAC;;IAIxB,CAAC;IAhBD,kBAAC,kBAAkB,CAAC,GAApB;QACE,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAqBD,sBAAI,GAAJ,UAAQ,QAAwB;QAC9B,IAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,QAAQ,GAAQ,QAAQ,CAAC;QACjC,OAAY,OAAO,CAAC;IACtB,CAAC;IAED,sBAAI,GAAJ,UAAK,KAAS;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACX,IAAA,0BAAS,CAAU;YAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;YAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACrB;SACF;IACH,CAAC;IAED,uBAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACd,IAAA,0BAAS,CAAU;QAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,0BAAQ,GAAR;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACd,IAAA,0BAAS,CAAU;QAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,6BAAW,GAAX;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAGD,+BAAa,GAAb,UAAc,UAAyB;QACrC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,iBAAM,aAAa,YAAC,UAAU,CAAC,CAAC;SACxC;IACH,CAAC;IAGD,4BAAU,GAAV,UAAW,UAAyB;QAClC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACzB,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAClD;IACH,CAAC;IAQD,8BAAY,GAAZ;QACE,IAAM,UAAU,GAAG,IAAI,UAAU,EAAK,CAAC;QACjC,UAAW,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;IA/FM,cAAM,GAAa,UAAI,WAAwB,EAAE,MAAqB;QAC3E,OAAO,IAAI,gBAAgB,CAAI,WAAW,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC,CAAA;IA8FH,cAAC;CAAA,AArHD,CAAgC,UAAU,GAqHzC;SArHY,OAAO;AA0HpB;IAAyC,4CAAU;IACjD,0BAAsB,WAAyB,EAAE,MAAsB;QAAvE,YACE,iBAAO,SAER;QAHqB,iBAAW,GAAX,WAAW,CAAc;QAE7C,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;;IACvB,CAAC;IAED,+BAAI,GAAJ,UAAK,KAAQ;QACH,IAAA,8BAAW,CAAU;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;YACnC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAED,gCAAK,GAAL,UAAM,GAAQ;QACJ,IAAA,8BAAW,CAAU;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAED,mCAAQ,GAAR;QACU,IAAA,8BAAW,CAAU;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAGD,qCAAU,GAAV,UAAW,UAAyB;QAC1B,IAAA,oBAAM,CAAU;QACxB,IAAI,MAAM,EAAE;YACV,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SAC1C;aAAM;YACL,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AApCD,CAAyC,OAAO,GAoC/C"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscriber.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscriber.js index 03220f852afea1..f2329462407e37 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscriber.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscriber.js @@ -25,11 +25,10 @@ var Subscriber = /*@__PURE__*/ (function (_super) { break; } if (typeof destinationOrNext === 'object') { - if (isTrustedSubscriber(destinationOrNext)) { - var trustedSubscriber = destinationOrNext[rxSubscriberSymbol](); - _this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable; - _this.destination = trustedSubscriber; - trustedSubscriber._addParentTeardownLogic(_this); + if (destinationOrNext instanceof Subscriber) { + _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + _this.destination = destinationOrNext; + destinationOrNext.add(_this); } else { _this.syncErrorThrowable = true; @@ -59,14 +58,12 @@ var Subscriber = /*@__PURE__*/ (function (_super) { if (!this.isStopped) { this.isStopped = true; this._error(err); - this._unsubscribeParentSubscription(); } }; Subscriber.prototype.complete = function () { if (!this.isStopped) { this.isStopped = true; this._complete(); - this._unsubscribeParentSubscription(); } }; Subscriber.prototype.unsubscribe = function () { @@ -87,16 +84,6 @@ var Subscriber = /*@__PURE__*/ (function (_super) { this.destination.complete(); this.unsubscribe(); }; - Subscriber.prototype._addParentTeardownLogic = function (parentTeardownLogic) { - if (parentTeardownLogic !== this) { - this._parentSubscription = this.add(parentTeardownLogic); - } - }; - Subscriber.prototype._unsubscribeParentSubscription = function () { - if (this._parentSubscription !== null) { - this._parentSubscription.unsubscribe(); - } - }; Subscriber.prototype._unsubscribeAndRecycle = function () { var _a = this, _parent = _a._parent, _parents = _a._parents; this._parent = null; @@ -247,7 +234,4 @@ var SafeSubscriber = /*@__PURE__*/ (function (_super) { return SafeSubscriber; }(Subscriber)); export { SafeSubscriber }; -function isTrustedSubscriber(obj) { - return obj instanceof Subscriber || ('_addParentTeardownLogic' in obj && obj[rxSubscriberSymbol]); -} //# sourceMappingURL=Subscriber.js.map diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscriber.js.map index e9af58c6414974..d9894ca983d58b 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscriber.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscriber.js.map @@ -1 +1 @@ -{"version":3,"file":"Subscriber.js","sources":["../../src/internal/Subscriber.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Subscriber.js","sources":["../../src/internal/Subscriber.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js.map index 3a1f7ed3acb2c9..898eb019992154 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/Subscription.js.map @@ -1 +1 @@ -{"version":3,"file":"Subscription.js","sources":["../../src/internal/Subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAejE;IAwBE,sBAAY,WAAwB;QAb7B,WAAM,GAAY,KAAK,CAAC;QAGrB,YAAO,GAAiB,IAAI,CAAC;QAE7B,aAAQ,GAAmB,IAAI,CAAC;QAElC,mBAAc,GAAuB,IAAI,CAAC;QAOhD,IAAI,WAAW,EAAE;YACR,IAAK,CAAC,YAAY,GAAG,WAAW,CAAC;SAEzC;IACH,CAAC;IAQD,kCAAW,GAAX;QACE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,MAAa,CAAC;QAElB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAEG,IAAA,SAAkE,EAAhE,oBAAO,EAAE,sBAAQ,EAAE,8BAAY,EAAE,kCAAc,CAAkB;QAEvE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAGrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAIzC,OAAO,OAAO,EAAE;YACd,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAGrB,OAAO,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;SACpD;QAED,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE;YAC5B,IAAI,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,KAAK,WAAW,EAAE;gBACzB,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,GAAG,MAAM,IAAI,CACjB,WAAW,CAAC,CAAC,YAAY,mBAAmB,CAAC,CAAC;oBAC5C,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CACtE,CAAC;aACH;SACF;QAED,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAE3B,KAAK,GAAG,CAAC,CAAC,CAAC;YACX,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC;YAE5B,OAAO,EAAE,KAAK,GAAG,GAAG,EAAE;gBACpB,IAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACjB,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChD,IAAI,KAAK,KAAK,WAAW,EAAE;wBACzB,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;wBACtB,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;wBACxB,IAAI,GAAG,YAAY,mBAAmB,EAAE;4BACtC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;yBACjE;6BAAM;4BACL,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBAClB;qBACF;iBACF;aACF;SACF;QAED,IAAI,SAAS,EAAE;YACb,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;SACvC;IACH,CAAC;IAoBD,0BAAG,GAAH,UAAI,QAAuB;QACzB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE;YAClD,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QAED,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,YAAY,GAAmB,QAAS,CAAC;QAE7C,QAAQ,OAAO,QAAQ,EAAE;YACvB,KAAK,UAAU;gBACb,YAAY,GAAG,IAAI,YAAY,CAAiB,QAAQ,CAAC,CAAC;YAC5D,KAAK,QAAQ;gBACX,IAAI,YAAY,CAAC,MAAM,IAAI,OAAO,YAAY,CAAC,WAAW,KAAK,UAAU,EAAE;oBACzE,OAAO,YAAY,CAAC;iBACrB;qBAAM,IAAI,IAAI,CAAC,MAAM,EAAE;oBACtB,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,OAAO,YAAY,CAAC;iBACrB;qBAAM,IAAI,OAAO,YAAY,CAAC,UAAU,KAAK,UAAU,EAAoB;oBAC1E,IAAM,GAAG,GAAG,YAAY,CAAC;oBACzB,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;oBAClC,YAAY,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;iBACrC;gBACD,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,QAAQ,GAAG,yBAAyB,CAAC,CAAC;SACpF;QAED,IAAM,aAAa,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;QAExE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE9B,OAAO,YAAY,CAAC;IACtB,CAAC;IAQD,6BAAM,GAAN,UAAO,YAA0B;QAC/B,IAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,aAAa,EAAE;YACjB,IAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9D,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;gBAC5B,aAAa,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;aAC5C;SACF;IACH,CAAC;IAGO,iCAAU,GAAlB,UAAmB,MAAoB;QACjC,IAAA,SAA4B,EAA1B,oBAAO,EAAE,sBAAQ,CAAU;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE;YAGlC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACvB;aAAM,IAAI,CAAC,QAAQ,EAAE;YAGpB,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC;SAC1B;aAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YAE1C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;IACH,CAAC;IA9La,kBAAK,GAAiB,CAAC,UAAS,KAAU;QACtD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC;IA4LzB,mBAAC;CAAA,AAjMD,IAiMC;SAjMY,YAAY;AAmMzB,SAAS,2BAA2B,CAAC,MAAa;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,GAAG,IAAK,OAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAApE,CAAoE,EAAE,EAAE,CAAC,CAAC;AAC/G,CAAC"} +{"version":3,"file":"Subscription.js","sources":["../../src/internal/Subscription.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindCallback.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindCallback.js index 86d2b58001db3f..ee5e68a67f92dc 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindCallback.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindCallback.js @@ -1,7 +1,8 @@ -/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_isArray,_util_isScheduler PURE_IMPORTS_END */ +/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */ import { Observable } from '../Observable'; import { AsyncSubject } from '../AsyncSubject'; import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; import { isArray } from '../util/isArray'; import { isScheduler } from '../util/isScheduler'; export function bindCallback(callbackFunc, resultSelector, scheduler) { @@ -48,7 +49,12 @@ export function bindCallback(callbackFunc, resultSelector, scheduler) { callbackFunc.apply(context, args.concat([handler])); } catch (err) { - subject.error(err); + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } } } return subject.subscribe(subscriber); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map index 5ca83332cb1a4a..e8b1bb16eeb433 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map @@ -1 +1 @@ -{"version":3,"file":"bindCallback.js","sources":["../../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"bindCallback.js","sources":["../../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js index 26f18fa8f91ed3..5d8c4caafd1ae4 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js @@ -1,7 +1,8 @@ -/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_isScheduler,_util_isArray PURE_IMPORTS_END */ +/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */ import { Observable } from '../Observable'; import { AsyncSubject } from '../AsyncSubject'; import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; import { isScheduler } from '../util/isScheduler'; import { isArray } from '../util/isArray'; export function bindNodeCallback(callbackFunc, resultSelector, scheduler) { @@ -54,7 +55,12 @@ export function bindNodeCallback(callbackFunc, resultSelector, scheduler) { callbackFunc.apply(context, args.concat([handler])); } catch (err) { - subject.error(err); + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } } } return subject.subscribe(subscriber); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map index b4e678c95ad2da..ffa674ca14af79 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map @@ -1 +1 @@ -{"version":3,"file":"bindNodeCallback.js","sources":["../../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"bindNodeCallback.js","sources":["../../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/zip.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/zip.js index 62238403d9eb15..e15b32051f9c7b 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/zip.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/zip.js @@ -55,6 +55,7 @@ var ZipSubscriber = /*@__PURE__*/ (function (_super) { ZipSubscriber.prototype._complete = function () { var iterators = this.iterators; var len = iterators.length; + this.unsubscribe(); if (len === 0) { this.destination.complete(); return; @@ -63,7 +64,8 @@ var ZipSubscriber = /*@__PURE__*/ (function (_super) { for (var i = 0; i < len; i++) { var iterator = iterators[i]; if (iterator.stillUnsubscribed) { - this.add(iterator.subscribe(iterator, i)); + var destination = this.destination; + destination.add(iterator.subscribe(iterator, i)); } else { this.active--; diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/zip.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/zip.js.map index 60c4fd519b76a7..282e2e9fe21767 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/zip.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/observable/zip.js.map @@ -1 +1 @@ -{"version":3,"file":"zip.js","sources":["../../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"zip.js","sources":["../../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delay.js index 48fc38169fcec8..c54ee751e8cb6c 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delay.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delay.js @@ -52,7 +52,8 @@ var DelaySubscriber = /*@__PURE__*/ (function (_super) { }; DelaySubscriber.prototype._schedule = function (scheduler) { this.active = true; - this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + var destination = this.destination; + destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { source: this, destination: this.destination, scheduler: scheduler })); }; @@ -74,9 +75,11 @@ var DelaySubscriber = /*@__PURE__*/ (function (_super) { this.errored = true; this.queue = []; this.destination.error(err); + this.unsubscribe(); }; DelaySubscriber.prototype._complete = function () { this.scheduleNotification(Notification.createComplete()); + this.unsubscribe(); }; return DelaySubscriber; }(Subscriber)); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delay.js.map index b3722851efe3e4..974f391fc91c7e 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delay.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delay.js.map @@ -1 +1 @@ -{"version":3,"file":"delay.js","sources":["../../../src/internal/operators/delay.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"delay.js","sources":["../../../src/internal/operators/delay.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delayWhen.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delayWhen.js index 2e045e87252e02..cda6c7ef2489d3 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delayWhen.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delayWhen.js @@ -62,6 +62,7 @@ var DelayWhenSubscriber = /*@__PURE__*/ (function (_super) { DelayWhenSubscriber.prototype._complete = function () { this.completed = true; this.tryComplete(); + this.unsubscribe(); }; DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { subscription.unsubscribe(); @@ -74,7 +75,8 @@ var DelayWhenSubscriber = /*@__PURE__*/ (function (_super) { DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { var notifierSubscription = subscribeToResult(this, delayNotifier, value); if (notifierSubscription && !notifierSubscription.closed) { - this.add(notifierSubscription); + var destination = this.destination; + destination.add(notifierSubscription); this.delayNotifierSubscriptions.push(notifierSubscription); } }; @@ -115,6 +117,7 @@ var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) { this.parent.error(err); }; SubscriptionDelaySubscriber.prototype._complete = function () { + this.unsubscribe(); this.subscribeToSource(); }; SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map index e4e19fe9278d70..13971fd0162193 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map @@ -1 +1 @@ -{"version":3,"file":"delayWhen.js","sources":["../../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"delayWhen.js","sources":["../../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js index c2cbfe523a14ef..ee655e197adaa8 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js @@ -52,7 +52,8 @@ var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { }; ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) { var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, result, value, index, innerSubscriber); }; ExhaustMapSubscriber.prototype._complete = function () { @@ -60,6 +61,7 @@ var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { if (!this.hasSubscription) { this.destination.complete(); } + this.unsubscribe(); }; ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.destination.next(innerValue); @@ -68,7 +70,8 @@ var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { this.destination.error(err); }; ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.hasSubscription = false; if (this.hasCompleted) { this.destination.complete(); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map index 5f96baf8a21d48..cc9441ee1fec11 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map @@ -1 +1 @@ -{"version":3,"file":"exhaustMap.js","sources":["../../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"exhaustMap.js","sources":["../../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/expand.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/expand.js index ab6bff1bcf8619..95aef071e85150 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/expand.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/expand.js @@ -63,7 +63,8 @@ var ExpandSubscriber = /*@__PURE__*/ (function (_super) { } else { var state = { subscriber: this, result: result, value: value, index: index }; - this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + var destination_1 = this.destination; + destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); } } else { @@ -72,20 +73,23 @@ var ExpandSubscriber = /*@__PURE__*/ (function (_super) { }; ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { this.active++; - this.add(subscribeToResult(this, result, value, index)); + var destination = this.destination; + destination.add(subscribeToResult(this, result, value, index)); }; ExpandSubscriber.prototype._complete = function () { this.hasCompleted = true; if (this.hasCompleted && this.active === 0) { this.destination.complete(); } + this.unsubscribe(); }; ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { this._next(innerValue); }; ExpandSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.active--; if (buffer && buffer.length > 0) { this._next(buffer.shift()); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/expand.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/expand.js.map index 5278d685ad3ea1..e602c8549c8466 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/expand.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/expand.js.map @@ -1 +1 @@ -{"version":3,"file":"expand.js","sources":["../../../src/internal/operators/expand.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"expand.js","sources":["../../../src/internal/operators/expand.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeMap.js index b30e3d78355a4f..8e6013644b53dd 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeMap.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeMap.js @@ -69,7 +69,8 @@ var MergeMapSubscriber = /*@__PURE__*/ (function (_super) { }; MergeMapSubscriber.prototype._innerSub = function (ish, value, index) { var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, ish, value, index, innerSubscriber); }; MergeMapSubscriber.prototype._complete = function () { @@ -77,6 +78,7 @@ var MergeMapSubscriber = /*@__PURE__*/ (function (_super) { if (this.active === 0 && this.buffer.length === 0) { this.destination.complete(); } + this.unsubscribe(); }; MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.destination.next(innerValue); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map index eb9b8160d2f1ec..f93641864c8f6d 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map @@ -1 +1 @@ -{"version":3,"file":"mergeMap.js","sources":["../../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"mergeMap.js","sources":["../../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AA+D1C,MAAM,UAAU,QAAQ,CACtB,OAAwD,EACxD,cAAuG,EACvG,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QAExC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,QAAQ,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACzC,GAAG,CAAC,UAAC,CAAC,EAAE,EAAE,IAAK,OAAA,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAA3B,CAA2B,CAAC,CAC5C,EAFkB,CAElB,EAAE,UAAU,CAAC,CACf,EAJiC,CAIjC,CAAC;KACH;SAAM,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QAC7C,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAED;IACE,0BAAoB,OAAwD,EACxD,UAA6C;QAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;QAD7C,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAmC;IACjE,CAAC;IAED,+BAAI,GAAJ,UAAK,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CACxC,CAAC,CAAC;IACL,CAAC;IACH,uBAAC;AAAD,CAAC,AAVD,IAUC;;AAOD;IAA8C,8CAAqB;IAMjE,4BAAY,WAA0B,EAClB,OAAwD,EACxD,UAA6C;QAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;QAFjE,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,aAAO,GAAP,OAAO,CAAiD;QACxD,gBAAU,GAAV,UAAU,CAAmC;QAPzD,kBAAY,GAAY,KAAK,CAAC;QAC9B,YAAM,GAAQ,EAAE,CAAC;QACjB,YAAM,GAAW,CAAC,CAAC;QACjB,WAAK,GAAW,CAAC,CAAC;;IAM5B,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAES,qCAAQ,GAAlB,UAAmB,KAAQ;QACzB,IAAI,MAA0B,CAAC;QAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,sCAAS,GAAjB,UAAkB,GAAuB,EAAE,KAAQ,EAAE,KAAa;QAChE,IAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjC,iBAAiB,CAAO,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IAES,sCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,uCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,2CAAc,GAAd,UAAe,QAAsB;QACnC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAhED,CAA8C,eAAe,GAgE5D"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeScan.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeScan.js index ca73f124e5a284..c944e189336c98 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeScan.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeScan.js @@ -56,7 +56,8 @@ var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { }; MergeScanSubscriber.prototype._innerSub = function (ish, value, index) { var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, ish, value, index, innerSubscriber); }; MergeScanSubscriber.prototype._complete = function () { @@ -67,6 +68,7 @@ var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { } this.destination.complete(); } + this.unsubscribe(); }; MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { var destination = this.destination; @@ -76,7 +78,8 @@ var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { }; MergeScanSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.active--; if (buffer.length > 0) { this._next(buffer.shift()); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map index 19fdef046c36ad..04f0aecbf4a495 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map @@ -1 +1 @@ -{"version":3,"file":"mergeScan.js","sources":["../../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"mergeScan.js","sources":["../../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/observeOn.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/observeOn.js index 0a53f782309110..a5ad11f8c4ad56 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/observeOn.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/observeOn.js @@ -41,16 +41,19 @@ var ObserveOnSubscriber = /*@__PURE__*/ (function (_super) { this.unsubscribe(); }; ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { - this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + var destination = this.destination; + destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); }; ObserveOnSubscriber.prototype._next = function (value) { this.scheduleMessage(Notification.createNext(value)); }; ObserveOnSubscriber.prototype._error = function (err) { this.scheduleMessage(Notification.createError(err)); + this.unsubscribe(); }; ObserveOnSubscriber.prototype._complete = function () { this.scheduleMessage(Notification.createComplete()); + this.unsubscribe(); }; return ObserveOnSubscriber; }(Subscriber)); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map index c1c59e108524b3..551fd350d347f7 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map @@ -1 +1 @@ -{"version":3,"file":"observeOn.js","sources":["../../../src/internal/operators/observeOn.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAoD/C,MAAM,UAAU,SAAS,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,2BAAoB,SAAwB,EAAU,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;;AAOD;IAA4C,+CAAa;IAQvD,6BAAY,WAA0B,EAClB,SAAwB,EACxB,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAFrC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAe;QACxB,WAAK,GAAL,KAAK,CAAY;;IAErC,CAAC;IAVM,4BAAQ,GAAf,UAAyD,GAAqB;QACpE,IAAA,+BAAY,EAAE,6BAAW,CAAS;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,6CAAe,GAAvB,UAAwB,YAA+B;QACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC9B,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,oCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;IACtD,CAAC;IACH,0BAAC;AAAD,CAAC,AAjCD,CAA4C,UAAU,GAiCrD;;AAED;IACE,0BAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC"} +{"version":3,"file":"observeOn.js","sources":["../../../src/internal/operators/observeOn.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAoD/C,MAAM,UAAU,SAAS,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,2BAAoB,SAAwB,EAAU,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;;AAOD;IAA4C,+CAAa;IAQvD,6BAAY,WAA0B,EAClB,SAAwB,EACxB,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAFrC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAe;QACxB,WAAK,GAAL,KAAK,CAAY;;IAErC,CAAC;IAVM,4BAAQ,GAAf,UAAyD,GAAqB;QACpE,IAAA,+BAAY,EAAE,6BAAW,CAAS;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,6CAAe,GAAvB,UAAwB,YAA+B;QACrD,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrC,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,oCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,0BAAC;AAAD,CAAC,AApCD,CAA4C,UAAU,GAoCrD;;AAED;IACE,0BAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js index 07738067aeab5e..ca67d917ad38cc 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js @@ -52,15 +52,18 @@ var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) { }; OnErrorResumeNextSubscriber.prototype._error = function (err) { this.subscribeToNextSource(); + this.unsubscribe(); }; OnErrorResumeNextSubscriber.prototype._complete = function () { this.subscribeToNextSource(); + this.unsubscribe(); }; OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { var next = this.nextSources.shift(); if (next) { var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, next, undefined, undefined, innerSubscriber); } else { diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map index bae77ee800888c..4277fc353e09dc 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map @@ -1 +1 @@ -{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA+E9D,MAAM,UAAU,iBAAiB;IAAO,qBAE8C;SAF9C,UAE8C,EAF9C,qBAE8C,EAF9C,IAE8C;QAF9C,gCAE8C;;IACpF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,EAA7D,CAA6D,CAAC;AAClG,CAAC;AAaD,MAAM,UAAU,uBAAuB;IAAO,qBAE+C;SAF/C,UAE+C,EAF/C,qBAE+C,EAF/C,IAE+C;QAF/C,gCAE+C;;IAC3F,IAAI,MAAM,GAAyB,IAAI,CAAC;IAExC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAgC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC3D;IACD,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;IAE7B,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AACnF,CAAC;AAED;IACE,mCAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAC5D,CAAC;IAED,wCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;IACH,gCAAC;AAAD,CAAC,AAPD,IAOC;AAED;IAAgD,uDAAqB;IACnE,qCAAsB,WAA0B,EAC5B,WAAwC;QAD5D,YAEE,kBAAM,WAAW,CAAC,SACnB;QAHqB,iBAAW,GAAX,WAAW,CAAe;QAC5B,iBAAW,GAAX,WAAW,CAA6B;;IAE5D,CAAC;IAED,iDAAW,GAAX,UAAY,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,oDAAc,GAAd,UAAe,QAAiC;QAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,4CAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,+CAAS,GAAnB;QACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,2DAAqB,GAA7B;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,IAAI,EAAE;YACR,IAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;SACtE;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,kCAAC;AAAD,CAAC,AAhCD,CAAgD,eAAe,GAgC9D"} +{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/reduce.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/reduce.js index 2c0def7bf01e7a..ffd0e000ecd327 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/reduce.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/reduce.js @@ -10,9 +10,7 @@ export function reduce(accumulator, seed) { }; } return function reduceOperatorFunction(source) { - return pipe(scan(function (acc, value, index) { - return accumulator(acc, value, index + 1); - }), takeLast(1))(source); + return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source); }; } //# sourceMappingURL=reduce.js.map diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/reduce.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/reduce.js.map index 2e70d66f87cff4..df705fa0f0a9aa 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/reduce.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/reduce.js.map @@ -1 +1 @@ -{"version":3,"file":"reduce.js","sources":["../../../src/internal/operators/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAwDpC,MAAM,UAAU,MAAM,CAAO,WAAoD,EAAE,IAAQ;IAMzF,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAW,UAAC,GAAG,EAAE,KAAK,EAAE,KAAK;YAC3C,OAAO,WAAW,CAAI,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAkB,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC"} +{"version":3,"file":"reduce.js","sources":["../../../src/internal/operators/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAwDpC,MAAM,UAAU,MAAM,CAAO,WAAoD,EAAE,IAAQ;IAMzF,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,IAAI,CACT,IAAI,CAAC,UAAC,GAAM,EAAE,KAAQ,EAAE,KAAa,IAAQ,OAAA,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAlC,CAAkC,CAAC,EAChF,QAAQ,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js index b5dd956d54bea4..0a32cc4f629c0a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js @@ -26,7 +26,7 @@ var SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) { _this._a = []; _this._b = []; _this._oneComplete = false; - _this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); + _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); return _this; } SequenceEqualSubscriber.prototype._next = function (value) { @@ -45,6 +45,7 @@ var SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) { else { this._oneComplete = true; } + this.unsubscribe(); }; SequenceEqualSubscriber.prototype.checkValues = function () { var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor; @@ -80,6 +81,14 @@ var SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) { this.checkValues(); } }; + SequenceEqualSubscriber.prototype.completeB = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + }; return SequenceEqualSubscriber; }(Subscriber)); export { SequenceEqualSubscriber }; @@ -95,9 +104,11 @@ var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) { }; SequenceEqualCompareToSubscriber.prototype._error = function (err) { this.parent.error(err); + this.unsubscribe(); }; SequenceEqualCompareToSubscriber.prototype._complete = function () { - this.parent._complete(); + this.parent.completeB(); + this.unsubscribe(); }; return SequenceEqualCompareToSubscriber; }(Subscriber)); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map index b730d6dc1c1430..9e69f171e8bea7 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map @@ -1 +1 @@ -{"version":3,"file":"sequenceEqual.js","sources":["../../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"sequenceEqual.js","sources":["../../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/shareReplay.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/shareReplay.js index 12c554b44915fc..2d3c83cfef0824 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/shareReplay.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/shareReplay.js @@ -5,7 +5,7 @@ export function shareReplay(bufferSize, windowTime, scheduler) { bufferSize = Number.POSITIVE_INFINITY; } if (windowTime === void 0) { - windowTime = Number.MAX_VALUE; + windowTime = Number.POSITIVE_INFINITY; } return function (source) { return source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); }; } diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map index f70832ab49b893..e34b44b5053197 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map @@ -1 +1 @@ -{"version":3,"file":"shareReplay.js","sources":["../../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA+CjD,MAAM,UAAU,WAAW,CACzB,UAA6C,EAC7C,UAAqC,EACrC,SAAyB;IAFzB,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAC7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,SAAS;IAGrC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAAnE,CAAmE,CAAC;AACxG,CAAC;AAED,SAAS,mBAAmB,CAAI,UAAmB,EAAE,UAAmB,EAAE,SAAyB;IACjG,IAAI,OAAyB,CAAC;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAA0B,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,YAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,YAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,IAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,QAAQ,KAAK,CAAC,IAAI,UAAU,EAAE;gBAChD,YAAY,CAAC,WAAW,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"} +{"version":3,"file":"shareReplay.js","sources":["../../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA+CjD,MAAM,UAAU,WAAW,CACzB,UAA6C,EAC7C,UAA6C,EAC7C,SAAyB;IAFzB,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAC7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAG7C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAAnE,CAAmE,CAAC;AACxG,CAAC;AAED,SAAS,mBAAmB,CAAI,UAAmB,EAAE,UAAmB,EAAE,SAAyB;IACjG,IAAI,OAAyB,CAAC;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAA0B,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,YAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,YAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,IAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,QAAQ,KAAK,CAAC,IAAI,UAAU,EAAE;gBAChD,YAAY,CAAC,WAAW,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/switchMap.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/switchMap.js index 81ce9246074311..bf55ac4550ac8d 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/switchMap.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/switchMap.js @@ -46,7 +46,8 @@ var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { innerSubscription.unsubscribe(); } var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber); }; SwitchMapSubscriber.prototype._complete = function () { @@ -54,12 +55,14 @@ var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { if (!innerSubscription || innerSubscription.closed) { _super.prototype._complete.call(this); } + this.unsubscribe(); }; SwitchMapSubscriber.prototype._unsubscribe = function () { this.innerSubscription = null; }; SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.innerSubscription = null; if (this.isStopped) { _super.prototype._complete.call(this); diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map index 8fb4892f63d809..b11a1979ce187c 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map @@ -1 +1 @@ -{"version":3,"file":"switchMap.js","sources":["../../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"switchMap.js","sources":["../../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map index 9f09ce5b3fd81e..7c203a2b05d88b 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map @@ -1 +1 @@ -{"version":3,"file":"takeWhile.js","sources":["../../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA0C3C,MAAM,UAAU,SAAS,CAAI,SAA+C;IAC1E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAqC,+CAAa;IAGhD,6BAAY,WAA0B,EAClB,SAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAH3D,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAQ,EAAE,eAAwB;QACvD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA5BD,CAAqC,UAAU,GA4B9C"} +{"version":3,"file":"takeWhile.js","sources":["../../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA6C3C,MAAM,UAAU,SAAS,CAAI,SAA+C;IAC1E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAqC,+CAAa;IAGhD,6BAAY,WAA0B,EAClB,SAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAH3D,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAQ,EAAE,eAAwB;QACvD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA5BD,CAAqC,UAAU,GA4B9C"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js index f6381d248402dd..f282989f0dab8a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js @@ -1,6 +1,6 @@ /** PURE_IMPORTS_START PURE_IMPORTS_END */ -export var rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') - ? /*@__PURE__*/ Symbol.for('rxSubscriber') - : '@@rxSubscriber'; +export var rxSubscriber = typeof Symbol === 'function' + ? /*@__PURE__*/ Symbol('rxSubscriber') + : '@@rxSubscriber_' + /*@__PURE__*/ Math.random(); export var $$rxSubscriber = rxSubscriber; //# sourceMappingURL=rxSubscriber.js.map diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map index 5a205509a8665b..67cd783b4649bb 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map @@ -1 +1 @@ -{"version":3,"file":"rxSubscriber.js","sources":["../../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,YAAY,GACvB,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC;IAChE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IAC5B,CAAC,CAAC,gBAAgB,CAAC;AAKvB,MAAM,CAAC,IAAM,cAAc,GAAG,YAAY,CAAC"} +{"version":3,"file":"rxSubscriber.js","sources":["../../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,IAAM,YAAY,GACvB,OAAO,MAAM,KAAK,UAAU;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IACxB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAKxC,MAAM,CAAC,IAAM,cAAc,GAAG,YAAY,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/canReportError.js b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/canReportError.js new file mode 100644 index 00000000000000..954fc15f9583e5 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/canReportError.js @@ -0,0 +1,18 @@ +/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */ +import { Subscriber } from '../Subscriber'; +export function canReportError(observer) { + while (observer) { + var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped; + if (closed_1 || isStopped) { + return false; + } + else if (destination && destination instanceof Subscriber) { + observer = destination; + } + else { + observer = null; + } + } + return true; +} +//# sourceMappingURL=canReportError.js.map diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/canReportError.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/canReportError.js.map new file mode 100644 index 00000000000000..62742ce8452191 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/canReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"canReportError.js","sources":["../../../src/internal/util/canReportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,MAAM,UAAU,cAAc,CAAC,QAAwC;IACrE,OAAO,QAAQ,EAAE;QACT,IAAA,aAAoD,EAAlD,oBAAM,EAAE,4BAAW,EAAE,wBAAS,CAAqB;QAC3D,IAAI,QAAM,IAAI,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,WAAW,IAAI,WAAW,YAAY,UAAU,EAAE;YAC3D,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/pipe.js.map b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/pipe.js.map index 82ba00282946c9..7fb0dd0fc33a03 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/pipe.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/_esm5/internal/util/pipe.js.map @@ -1 +1 @@ -{"version":3,"file":"pipe.js","sources":["../../../src/internal/util/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAgB9B,MAAM,UAAU,IAAI;IAAO,aAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,wBAAkC;;IAC3D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAGD,MAAM,UAAU,aAAa,CAAO,GAA+B;IACjE,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAA+B,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAC,IAAS,EAAE,EAAuB,IAAK,OAAA,EAAE,CAAC,IAAI,CAAC,EAAR,CAAQ,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC"} +{"version":3,"file":"pipe.js","sources":["../../../src/internal/util/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiB9B,MAAM,UAAU,IAAI;IAAC,aAAsC;SAAtC,UAAsC,EAAtC,qBAAsC,EAAtC,IAAsC;QAAtC,wBAAsC;;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAGD,MAAM,UAAU,aAAa,CAAO,GAA+B;IACjE,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAA+B,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAC,IAAS,EAAE,EAAuB,IAAK,OAAA,EAAE,CAAC,IAAI,CAAC,EAAR,CAAQ,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.js b/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.js index ec56138e4189b9..31262c4121d94c 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.js +++ b/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.js @@ -696,9 +696,9 @@ function flattenUnsubscriptionErrors(errors) { return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []); } -var rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') - ? Symbol.for('rxSubscriber') - : '@@rxSubscriber'; +var rxSubscriber = typeof Symbol === 'function' + ? Symbol('rxSubscriber') + : '@@rxSubscriber_' + Math.random(); var Subscriber = (function (_super) { __extends(Subscriber, _super); @@ -719,11 +719,10 @@ var Subscriber = (function (_super) { break; } if (typeof destinationOrNext === 'object') { - if (isTrustedSubscriber(destinationOrNext)) { - var trustedSubscriber = destinationOrNext[rxSubscriber](); - _this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable; - _this.destination = trustedSubscriber; - trustedSubscriber._addParentTeardownLogic(_this); + if (destinationOrNext instanceof Subscriber) { + _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + _this.destination = destinationOrNext; + destinationOrNext.add(_this); } else { _this.syncErrorThrowable = true; @@ -753,14 +752,12 @@ var Subscriber = (function (_super) { if (!this.isStopped) { this.isStopped = true; this._error(err); - this._unsubscribeParentSubscription(); } }; Subscriber.prototype.complete = function () { if (!this.isStopped) { this.isStopped = true; this._complete(); - this._unsubscribeParentSubscription(); } }; Subscriber.prototype.unsubscribe = function () { @@ -781,16 +778,6 @@ var Subscriber = (function (_super) { this.destination.complete(); this.unsubscribe(); }; - Subscriber.prototype._addParentTeardownLogic = function (parentTeardownLogic) { - if (parentTeardownLogic !== this) { - this._parentSubscription = this.add(parentTeardownLogic); - } - }; - Subscriber.prototype._unsubscribeParentSubscription = function () { - if (this._parentSubscription !== null) { - this._parentSubscription.unsubscribe(); - } - }; Subscriber.prototype._unsubscribeAndRecycle = function () { var _a = this, _parent = _a._parent, _parents = _a._parents; this._parent = null; @@ -939,8 +926,21 @@ var SafeSubscriber = (function (_super) { }; return SafeSubscriber; }(Subscriber)); -function isTrustedSubscriber(obj) { - return obj instanceof Subscriber || ('_addParentTeardownLogic' in obj && obj[rxSubscriber]); + +function canReportError(observer) { + while (observer) { + var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped; + if (closed_1 || isStopped) { + return false; + } + else if (destination && destination instanceof Subscriber) { + observer = destination; + } + else { + observer = null; + } + } + return true; } function toSubscriber(nextOrObserver, error, complete) { @@ -1001,7 +1001,7 @@ var Observable = (function () { operator.call(sink, this.source); } else { - sink._addParentTeardownLogic(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? this._subscribe(sink) : this._trySubscribe(sink)); } @@ -1024,7 +1024,12 @@ var Observable = (function () { sink.syncErrorThrown = true; sink.syncErrorValue = err; } - sink.error(err); + if (canReportError(sink)) { + sink.error(err); + } + else { + console.warn(err); + } } }; Observable.prototype.forEach = function (next, promiseCtor) { @@ -2045,16 +2050,19 @@ var ObserveOnSubscriber = (function (_super) { this.unsubscribe(); }; ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { - this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + var destination = this.destination; + destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); }; ObserveOnSubscriber.prototype._next = function (value) { this.scheduleMessage(Notification.createNext(value)); }; ObserveOnSubscriber.prototype._error = function (err) { this.scheduleMessage(Notification.createError(err)); + this.unsubscribe(); }; ObserveOnSubscriber.prototype._complete = function () { this.scheduleMessage(Notification.createComplete()); + this.unsubscribe(); }; return ObserveOnSubscriber; }(Subscriber)); @@ -2566,7 +2574,12 @@ function bindCallback(callbackFunc, resultSelector, scheduler) { callbackFunc.apply(context, args.concat([handler])); } catch (err) { - subject.error(err); + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } } } return subject.subscribe(subscriber); @@ -2661,7 +2674,12 @@ function bindNodeCallback(callbackFunc, resultSelector, scheduler) { callbackFunc.apply(context, args.concat([handler])); } catch (err) { - subject.error(err); + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } } } return subject.subscribe(subscriber); @@ -3120,7 +3138,8 @@ var MergeMapSubscriber = (function (_super) { }; MergeMapSubscriber.prototype._innerSub = function (ish, value, index) { var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, ish, value, index, innerSubscriber); }; MergeMapSubscriber.prototype._complete = function () { @@ -3128,6 +3147,7 @@ var MergeMapSubscriber = (function (_super) { if (this.active === 0 && this.buffer.length === 0) { this.destination.complete(); } + this.unsubscribe(); }; MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.destination.next(innerValue); @@ -3788,6 +3808,7 @@ var ZipSubscriber = (function (_super) { ZipSubscriber.prototype._complete = function () { var iterators = this.iterators; var len = iterators.length; + this.unsubscribe(); if (len === 0) { this.destination.complete(); return; @@ -3796,7 +3817,8 @@ var ZipSubscriber = (function (_super) { for (var i = 0; i < len; i++) { var iterator$$1 = iterators[i]; if (iterator$$1.stillUnsubscribed) { - this.add(iterator$$1.subscribe(iterator$$1, i)); + var destination = this.destination; + destination.add(iterator$$1.subscribe(iterator$$1, i)); } else { this.active--; @@ -4795,7 +4817,8 @@ var DelaySubscriber = (function (_super) { }; DelaySubscriber.prototype._schedule = function (scheduler) { this.active = true; - this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + var destination = this.destination; + destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { source: this, destination: this.destination, scheduler: scheduler })); }; @@ -4817,9 +4840,11 @@ var DelaySubscriber = (function (_super) { this.errored = true; this.queue = []; this.destination.error(err); + this.unsubscribe(); }; DelaySubscriber.prototype._complete = function () { this.scheduleNotification(Notification.createComplete()); + this.unsubscribe(); }; return DelaySubscriber; }(Subscriber)); @@ -4889,6 +4914,7 @@ var DelayWhenSubscriber = (function (_super) { DelayWhenSubscriber.prototype._complete = function () { this.completed = true; this.tryComplete(); + this.unsubscribe(); }; DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { subscription.unsubscribe(); @@ -4901,7 +4927,8 @@ var DelayWhenSubscriber = (function (_super) { DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { var notifierSubscription = subscribeToResult(this, delayNotifier, value); if (notifierSubscription && !notifierSubscription.closed) { - this.add(notifierSubscription); + var destination = this.destination; + destination.add(notifierSubscription); this.delayNotifierSubscriptions.push(notifierSubscription); } }; @@ -4942,6 +4969,7 @@ var SubscriptionDelaySubscriber = (function (_super) { this.parent.error(err); }; SubscriptionDelaySubscriber.prototype._complete = function () { + this.unsubscribe(); this.subscribeToSource(); }; SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { @@ -5438,7 +5466,8 @@ var ExhaustMapSubscriber = (function (_super) { }; ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) { var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, result, value, index, innerSubscriber); }; ExhaustMapSubscriber.prototype._complete = function () { @@ -5446,6 +5475,7 @@ var ExhaustMapSubscriber = (function (_super) { if (!this.hasSubscription) { this.destination.complete(); } + this.unsubscribe(); }; ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.destination.next(innerValue); @@ -5454,7 +5484,8 @@ var ExhaustMapSubscriber = (function (_super) { this.destination.error(err); }; ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.hasSubscription = false; if (this.hasCompleted) { this.destination.complete(); @@ -5517,7 +5548,8 @@ var ExpandSubscriber = (function (_super) { } else { var state = { subscriber: this, result: result, value: value, index: index }; - this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + var destination_1 = this.destination; + destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); } } else { @@ -5526,20 +5558,23 @@ var ExpandSubscriber = (function (_super) { }; ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { this.active++; - this.add(subscribeToResult(this, result, value, index)); + var destination = this.destination; + destination.add(subscribeToResult(this, result, value, index)); }; ExpandSubscriber.prototype._complete = function () { this.hasCompleted = true; if (this.hasCompleted && this.active === 0) { this.destination.complete(); } + this.unsubscribe(); }; ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { this._next(innerValue); }; ExpandSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.active--; if (buffer && buffer.length > 0) { this._next(buffer.shift()); @@ -5885,9 +5920,7 @@ function reduce(accumulator, seed) { }; } return function reduceOperatorFunction(source) { - return pipe(scan(function (acc, value, index) { - return accumulator(acc, value, index + 1); - }), takeLast(1))(source); + return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source); }; } @@ -5965,7 +5998,8 @@ var MergeScanSubscriber = (function (_super) { }; MergeScanSubscriber.prototype._innerSub = function (ish, value, index) { var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, ish, value, index, innerSubscriber); }; MergeScanSubscriber.prototype._complete = function () { @@ -5976,6 +6010,7 @@ var MergeScanSubscriber = (function (_super) { } this.destination.complete(); } + this.unsubscribe(); }; MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { var destination = this.destination; @@ -5985,7 +6020,8 @@ var MergeScanSubscriber = (function (_super) { }; MergeScanSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.active--; if (buffer.length > 0) { this._next(buffer.shift()); @@ -6078,15 +6114,18 @@ var OnErrorResumeNextSubscriber = (function (_super) { }; OnErrorResumeNextSubscriber.prototype._error = function (err) { this.subscribeToNextSource(); + this.unsubscribe(); }; OnErrorResumeNextSubscriber.prototype._complete = function () { this.subscribeToNextSource(); + this.unsubscribe(); }; OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { var next = this.nextSources.shift(); if (next) { var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult(this, next, undefined, undefined, innerSubscriber); } else { @@ -6536,7 +6575,7 @@ var SequenceEqualSubscriber = (function (_super) { _this._a = []; _this._b = []; _this._oneComplete = false; - _this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); + _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); return _this; } SequenceEqualSubscriber.prototype._next = function (value) { @@ -6555,6 +6594,7 @@ var SequenceEqualSubscriber = (function (_super) { else { this._oneComplete = true; } + this.unsubscribe(); }; SequenceEqualSubscriber.prototype.checkValues = function () { var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor; @@ -6590,6 +6630,14 @@ var SequenceEqualSubscriber = (function (_super) { this.checkValues(); } }; + SequenceEqualSubscriber.prototype.completeB = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + }; return SequenceEqualSubscriber; }(Subscriber)); var SequenceEqualCompareToSubscriber = (function (_super) { @@ -6604,9 +6652,11 @@ var SequenceEqualCompareToSubscriber = (function (_super) { }; SequenceEqualCompareToSubscriber.prototype._error = function (err) { this.parent.error(err); + this.unsubscribe(); }; SequenceEqualCompareToSubscriber.prototype._complete = function () { - this.parent._complete(); + this.parent.completeB(); + this.unsubscribe(); }; return SequenceEqualCompareToSubscriber; }(Subscriber)); @@ -6620,7 +6670,7 @@ function share() { function shareReplay(bufferSize, windowTime, scheduler) { if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; } - if (windowTime === void 0) { windowTime = Number.MAX_VALUE; } + if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; } return function (source) { return source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); }; } function shareReplayOperator(bufferSize, windowTime, scheduler) { @@ -6997,7 +7047,8 @@ var SwitchMapSubscriber = (function (_super) { innerSubscription.unsubscribe(); } var innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber); }; SwitchMapSubscriber.prototype._complete = function () { @@ -7005,12 +7056,14 @@ var SwitchMapSubscriber = (function (_super) { if (!innerSubscription || innerSubscription.closed) { _super.prototype._complete.call(this); } + this.unsubscribe(); }; SwitchMapSubscriber.prototype._unsubscribe = function () { this.innerSubscription = null; }; SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.innerSubscription = null; if (this.isStopped) { _super.prototype._complete.call(this); diff --git a/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.js.map b/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.js.map index bbeded63107b59..63efa1c32fdcda 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.js.map @@ -1 +1 @@ -{"version":3,"file":null,"sources":["../tslib/tslib.es6.js","../internal/util/isFunction.js","../internal/config.js","../internal/util/hostReportError.js","../internal/Observer.js","../internal/util/isArray.js","../internal/util/isObject.js","../internal/util/errorObject.js","../internal/util/tryCatch.js","../internal/util/UnsubscriptionError.js","../internal/Subscription.js","../internal/symbol/rxSubscriber.js","../internal/Subscriber.js","../internal/util/toSubscriber.js","../internal/symbol/observable.js","../internal/util/noop.js","../internal/util/pipe.js","../internal/Observable.js","../internal/util/ObjectUnsubscribedError.js","../internal/SubjectSubscription.js","../internal/Subject.js","../internal/operators/refCount.js","../internal/observable/ConnectableObservable.js","../internal/operators/groupBy.js","../internal/BehaviorSubject.js","../internal/scheduler/Action.js","../internal/scheduler/AsyncAction.js","../internal/scheduler/QueueAction.js","../internal/Scheduler.js","../internal/scheduler/AsyncScheduler.js","../internal/scheduler/QueueScheduler.js","../internal/scheduler/queue.js","../internal/observable/empty.js","../internal/util/isScheduler.js","../internal/util/subscribeToArray.js","../internal/observable/fromArray.js","../internal/observable/scalar.js","../internal/observable/of.js","../internal/observable/throwError.js","../internal/Notification.js","../internal/operators/observeOn.js","../internal/ReplaySubject.js","../internal/AsyncSubject.js","../internal/util/Immediate.js","../internal/scheduler/AsapAction.js","../internal/scheduler/AsapScheduler.js","../internal/scheduler/asap.js","../internal/scheduler/async.js","../internal/scheduler/AnimationFrameAction.js","../internal/scheduler/AnimationFrameScheduler.js","../internal/scheduler/animationFrame.js","../internal/scheduler/VirtualTimeScheduler.js","../internal/util/identity.js","../internal/util/isObservable.js","../internal/util/ArgumentOutOfRangeError.js","../internal/util/EmptyError.js","../internal/util/TimeoutError.js","../internal/operators/map.js","../internal/observable/bindCallback.js","../internal/observable/bindNodeCallback.js","../internal/OuterSubscriber.js","../internal/InnerSubscriber.js","../internal/util/subscribeToPromise.js","../internal/symbol/iterator.js","../internal/util/subscribeToIterable.js","../internal/util/subscribeToObservable.js","../internal/util/isArrayLike.js","../internal/util/isPromise.js","../internal/util/subscribeTo.js","../internal/util/subscribeToResult.js","../internal/observable/combineLatest.js","../internal/util/isInteropObservable.js","../internal/util/isIterable.js","../internal/observable/fromPromise.js","../internal/observable/fromIterable.js","../internal/observable/fromObservable.js","../internal/observable/from.js","../internal/operators/mergeMap.js","../internal/operators/mergeAll.js","../internal/operators/concatAll.js","../internal/observable/concat.js","../internal/observable/defer.js","../internal/observable/forkJoin.js","../internal/observable/fromEvent.js","../internal/observable/fromEventPattern.js","../internal/observable/generate.js","../internal/observable/iif.js","../internal/util/isNumeric.js","../internal/observable/interval.js","../internal/observable/merge.js","../internal/observable/never.js","../internal/observable/onErrorResumeNext.js","../internal/observable/pairs.js","../internal/observable/race.js","../internal/observable/range.js","../internal/observable/timer.js","../internal/observable/using.js","../internal/observable/zip.js","../internal/operators/audit.js","../internal/operators/auditTime.js","../internal/operators/buffer.js","../internal/operators/bufferCount.js","../internal/operators/bufferTime.js","../internal/operators/bufferToggle.js","../internal/operators/bufferWhen.js","../internal/operators/catchError.js","../internal/operators/combineAll.js","../internal/operators/combineLatest.js","../internal/operators/concat.js","../internal/operators/concatMap.js","../internal/operators/concatMapTo.js","../internal/operators/count.js","../internal/operators/debounce.js","../internal/operators/debounceTime.js","../internal/operators/defaultIfEmpty.js","../internal/util/isDate.js","../internal/operators/delay.js","../internal/operators/delayWhen.js","../internal/operators/dematerialize.js","../internal/operators/distinct.js","../internal/operators/distinctUntilChanged.js","../internal/operators/distinctUntilKeyChanged.js","../internal/operators/filter.js","../internal/operators/tap.js","../internal/operators/throwIfEmpty.js","../internal/operators/take.js","../internal/operators/elementAt.js","../internal/operators/endWith.js","../internal/operators/every.js","../internal/operators/exhaust.js","../internal/operators/exhaustMap.js","../internal/operators/expand.js","../internal/operators/finalize.js","../internal/operators/find.js","../internal/operators/findIndex.js","../internal/operators/first.js","../internal/operators/ignoreElements.js","../internal/operators/isEmpty.js","../internal/operators/takeLast.js","../internal/operators/last.js","../internal/operators/mapTo.js","../internal/operators/materialize.js","../internal/operators/scan.js","../internal/operators/reduce.js","../internal/operators/max.js","../internal/operators/merge.js","../internal/operators/mergeMapTo.js","../internal/operators/mergeScan.js","../internal/operators/min.js","../internal/operators/multicast.js","../internal/operators/onErrorResumeNext.js","../internal/operators/pairwise.js","../internal/util/not.js","../internal/operators/partition.js","../internal/operators/pluck.js","../internal/operators/publish.js","../internal/operators/publishBehavior.js","../internal/operators/publishLast.js","../internal/operators/publishReplay.js","../internal/operators/race.js","../internal/operators/repeat.js","../internal/operators/repeatWhen.js","../internal/operators/retry.js","../internal/operators/retryWhen.js","../internal/operators/sample.js","../internal/operators/sampleTime.js","../internal/operators/sequenceEqual.js","../internal/operators/share.js","../internal/operators/shareReplay.js","../internal/operators/single.js","../internal/operators/skip.js","../internal/operators/skipLast.js","../internal/operators/skipUntil.js","../internal/operators/skipWhile.js","../internal/operators/startWith.js","../internal/observable/SubscribeOnObservable.js","../internal/operators/subscribeOn.js","../internal/operators/switchMap.js","../internal/operators/switchAll.js","../internal/operators/switchMapTo.js","../internal/operators/takeUntil.js","../internal/operators/takeWhile.js","../internal/operators/throttle.js","../internal/operators/throttleTime.js","../internal/operators/timeInterval.js","../internal/operators/timeoutWith.js","../internal/operators/timeout.js","../internal/operators/timestamp.js","../internal/operators/toArray.js","../internal/operators/window.js","../internal/operators/windowCount.js","../internal/operators/windowTime.js","../internal/operators/windowToggle.js","../internal/operators/windowWhen.js","../internal/operators/withLatestFrom.js","../internal/operators/zip.js","../internal/operators/zipAll.js","../internal/testing/SubscriptionLog.js","../internal/testing/SubscriptionLoggable.js","../internal/util/applyMixins.js","../internal/testing/ColdObservable.js","../internal/testing/HotObservable.js","../internal/testing/TestScheduler.js","../internal/util/root.js","../internal/observable/dom/AjaxObservable.js","../internal/observable/dom/ajax.js","../internal/observable/dom/WebSocketSubject.js","../internal/observable/dom/webSocket.js","../internal/umd.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","var _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","export function hostReportError(err) {\n setTimeout(function () { throw err; });\n}\n//# sourceMappingURL=hostReportError.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","export var isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map","export function isObject(x) {\n return x != null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","export var errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map","import { errorObject } from './errorObject';\nvar tryCatchTarget;\nfunction tryCatcher() {\n try {\n return tryCatchTarget.apply(this, arguments);\n }\n catch (e) {\n errorObject.e = e;\n return errorObject;\n }\n}\nexport function tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n//# sourceMappingURL=tryCatch.js.map","function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n}\nUnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { tryCatch } from './util/tryCatch';\nimport { errorObject } from './util/errorObject';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var hasErrors = false;\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n var index = -1;\n var len = _parents ? _parents.length : 0;\n while (_parent) {\n _parent.remove(this);\n _parent = ++index < len && _parents[index] || null;\n }\n if (isFunction(_unsubscribe)) {\n var trial = tryCatch(_unsubscribe).call(this);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || (errorObject.e instanceof UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject.e.errors) : [errorObject.e]);\n }\n }\n if (isArray(_subscriptions)) {\n index = -1;\n len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n var trial = tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || [];\n var err = errorObject.e;\n if (err instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n }\n if (hasErrors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n if (teardown === this) {\n return this;\n }\n var subscription = teardown;\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (typeof subscription._addParent !== 'function') {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n var subscriptions = this._subscriptions || (this._subscriptions = []);\n subscriptions.push(subscription);\n subscription._addParent(this);\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.prototype._addParent = function (parent) {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n if (!_parent || _parent === parent) {\n this._parent = parent;\n }\n else if (!_parents) {\n this._parents = [parent];\n }\n else if (_parents.indexOf(parent) === -1) {\n _parents.push(parent);\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","export var rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n ? Symbol.for('rxSubscriber')\n : '@@rxSubscriber';\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n _this._parentSubscription = null;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (isTrustedSubscriber(destinationOrNext)) {\n var trustedSubscriber = destinationOrNext[rxSubscriberSymbol]();\n _this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable;\n _this.destination = trustedSubscriber;\n trustedSubscriber._addParentTeardownLogic(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n this._unsubscribeParentSubscription();\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n this._unsubscribeParentSubscription();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._addParentTeardownLogic = function (parentTeardownLogic) {\n if (parentTeardownLogic !== this) {\n this._parentSubscription = this.add(parentTeardownLogic);\n }\n };\n Subscriber.prototype._unsubscribeParentSubscription = function () {\n if (this._parentSubscription !== null) {\n this._parentSubscription.unsubscribe();\n }\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n this._parentSubscription = null;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction isTrustedSubscriber(obj) {\n return obj instanceof Subscriber || ('_addParentTeardownLogic' in obj && obj[rxSubscriberSymbol]);\n}\n//# sourceMappingURL=Subscriber.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","export var observable = typeof Symbol === 'function' && Symbol.observable || '@@observable';\n//# sourceMappingURL=observable.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { noop } from './noop';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (!fns) {\n return noop;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from '../internal/symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n operator.call(sink, this.source);\n }\n else {\n sink._addParentTeardownLogic(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map","function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n}\nObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map","import * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = (function (_super) {\n tslib_1.__extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n else {\n this._connection = connection;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nvar connectableProto = ConnectableObservable.prototype;\nexport var connectableObservableDescriptor = {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n};\nvar ConnectableSubscriber = (function (_super) {\n tslib_1.__extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nexport function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nvar GroupByOperator = (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\nvar GroupBySubscriber = (function (_super) {\n tslib_1.__extends(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = new Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new Subject());\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(Subscriber));\nvar GroupDurationSubscriber = (function (_super) {\n tslib_1.__extends(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(Subscriber));\nvar GroupedObservable = (function (_super) {\n tslib_1.__extends(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new Subscription();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(Observable));\nexport { GroupedObservable };\nvar InnerRefCountSubscription = (function (_super) {\n tslib_1.__extends(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(Subscription));\n//# sourceMappingURL=groupBy.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = (function (_super) {\n tslib_1.__extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","var Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nexport function emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","export var subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n if (!subscriber.closed) {\n subscriber.complete();\n }\n}; };\n//# sourceMappingURL=subscribeToArray.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToArray } from '../util/subscribeToArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromArray.js.map","import { Observable } from '../Observable';\nexport function scalar(value) {\n var result = new Observable(function (subscriber) {\n subscriber.next(value);\n subscriber.complete();\n });\n result._isScalar = true;\n result.value = value;\n return result;\n}\n//# sourceMappingURL=scalar.js.map","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { empty } from './empty';\nimport { scalar } from './scalar';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n }\n else {\n scheduler = undefined;\n }\n switch (args.length) {\n case 0:\n return empty(scheduler);\n case 1:\n return scheduler ? fromArray(args, scheduler) : scalar(args[0]);\n default:\n return fromArray(args, scheduler);\n }\n}\n//# sourceMappingURL=of.js.map","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = (function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { Subscription } from './Subscription';\nvar AsyncSubject = (function (_super) {\n tslib_1.__extends(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.value = null;\n _this.hasNext = false;\n _this.hasCompleted = false;\n return _this;\n }\n AsyncSubject.prototype._subscribe = function (subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return _super.prototype._subscribe.call(this, subscriber);\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n };\n AsyncSubject.prototype.error = function (error) {\n if (!this.hasCompleted) {\n _super.prototype.error.call(this, error);\n }\n };\n AsyncSubject.prototype.complete = function () {\n this.hasCompleted = true;\n if (this.hasNext) {\n _super.prototype.next.call(this, this.value);\n }\n _super.prototype.complete.call(this);\n };\n return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map","var nextHandle = 1;\nvar tasksByHandle = {};\nfunction runIfPresent(handle) {\n var cb = tasksByHandle[handle];\n if (cb) {\n cb();\n }\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n tasksByHandle[handle] = cb;\n Promise.resolve().then(function () { return runIfPresent(handle); });\n return handle;\n },\n clearImmediate: function (handle) {\n delete tasksByHandle[handle];\n },\n};\n//# sourceMappingURL=Immediate.js.map","import * as tslib_1 from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nvar AsapAction = (function (_super) {\n tslib_1.__extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n tslib_1.__extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asap = new AsapScheduler(AsapAction);\n//# sourceMappingURL=asap.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = (function (_super) {\n tslib_1.__extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n tslib_1.__extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n tslib_1.__extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error, action;\n while ((action = actions.shift()) && (this.frame = action.delay) <= maxFrames) {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n tslib_1.__extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = scheduler.index += 1; }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map","function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n}\nArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n}\nEmptyErrorImpl.prototype = Object.create(Error.prototype);\nexport var EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map","function TimeoutErrorImpl() {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n}\nTimeoutErrorImpl.prototype = Object.create(Error.prototype);\nexport var TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: subject,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n };\n return new Observable(function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n var state = {\n args: args, subscriber: subscriber, params: params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var self = this;\n var args = state.args, subscriber = state.subscriber, params = state.params;\n var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n var value = state.value, subject = state.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n var err = state.err, subject = state.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nexport function bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this,\n };\n return new Observable(function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n subject.error(err);\n return;\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var params = state.params, subscriber = state.subscriber, context = state.context;\n var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n }\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n var value = arg.value, subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(arg) {\n var err = arg.err, subject = arg.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = (function (_super) {\n tslib_1.__extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = (function (_super) {\n tslib_1.__extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map","import { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (result instanceof Observable) {\n return function (subscriber) {\n if (result._isScalar) {\n subscriber.next(result.value);\n subscriber.complete();\n return undefined;\n }\n else {\n return result.subscribe(subscriber);\n }\n };\n }\n else if (result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {\n if (destination === void 0) { destination = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }\n if (destination.closed) {\n return;\n }\n return subscribeTo(result)(destination);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = null;\n var scheduler = null;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = (function (_super) {\n tslib_1.__extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToPromise } from '../util/subscribeToPromise';\nexport function fromPromise(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToPromise(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromPromise.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { subscribeToIterable } from '../util/subscribeToIterable';\nexport function fromIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n if (!scheduler) {\n return new Observable(subscribeToIterable(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { subscribeToObservable } from '../util/subscribeToObservable';\nexport function fromObservable(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToObservable(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromObservable.js.map","import { Observable } from '../Observable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isIterable } from '../util/isIterable';\nimport { fromArray } from './fromArray';\nimport { fromPromise } from './fromPromise';\nimport { fromIterable } from './fromIterable';\nimport { fromObservable } from './fromObservable';\nimport { subscribeTo } from '../util/subscribeTo';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return fromPromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return fromArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return fromIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=from.js.map","import * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = (function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { isScheduler } from '../util/isScheduler';\nimport { of } from './of';\nimport { from } from './from';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1 || (observables.length === 2 && isScheduler(observables[1]))) {\n return from(observables[0]);\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { map } from '../operators/map';\nexport function forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var resultSelector;\n if (typeof sources[sources.length - 1] === 'function') {\n resultSelector = sources.pop();\n }\n if (sources.length === 1 && isArray(sources[0])) {\n sources = sources[0];\n }\n if (sources.length === 0) {\n return EMPTY;\n }\n if (resultSelector) {\n return forkJoin(sources).pipe(map(function (args) { return resultSelector.apply(void 0, args); }));\n }\n return new Observable(function (subscriber) {\n return new ForkJoinSubscriber(subscriber, sources);\n });\n}\nvar ForkJoinSubscriber = (function (_super) {\n tslib_1.__extends(ForkJoinSubscriber, _super);\n function ForkJoinSubscriber(destination, sources) {\n var _this = _super.call(this, destination) || this;\n _this.sources = sources;\n _this.completed = 0;\n _this.haveValues = 0;\n var len = sources.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n var source = sources[i];\n var innerSubscription = subscribeToResult(_this, source, null, i);\n if (innerSubscription) {\n _this.add(innerSubscription);\n }\n }\n return _this;\n }\n ForkJoinSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n if (!innerSub._hasValue) {\n innerSub._hasValue = true;\n this.haveValues++;\n }\n };\n ForkJoinSubscriber.prototype.notifyComplete = function (innerSub) {\n var _a = this, destination = _a.destination, haveValues = _a.haveValues, values = _a.values;\n var len = values.length;\n if (!innerSub._hasValue) {\n destination.complete();\n return;\n }\n this.completed++;\n if (this.completed !== len) {\n return;\n }\n if (haveValues === len) {\n destination.next(values);\n }\n destination.complete();\n };\n return ForkJoinSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=forkJoin.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = Object.prototype.toString;\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map","import { Observable } from '../Observable';\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n var resultSelector;\n var initialState;\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity;\n scheduler = options.scheduler;\n }\n else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions;\n resultSelector = identity;\n scheduler = resultSelectorOrObservable;\n }\n else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrObservable;\n }\n return new Observable(function (subscriber) {\n var state = initialState;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n do {\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n var value = void 0;\n try {\n value = resultSelector(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n return undefined;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, condition = state.condition;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n }\n else {\n state.needIterate = true;\n }\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n var value;\n try {\n value = state.resultSelector(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map","import { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = EMPTY; }\n if (falseResult === void 0) { falseResult = EMPTY; }\n return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map","import { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = async; }\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, counter = state.counter, period = state.period;\n subscriber.next(counter);\n this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nexport function onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 0) {\n return EMPTY;\n }\n var first = sources[0], remainder = sources.slice(1);\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n return new Observable(function (subscriber) {\n var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n return from(first).subscribe({\n next: function (value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function pairs(obj, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n }\n else {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new Subscription();\n subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n return subscription;\n });\n }\n}\nexport function dispatch(state) {\n var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n }\n else {\n subscriber.complete();\n }\n }\n}\n//# sourceMappingURL=pairs.js.map","import * as tslib_1 from \"tslib\";\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n }\n else {\n return observables[0];\n }\n }\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = (function () {\n function RaceOperator() {\n }\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n return RaceOperator;\n}());\nexport { RaceOperator };\nvar RaceSubscriber = (function (_super) {\n tslib_1.__extends(RaceSubscriber, _super);\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = subscribeToResult(this, observable, observable, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n };\n RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n };\n return RaceSubscriber;\n}(OuterSubscriber));\nexport { RaceSubscriber };\n//# sourceMappingURL=race.js.map","import { Observable } from '../Observable';\nexport function range(start, count, scheduler) {\n if (start === void 0) { start = 0; }\n if (count === void 0) { count = 0; }\n return new Observable(function (subscriber) {\n var index = 0;\n var current = start;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index, count: count, start: start, subscriber: subscriber\n });\n }\n else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n return undefined;\n });\n}\nexport function dispatch(state) {\n var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(start);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}\n//# sourceMappingURL=range.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n var period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n var due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period: period, subscriber: subscriber\n });\n });\n}\nfunction dispatch(state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function using(resourceFactory, observableFactory) {\n return new Observable(function (subscriber) {\n var resource;\n try {\n resource = resourceFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var result;\n try {\n result = observableFactory(resource);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = result ? from(result) : EMPTY;\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=using.js.map","import * as tslib_1 from \"tslib\";\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = (function () {\n function ZipOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n };\n return ZipOperator;\n}());\nexport { ZipOperator };\nvar ZipSubscriber = (function (_super) {\n tslib_1.__extends(ZipSubscriber, _super);\n function ZipSubscriber(destination, resultSelector, values) {\n if (values === void 0) { values = Object.create(null); }\n var _this = _super.call(this, destination) || this;\n _this.iterators = [];\n _this.active = 0;\n _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;\n _this.values = values;\n return _this;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n this.add(iterator.subscribe(iterator, i));\n }\n else {\n this.active--;\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryresultSelector = function (args) {\n var result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(Subscriber));\nexport { ZipSubscriber };\nvar StaticIterator = (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return nextResult && nextResult.done;\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\nvar ZipBufferIterator = (function (_super) {\n tslib_1.__extends(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n _this.observable = observable;\n _this.stillUnsubscribed = true;\n _this.buffer = [];\n _this.isComplete = false;\n return _this;\n }\n ZipBufferIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function (value, index) {\n return subscribeToResult(this, this.observable, this, index);\n };\n return ZipBufferIterator;\n}(OuterSubscriber));\n//# sourceMappingURL=zip.js.map","import * as tslib_1 from \"tslib\";\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nvar AuditOperator = (function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n return AuditOperator;\n}());\nvar AuditSubscriber = (function (_super) {\n tslib_1.__extends(AuditSubscriber, _super);\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n var duration = tryCatch(this.durationSelector)(value);\n if (duration === errorObject) {\n this.destination.error(errorObject.e);\n }\n else {\n var innerSubscription = subscribeToResult(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n }\n };\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n this.clearThrottle();\n };\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n return AuditSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=audit.js.map","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\nvar BufferOperator = (function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n return BufferOperator;\n}());\nvar BufferSubscriber = (function (_super) {\n tslib_1.__extends(BufferSubscriber, _super);\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n _this.buffer = [];\n _this.add(subscribeToResult(_this, closingNotifier));\n return _this;\n }\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n return BufferSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=buffer.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n tslib_1.__extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = (function (_super) {\n tslib_1.__extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n var bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n var maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nvar BufferTimeOperator = (function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n return BufferTimeOperator;\n}());\nvar Context = (function () {\n function Context() {\n this.buffer = [];\n }\n return Context;\n}());\nvar BufferTimeSubscriber = (function (_super) {\n tslib_1.__extends(BufferTimeSubscriber, _super);\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n var context = _this.openContext();\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (_this.timespanOnly) {\n var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n var closeState = { subscriber: _this, context: context };\n var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n return _this;\n }\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n _super.prototype._error.call(this, err);\n };\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this, contexts = _a.contexts, destination = _a.destination;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n return BufferTimeSubscriber;\n}(Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber, context = arg.context;\n subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nexport function bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\nvar BufferToggleOperator = (function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = (function (_super) {\n tslib_1.__extends(BufferToggleSubscriber, _super);\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(subscribeToResult(_this, openings));\n return _this;\n }\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n this.contexts = null;\n _super.prototype._error.call(this, err);\n };\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n this.contexts = null;\n _super.prototype._complete.call(this);\n };\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n }\n catch (err) {\n this._error(err);\n }\n };\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n if (contexts && context) {\n var buffer = context.buffer, subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new Subscription();\n var context = { buffer: buffer, subscription: subscription };\n contexts.push(context);\n var innerSubscription = subscribeToResult(this, closingNotifier, context);\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n }\n else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n return BufferToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\nvar BufferWhenOperator = (function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = (function (_super) {\n tslib_1.__extends(BufferWhenSubscriber, _super);\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n _this.openBuffer();\n return _this;\n }\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = null;\n this.subscribing = false;\n };\n BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openBuffer();\n };\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n }\n else {\n this.openBuffer();\n }\n };\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n var buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n this.buffer = [];\n var closingNotifier = tryCatch(this.closingSelector)();\n if (closingNotifier === errorObject) {\n this.error(errorObject.e);\n }\n else {\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(subscribeToResult(this, closingNotifier));\n this.subscribing = false;\n }\n };\n return BufferWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n tslib_1.__extends(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n }\n };\n return CatchSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=catchError.js.map","import { CombineLatestOperator } from '../observable/combineLatest';\nexport function combineAll(project) {\n return function (source) { return source.lift(new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineAll.js.map","import { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nvar none = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var project = null;\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0].slice();\n }\n return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineLatest.js.map","import { concat as concatStatic } from '../observable/concat';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=concat.js.map","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n//# sourceMappingURL=concatMap.js.map","import { concatMap } from './concatMap';\nexport function concatMapTo(innerObservable, resultSelector) {\n return concatMap(function () { return innerObservable; }, resultSelector);\n}\n//# sourceMappingURL=concatMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function count(predicate) {\n return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = (function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n return CountOperator;\n}());\nvar CountSubscriber = (function (_super) {\n tslib_1.__extends(CountSubscriber, _super);\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n }\n else {\n this.count++;\n }\n };\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n try {\n result = this.predicate(value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.count++;\n }\n };\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n return CountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=count.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function debounce(durationSelector) {\n return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = (function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n return DebounceOperator;\n}());\nvar DebounceSubscriber = (function (_super) {\n tslib_1.__extends(DebounceSubscriber, _super);\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n _this.durationSubscription = null;\n return _this;\n }\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = subscribeToResult(this, duration);\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = null;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = null;\n this.hasValue = false;\n _super.prototype._next.call(this, value);\n }\n };\n return DebounceSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=debounce.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n tslib_1.__extends(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n tslib_1.__extends(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n tslib_1.__extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n };\n DelaySubscriber.prototype._complete = function () {\n this.scheduleNotification(Notification.createComplete());\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = (function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = (function (_super) {\n tslib_1.__extends(DelayWhenSubscriber, _super);\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n return subscription.outerValue;\n };\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n if (notifierSubscription && !notifierSubscription.closed) {\n this.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n return DelayWhenSubscriber;\n}(OuterSubscriber));\nvar SubscriptionDelayObservable = (function (_super) {\n tslib_1.__extends(SubscriptionDelayObservable, _super);\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n return SubscriptionDelayObservable;\n}(Observable));\nvar SubscriptionDelaySubscriber = (function (_super) {\n tslib_1.__extends(SubscriptionDelaySubscriber, _super);\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n return SubscriptionDelaySubscriber;\n}(Subscriber));\n//# sourceMappingURL=delayWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nvar DeMaterializeOperator = (function () {\n function DeMaterializeOperator() {\n }\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = (function (_super) {\n tslib_1.__extends(DeMaterializeSubscriber, _super);\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n return DeMaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=dematerialize.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function distinct(keySelector, flushes) {\n return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = (function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n return DistinctOperator;\n}());\nvar DistinctSubscriber = (function (_super) {\n tslib_1.__extends(DistinctSubscriber, _super);\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.values = new Set();\n if (flushes) {\n _this.add(subscribeToResult(_this, flushes));\n }\n return _this;\n }\n DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values.clear();\n };\n DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n }\n else {\n this._finalizeNext(value, value);\n }\n };\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n };\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n return DistinctSubscriber;\n}(OuterSubscriber));\nexport { DistinctSubscriber };\n//# sourceMappingURL=distinct.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var keySelector = this.keySelector;\n var key = value;\n if (keySelector) {\n key = tryCatch(this.keySelector)(value);\n if (key === errorObject) {\n return this.destination.error(errorObject.e);\n }\n }\n var result = false;\n if (this.hasKey) {\n result = tryCatch(this.compare)(this.key, key);\n if (result === errorObject) {\n return this.destination.error(errorObject.e);\n }\n }\n else {\n this.hasKey = true;\n }\n if (Boolean(result) === false) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map","import { tap } from './tap';\nimport { EmptyError } from '../util/EmptyError';\nexport var throwIfEmpty = function (errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return tap({\n hasValue: false,\n next: function () { this.hasValue = true; },\n complete: function () {\n if (!this.hasValue) {\n throw errorFactory();\n }\n }\n });\n};\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map","import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue\n ? defaultIfEmpty(defaultValue)\n : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); })); };\n}\n//# sourceMappingURL=elementAt.js.map","import { fromArray } from '../observable/fromArray';\nimport { scalar } from '../observable/scalar';\nimport { empty } from '../observable/empty';\nimport { concat as concatStatic } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function endWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return function (source) {\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len === 1 && !scheduler) {\n return concatStatic(source, scalar(array[0]));\n }\n else if (len > 0) {\n return concatStatic(source, fromArray(array, scheduler));\n }\n else {\n return concatStatic(source, empty(scheduler));\n }\n };\n}\n//# sourceMappingURL=endWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function every(predicate, thisArg) {\n return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = (function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n return EveryOperator;\n}());\nvar EverySubscriber = (function (_super) {\n tslib_1.__extends(EverySubscriber, _super);\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (!result) {\n this.notifyComplete(false);\n }\n };\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return EverySubscriber;\n}(Subscriber));\n//# sourceMappingURL=every.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function exhaust() {\n return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = (function () {\n function SwitchFirstOperator() {\n }\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = (function (_super) {\n tslib_1.__extends(SwitchFirstSubscriber, _super);\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(subscribeToResult(this, value));\n }\n };\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return SwitchFirstSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaust.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) {\n return source.lift(new ExhauseMapOperator(project));\n };\n}\nvar ExhauseMapOperator = (function () {\n function ExhauseMapOperator(project) {\n this.project = project;\n }\n ExhauseMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n return ExhauseMapOperator;\n}());\nvar ExhaustMapSubscriber = (function (_super) {\n tslib_1.__extends(ExhaustMapSubscriber, _super);\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result, value, index);\n };\n ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n subscribeToResult(this, result, value, index, innerSubscriber);\n };\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return ExhaustMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaustMap.js.map","import * as tslib_1 from \"tslib\";\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function expand(project, concurrent, scheduler) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (scheduler === void 0) { scheduler = undefined; }\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = (function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n return ExpandOperator;\n}());\nexport { ExpandOperator };\nvar ExpandSubscriber = (function (_super) {\n tslib_1.__extends(ExpandSubscriber, _super);\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n return _this;\n }\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (destination.closed) {\n this._complete();\n return;\n }\n var index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n var result = tryCatch(this.project)(value, index);\n if (result === errorObject) {\n destination.error(errorObject.e);\n }\n else if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n }\n else {\n var state = { subscriber: this, result: result, value: value, index: index };\n this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n this.add(subscribeToResult(this, result, value, index));\n };\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this._next(innerValue);\n };\n ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n return ExpandSubscriber;\n}(OuterSubscriber));\nexport { ExpandSubscriber };\n//# sourceMappingURL=expand.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n tslib_1.__extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = (function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n return FindValueOperator;\n}());\nexport { FindValueOperator };\nvar FindValueSubscriber = (function (_super) {\n tslib_1.__extends(FindValueSubscriber, _super);\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n var index = this.index++;\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n return FindValueSubscriber;\n}(Subscriber));\nexport { FindValueSubscriber };\n//# sourceMappingURL=find.js.map","import { FindValueOperator } from '../operators/find';\nexport function findIndex(predicate, thisArg) {\n return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=first.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nvar IgnoreElementsOperator = (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = (function (_super) {\n tslib_1.__extends(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n };\n return IgnoreElementsSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ignoreElements.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function isEmpty() {\n return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = (function () {\n function IsEmptyOperator() {\n }\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = (function (_super) {\n tslib_1.__extends(IsEmptySubscriber, _super);\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return IsEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=isEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nvar TakeLastOperator = (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n tslib_1.__extends(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeLast.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=last.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nvar MaterializeOperator = (function () {\n function MaterializeOperator() {\n }\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n return MaterializeOperator;\n}());\nvar MaterializeSubscriber = (function (_super) {\n tslib_1.__extends(MaterializeSubscriber, _super);\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(Notification.createNext(value));\n };\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n };\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n };\n return MaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=materialize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n tslib_1.__extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function () {\n return this._seed;\n },\n set: function (value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n };\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map","import { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return pipe(scan(function (acc, value, index) {\n return accumulator(acc, value, index + 1);\n }), takeLast(1))(source);\n };\n}\n//# sourceMappingURL=reduce.js.map","import { reduce } from './reduce';\nexport function max(comparer) {\n var max = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n : function (x, y) { return x > y ? x : y; };\n return reduce(max);\n}\n//# sourceMappingURL=max.js.map","import { merge as mergeStatic } from '../observable/merge';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=merge.js.map","import { mergeMap } from './mergeMap';\nexport function mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nexport function mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = (function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n return MergeScanOperator;\n}());\nexport { MergeScanOperator };\nvar MergeScanSubscriber = (function (_super) {\n tslib_1.__extends(MergeScanSubscriber, _super);\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var ish = tryCatch(this.accumulator)(this.acc, value);\n var destination = this.destination;\n if (ish === errorObject) {\n destination.error(errorObject.e);\n }\n else {\n this.active++;\n this._innerSub(ish, value, index);\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n return MergeScanSubscriber;\n}(OuterSubscriber));\nexport { MergeScanSubscriber };\n//# sourceMappingURL=mergeScan.js.map","import { reduce } from './reduce';\nexport function min(comparer) {\n var min = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n : function (x, y) { return x < y ? x : y; };\n return reduce(min);\n}\n//# sourceMappingURL=min.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map","import * as tslib_1 from \"tslib\";\nimport { from } from '../observable/from';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function onErrorResumeNext() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nexport function onErrorResumeNextStatic() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n var source = null;\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n source = nextSources.shift();\n return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = (function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n tslib_1.__extends(OnErrorResumeNextSubscriber, _super);\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n if (next) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n subscribeToResult(this, next, undefined, undefined, innerSubscriber);\n }\n else {\n this.destination.complete();\n }\n };\n return OnErrorResumeNextSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=onErrorResumeNext.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function pairwise() {\n return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = (function () {\n function PairwiseOperator() {\n }\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n return PairwiseOperator;\n}());\nvar PairwiseSubscriber = (function (_super) {\n tslib_1.__extends(PairwiseSubscriber, _super);\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasPrev = false;\n return _this;\n }\n PairwiseSubscriber.prototype._next = function (value) {\n if (this.hasPrev) {\n this.destination.next([this.prev, value]);\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n };\n return PairwiseSubscriber;\n}(Subscriber));\n//# sourceMappingURL=pairwise.js.map","export function not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\n//# sourceMappingURL=not.js.map","import { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n return function (source) { return [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg))(source)\n ]; };\n}\n//# sourceMappingURL=partition.js.map","import { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map","import { Subject } from '../Subject';\nimport { multicast } from './multicast';\nexport function publish(selector) {\n return selector ?\n multicast(function () { return new Subject(); }, selector) :\n multicast(new Subject());\n}\n//# sourceMappingURL=publish.js.map","import { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nexport function publishBehavior(value) {\n return function (source) { return multicast(new BehaviorSubject(value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map","import { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nexport function publishLast() {\n return function (source) { return multicast(new AsyncSubject())(source); };\n}\n//# sourceMappingURL=publishLast.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nexport function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n return function (source) { return multicast(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map","import { isArray } from '../util/isArray';\nimport { race as raceStatic } from '../observable/race';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=race.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { empty } from '../observable/empty';\nexport function repeat(count) {\n if (count === void 0) { count = -1; }\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n }\n else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\nvar RepeatOperator = (function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n return RepeatOperator;\n}());\nvar RepeatSubscriber = (function (_super) {\n tslib_1.__extends(RepeatSubscriber, _super);\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.complete.call(this);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RepeatSubscriber;\n}(Subscriber));\n//# sourceMappingURL=repeat.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function repeatWhen(notifier) {\n return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = (function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = (function (_super) {\n tslib_1.__extends(RepeatWhenSubscriber, _super);\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n this._unsubscribeAndRecycle();\n this.notifications.next();\n }\n };\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n _super.prototype._unsubscribeAndRecycle.call(this);\n this._unsubscribe = _unsubscribe;\n return this;\n };\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new Subject();\n var retries = tryCatch(this.notifier)(this.notifications);\n if (retries === errorObject) {\n return _super.prototype.complete.call(this);\n }\n this.retries = retries;\n this.retriesSubscription = subscribeToResult(this, retries);\n };\n return RepeatWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=repeatWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function retry(count) {\n if (count === void 0) { count = -1; }\n return function (source) { return source.lift(new RetryOperator(count, source)); };\n}\nvar RetryOperator = (function () {\n function RetryOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n };\n return RetryOperator;\n}());\nvar RetrySubscriber = (function (_super) {\n tslib_1.__extends(RetrySubscriber, _super);\n function RetrySubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RetrySubscriber;\n}(Subscriber));\n//# sourceMappingURL=retry.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function retryWhen(notifier) {\n return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = (function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = (function (_super) {\n tslib_1.__extends(RetryWhenSubscriber, _super);\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n return _this;\n }\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n if (!retries) {\n errors = new Subject();\n retries = tryCatch(this.notifier)(errors);\n if (retries === errorObject) {\n return _super.prototype.error.call(this, errorObject.e);\n }\n retriesSubscription = subscribeToResult(this, retries);\n }\n else {\n this.errors = null;\n this.retriesSubscription = null;\n }\n this._unsubscribeAndRecycle();\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n if (errors) {\n errors.unsubscribe();\n this.errors = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n return RetryWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=retryWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n tslib_1.__extends(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=sample.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = (function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = (function (_super) {\n tslib_1.__extends(SampleTimeSubscriber, _super);\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n return _this;\n }\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n return SampleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber, period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nexport function sequenceEqual(compareTo, comparor) {\n return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparor)); };\n}\nvar SequenceEqualOperator = (function () {\n function SequenceEqualOperator(compareTo, comparor) {\n this.compareTo = compareTo;\n this.comparor = comparor;\n }\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparor));\n };\n return SequenceEqualOperator;\n}());\nexport { SequenceEqualOperator };\nvar SequenceEqualSubscriber = (function (_super) {\n tslib_1.__extends(SequenceEqualSubscriber, _super);\n function SequenceEqualSubscriber(destination, compareTo, comparor) {\n var _this = _super.call(this, destination) || this;\n _this.compareTo = compareTo;\n _this.comparor = comparor;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n _this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n return _this;\n }\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n }\n else {\n this._a.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n };\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor;\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n var b = _b.shift();\n var areEqual = false;\n if (comparor) {\n areEqual = tryCatch(comparor)(a, b);\n if (areEqual === errorObject) {\n this.destination.error(errorObject.e);\n }\n }\n else {\n areEqual = a === b;\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n }\n else {\n this._b.push(value);\n this.checkValues();\n }\n };\n return SequenceEqualSubscriber;\n}(Subscriber));\nexport { SequenceEqualSubscriber };\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n return _this;\n }\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n };\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent._complete();\n };\n return SequenceEqualCompareToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=sequenceEqual.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.MAX_VALUE; }\n return function (source) { return source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); };\n}\nfunction shareReplayOperator(bufferSize, windowTime, scheduler) {\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n return function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && refCount === 0 && isComplete) {\n subscription.unsubscribe();\n }\n };\n };\n}\n//# sourceMappingURL=shareReplay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nexport function single(predicate) {\n return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = (function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n return SingleOperator;\n}());\nvar SingleSubscriber = (function (_super) {\n tslib_1.__extends(SingleSubscriber, _super);\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n }\n else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n if (this.predicate) {\n this.tryNext(value, index);\n }\n else {\n this.applySingleValue(value);\n }\n };\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n }\n else {\n destination.error(new EmptyError);\n }\n };\n return SingleSubscriber;\n}(Subscriber));\n//# sourceMappingURL=single.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n tslib_1.__extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nexport function skipLast(count) {\n return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = (function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new Subscriber(subscriber));\n }\n else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n return SkipLastOperator;\n}());\nvar SkipLastSubscriber = (function (_super) {\n tslib_1.__extends(SkipLastSubscriber, _super);\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n if (count < skipCount) {\n this._ring[count] = value;\n }\n else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n return SkipLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipLast.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function skipUntil(notifier) {\n return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = (function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = (function (_super) {\n tslib_1.__extends(SkipUntilSubscriber, _super);\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n _this.hasValue = false;\n var innerSubscriber = new InnerSubscriber(_this, undefined, undefined);\n _this.add(innerSubscriber);\n _this.innerSubscription = innerSubscriber;\n subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);\n return _this;\n }\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n SkipUntilSubscriber.prototype.notifyComplete = function () {\n };\n return SkipUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=skipUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = (function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = (function (_super) {\n tslib_1.__extends(SkipWhileSubscriber, _super);\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n };\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n return SkipWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipWhile.js.map","import { fromArray } from '../observable/fromArray';\nimport { scalar } from '../observable/scalar';\nimport { empty } from '../observable/empty';\nimport { concat as concatStatic } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return function (source) {\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len === 1 && !scheduler) {\n return concatStatic(scalar(array[0]), source);\n }\n else if (len > 0) {\n return concatStatic(fromArray(array, scheduler), source);\n }\n else {\n return concatStatic(empty(scheduler), source);\n }\n };\n}\n//# sourceMappingURL=startWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\nvar SubscribeOnObservable = (function (_super) {\n tslib_1.__extends(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) { delayTime = 0; }\n if (scheduler === void 0) { scheduler = asap; }\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n if (!isNumeric(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = asap;\n }\n return _this;\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) { delay = 0; }\n if (scheduler === void 0) { scheduler = asap; }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(Observable));\nexport { SubscribeOnObservable };\n//# sourceMappingURL=SubscribeOnObservable.js.map","import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nvar SubscribeOnOperator = (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n tslib_1.__extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber);\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map","import { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = (function (_super) {\n tslib_1.__extends(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate) {\n return function (source) { return source.lift(new TakeWhileOperator(predicate)); };\n}\nvar TakeWhileOperator = (function () {\n function TakeWhileOperator(predicate) {\n this.predicate = predicate;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = (function (_super) {\n tslib_1.__extends(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n tslib_1.__extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = async; }\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };\n}\nvar ThrottleTimeOperator = (function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = (function (_super) {\n tslib_1.__extends(ThrottleTimeSubscriber, _super);\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n }\n };\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n };\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n return ThrottleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map","import { async } from '../scheduler/async';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\nexport function timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return defer(function () {\n return source.pipe(scan(function (_a, value) {\n var current = _a.current;\n return ({ value: value, current: scheduler.now(), last: current });\n }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {\n var current = _a.current, last = _a.last, value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n }); };\n}\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) {\n var absoluteTimeout = isDate(due);\n var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\nvar TimeoutWithOperator = (function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = (function (_super) {\n tslib_1.__extends(TimeoutWithSubscriber, _super);\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n _this.action = null;\n _this.scheduleTimeout();\n return _this;\n }\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(subscribeToResult(subscriber, withObservable));\n };\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n }\n else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n _super.prototype._next.call(this, value);\n };\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = null;\n this.scheduler = null;\n this.withObservable = null;\n };\n return TimeoutWithSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=timeoutWith.js.map","import { async } from '../scheduler/async';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\nexport function timeout(due, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map","import { async } from '../scheduler/async';\nimport { map } from './map';\nexport function timestamp(scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return map(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = (function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n return Timestamp;\n}());\nexport { Timestamp };\n//# sourceMappingURL=timestamp.js.map","import { reduce } from './reduce';\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nexport function toArray() {\n return reduce(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.window = new Subject();\n destination.next(_this.window);\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow();\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this._complete();\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var destination = this.destination;\n var newWindow = this.window = new Subject();\n destination.next(newWindow);\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=window.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\nexport function windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) { startWindowEvery = 0; }\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\nvar WindowCountOperator = (function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n return WindowCountOperator;\n}());\nvar WindowCountSubscriber = (function (_super) {\n tslib_1.__extends(WindowCountSubscriber, _super);\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new Subject()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n var c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new Subject();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n };\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n };\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n return WindowCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=windowCount.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function windowTime(windowTimeSpan) {\n var scheduler = async;\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n }\n else if (isNumeric(arguments[2])) {\n maxWindowSize = arguments[2];\n }\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n }\n else if (isNumeric(arguments[1])) {\n windowCreationInterval = arguments[1];\n }\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\nvar WindowTimeOperator = (function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n return WindowTimeOperator;\n}());\nvar CountedSubject = (function (_super) {\n tslib_1.__extends(CountedSubject, _super);\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._numberOfNextedValues = 0;\n return _this;\n }\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n _super.prototype.next.call(this, value);\n };\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function () {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(Subject));\nvar WindowTimeSubscriber = (function (_super) {\n tslib_1.__extends(WindowTimeSubscriber, _super);\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowTimeSpan = windowTimeSpan;\n _this.windowCreationInterval = windowCreationInterval;\n _this.maxWindowSize = maxWindowSize;\n _this.scheduler = scheduler;\n _this.windows = [];\n var window = _this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = { subscriber: _this, window: window, context: null };\n var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n }\n else {\n var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n return _this;\n }\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n if (!window_1.closed) {\n window_1.next(value);\n if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n };\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n while (windows.length > 0) {\n var window_2 = windows.shift();\n if (!window_2.closed) {\n window_2.complete();\n }\n }\n this.destination.complete();\n };\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n window.complete();\n var windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n };\n return WindowTimeSubscriber;\n}(Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = { action: action, subscription: null };\n var timeSpanState = { subscriber: subscriber, window: window, context: context };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber, window = state.window, context = state.context;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = (function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = (function (_super) {\n tslib_1.__extends(WindowToggleSubscriber, _super);\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n return _this;\n }\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n if (contexts) {\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n _super.prototype._error.call(this, err);\n };\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n _super.prototype._complete.call(this);\n };\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingSelector = this.closingSelector;\n var closingNotifier = tryCatch(closingSelector)(innerValue);\n if (closingNotifier === errorObject) {\n return this.error(errorObject.e);\n }\n else {\n var window_1 = new Subject();\n var subscription = new Subscription();\n var context_4 = { window: window_1, subscription: subscription };\n this.contexts.push(context_4);\n var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n }\n else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n this.destination.next(window_1);\n }\n }\n else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window, subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n return WindowToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n _this.openWindow();\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) { innerSub = null; }\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var window = this.window = new Subject();\n this.destination.next(window);\n var closingNotifier = tryCatch(this.closingSelector)();\n if (closingNotifier === errorObject) {\n var err = errorObject.e;\n this.destination.error(err);\n this.window.error(err);\n }\n else {\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n }\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n tslib_1.__extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map","import { zip as zipStatic } from '../observable/zip';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=zip.js.map","import { ZipOperator } from '../observable/zip';\nexport function zipAll(project) {\n return function (source) { return source.lift(new ZipOperator(project)); };\n}\n//# sourceMappingURL=zipAll.js.map","var SubscriptionLog = (function () {\n function SubscriptionLog(subscribedFrame, unsubscribedFrame) {\n if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; }\n this.subscribedFrame = subscribedFrame;\n this.unsubscribedFrame = unsubscribedFrame;\n }\n return SubscriptionLog;\n}());\nexport { SubscriptionLog };\n//# sourceMappingURL=SubscriptionLog.js.map","import { SubscriptionLog } from './SubscriptionLog';\nvar SubscriptionLoggable = (function () {\n function SubscriptionLoggable() {\n this.subscriptions = [];\n }\n SubscriptionLoggable.prototype.logSubscribedFrame = function () {\n this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));\n return this.subscriptions.length - 1;\n };\n SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {\n var subscriptionLogs = this.subscriptions;\n var oldSubscriptionLog = subscriptionLogs[index];\n subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());\n };\n return SubscriptionLoggable;\n}());\nexport { SubscriptionLoggable };\n//# sourceMappingURL=SubscriptionLoggable.js.map","export function applyMixins(derivedCtor, baseCtors) {\n for (var i = 0, len = baseCtors.length; i < len; i++) {\n var baseCtor = baseCtors[i];\n var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);\n for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {\n var name_1 = propertyKeys[j];\n derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];\n }\n }\n}\n//# sourceMappingURL=applyMixins.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar ColdObservable = (function (_super) {\n tslib_1.__extends(ColdObservable, _super);\n function ColdObservable(messages, scheduler) {\n var _this = _super.call(this, function (subscriber) {\n var observable = this;\n var index = observable.logSubscribedFrame();\n var subscription = new Subscription();\n subscription.add(new Subscription(function () {\n observable.logUnsubscribedFrame(index);\n }));\n observable.scheduleMessages(subscriber);\n return subscription;\n }) || this;\n _this.messages = messages;\n _this.subscriptions = [];\n _this.scheduler = scheduler;\n return _this;\n }\n ColdObservable.prototype.scheduleMessages = function (subscriber) {\n var messagesLength = this.messages.length;\n for (var i = 0; i < messagesLength; i++) {\n var message = this.messages[i];\n subscriber.add(this.scheduler.schedule(function (_a) {\n var message = _a.message, subscriber = _a.subscriber;\n message.notification.observe(subscriber);\n }, message.frame, { message: message, subscriber: subscriber }));\n }\n };\n return ColdObservable;\n}(Observable));\nexport { ColdObservable };\napplyMixins(ColdObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=ColdObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar HotObservable = (function (_super) {\n tslib_1.__extends(HotObservable, _super);\n function HotObservable(messages, scheduler) {\n var _this = _super.call(this) || this;\n _this.messages = messages;\n _this.subscriptions = [];\n _this.scheduler = scheduler;\n return _this;\n }\n HotObservable.prototype._subscribe = function (subscriber) {\n var subject = this;\n var index = subject.logSubscribedFrame();\n var subscription = new Subscription();\n subscription.add(new Subscription(function () {\n subject.logUnsubscribedFrame(index);\n }));\n subscription.add(_super.prototype._subscribe.call(this, subscriber));\n return subscription;\n };\n HotObservable.prototype.setup = function () {\n var subject = this;\n var messagesLength = subject.messages.length;\n for (var i = 0; i < messagesLength; i++) {\n (function () {\n var message = subject.messages[i];\n subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);\n })();\n }\n };\n return HotObservable;\n}(Subject));\nexport { HotObservable };\napplyMixins(HotObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=HotObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Notification } from '../Notification';\nimport { ColdObservable } from './ColdObservable';\nimport { HotObservable } from './HotObservable';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler';\nimport { AsyncScheduler } from '../scheduler/AsyncScheduler';\nvar defaultMaxFrame = 750;\nvar TestScheduler = (function (_super) {\n tslib_1.__extends(TestScheduler, _super);\n function TestScheduler(assertDeepEqual) {\n var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this;\n _this.assertDeepEqual = assertDeepEqual;\n _this.hotObservables = [];\n _this.coldObservables = [];\n _this.flushTests = [];\n _this.runMode = false;\n return _this;\n }\n TestScheduler.prototype.createTime = function (marbles) {\n var indexOf = marbles.indexOf('|');\n if (indexOf === -1) {\n throw new Error('marble diagram for time should have a completion marker \"|\"');\n }\n return indexOf * TestScheduler.frameTimeFactor;\n };\n TestScheduler.prototype.createColdObservable = function (marbles, values, error) {\n if (marbles.indexOf('^') !== -1) {\n throw new Error('cold observable cannot have subscription offset \"^\"');\n }\n if (marbles.indexOf('!') !== -1) {\n throw new Error('cold observable cannot have unsubscription marker \"!\"');\n }\n var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n var cold = new ColdObservable(messages, this);\n this.coldObservables.push(cold);\n return cold;\n };\n TestScheduler.prototype.createHotObservable = function (marbles, values, error) {\n if (marbles.indexOf('!') !== -1) {\n throw new Error('hot observable cannot have unsubscription marker \"!\"');\n }\n var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n var subject = new HotObservable(messages, this);\n this.hotObservables.push(subject);\n return subject;\n };\n TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {\n var _this = this;\n var messages = [];\n observable.subscribe(function (value) {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) });\n }, function (err) {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) });\n }, function () {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() });\n });\n return messages;\n };\n TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {\n var _this = this;\n if (subscriptionMarbles === void 0) { subscriptionMarbles = null; }\n var actual = [];\n var flushTest = { actual: actual, ready: false };\n var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);\n var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?\n 0 : subscriptionParsed.subscribedFrame;\n var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;\n var subscription;\n this.schedule(function () {\n subscription = observable.subscribe(function (x) {\n var value = x;\n if (x instanceof Observable) {\n value = _this.materializeInnerObservable(value, _this.frame);\n }\n actual.push({ frame: _this.frame, notification: Notification.createNext(value) });\n }, function (err) {\n actual.push({ frame: _this.frame, notification: Notification.createError(err) });\n }, function () {\n actual.push({ frame: _this.frame, notification: Notification.createComplete() });\n });\n }, subscriptionFrame);\n if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);\n }\n this.flushTests.push(flushTest);\n var runMode = this.runMode;\n return {\n toBe: function (marbles, values, errorValue) {\n flushTest.ready = true;\n flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);\n }\n };\n };\n TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {\n var flushTest = { actual: actualSubscriptionLogs, ready: false };\n this.flushTests.push(flushTest);\n var runMode = this.runMode;\n return {\n toBe: function (marbles) {\n var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;\n flushTest.ready = true;\n flushTest.expected = marblesArray.map(function (marbles) {\n return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode);\n });\n }\n };\n };\n TestScheduler.prototype.flush = function () {\n var _this = this;\n var hotObservables = this.hotObservables;\n while (hotObservables.length > 0) {\n hotObservables.shift().setup();\n }\n _super.prototype.flush.call(this);\n this.flushTests = this.flushTests.filter(function (test) {\n if (test.ready) {\n _this.assertDeepEqual(test.actual, test.expected);\n return false;\n }\n return true;\n });\n };\n TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {\n var _this = this;\n if (runMode === void 0) { runMode = false; }\n if (typeof marbles !== 'string') {\n return new SubscriptionLog(Number.POSITIVE_INFINITY);\n }\n var len = marbles.length;\n var groupStart = -1;\n var subscriptionFrame = Number.POSITIVE_INFINITY;\n var unsubscriptionFrame = Number.POSITIVE_INFINITY;\n var frame = 0;\n var _loop_1 = function (i) {\n var nextFrame = frame;\n var advanceFrameBy = function (count) {\n nextFrame += count * _this.frameTimeFactor;\n };\n var c = marbles[i];\n switch (c) {\n case ' ':\n if (!runMode) {\n advanceFrameBy(1);\n }\n break;\n case '-':\n advanceFrameBy(1);\n break;\n case '(':\n groupStart = frame;\n advanceFrameBy(1);\n break;\n case ')':\n groupStart = -1;\n advanceFrameBy(1);\n break;\n case '^':\n if (subscriptionFrame !== Number.POSITIVE_INFINITY) {\n throw new Error('found a second subscription point \\'^\\' in a ' +\n 'subscription marble diagram. There can only be one.');\n }\n subscriptionFrame = groupStart > -1 ? groupStart : frame;\n advanceFrameBy(1);\n break;\n case '!':\n if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n throw new Error('found a second subscription point \\'^\\' in a ' +\n 'subscription marble diagram. There can only be one.');\n }\n unsubscriptionFrame = groupStart > -1 ? groupStart : frame;\n break;\n default:\n if (runMode && c.match(/^[0-9]$/)) {\n if (i === 0 || marbles[i - 1] === ' ') {\n var buffer = marbles.slice(i);\n var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n if (match) {\n i += match[0].length - 1;\n var duration = parseFloat(match[1]);\n var unit = match[2];\n var durationInMs = void 0;\n switch (unit) {\n case 'ms':\n durationInMs = duration;\n break;\n case 's':\n durationInMs = duration * 1000;\n break;\n case 'm':\n durationInMs = duration * 1000 * 60;\n break;\n default:\n break;\n }\n advanceFrameBy(durationInMs / this_1.frameTimeFactor);\n break;\n }\n }\n }\n throw new Error('there can only be \\'^\\' and \\'!\\' markers in a ' +\n 'subscription marble diagram. Found instead \\'' + c + '\\'.');\n }\n frame = nextFrame;\n out_i_1 = i;\n };\n var this_1 = this, out_i_1;\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n if (unsubscriptionFrame < 0) {\n return new SubscriptionLog(subscriptionFrame);\n }\n else {\n return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);\n }\n };\n TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {\n var _this = this;\n if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }\n if (runMode === void 0) { runMode = false; }\n if (marbles.indexOf('!') !== -1) {\n throw new Error('conventional marble diagrams cannot have the ' +\n 'unsubscription marker \"!\"');\n }\n var len = marbles.length;\n var testMessages = [];\n var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');\n var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);\n var getValue = typeof values !== 'object' ?\n function (x) { return x; } :\n function (x) {\n if (materializeInnerObservables && values[x] instanceof ColdObservable) {\n return values[x].messages;\n }\n return values[x];\n };\n var groupStart = -1;\n var _loop_2 = function (i) {\n var nextFrame = frame;\n var advanceFrameBy = function (count) {\n nextFrame += count * _this.frameTimeFactor;\n };\n var notification = void 0;\n var c = marbles[i];\n switch (c) {\n case ' ':\n if (!runMode) {\n advanceFrameBy(1);\n }\n break;\n case '-':\n advanceFrameBy(1);\n break;\n case '(':\n groupStart = frame;\n advanceFrameBy(1);\n break;\n case ')':\n groupStart = -1;\n advanceFrameBy(1);\n break;\n case '|':\n notification = Notification.createComplete();\n advanceFrameBy(1);\n break;\n case '^':\n advanceFrameBy(1);\n break;\n case '#':\n notification = Notification.createError(errorValue || 'error');\n advanceFrameBy(1);\n break;\n default:\n if (runMode && c.match(/^[0-9]$/)) {\n if (i === 0 || marbles[i - 1] === ' ') {\n var buffer = marbles.slice(i);\n var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n if (match) {\n i += match[0].length - 1;\n var duration = parseFloat(match[1]);\n var unit = match[2];\n var durationInMs = void 0;\n switch (unit) {\n case 'ms':\n durationInMs = duration;\n break;\n case 's':\n durationInMs = duration * 1000;\n break;\n case 'm':\n durationInMs = duration * 1000 * 60;\n break;\n default:\n break;\n }\n advanceFrameBy(durationInMs / this_2.frameTimeFactor);\n break;\n }\n }\n }\n notification = Notification.createNext(getValue(c));\n advanceFrameBy(1);\n break;\n }\n if (notification) {\n testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });\n }\n frame = nextFrame;\n out_i_2 = i;\n };\n var this_2 = this, out_i_2;\n for (var i = 0; i < len; i++) {\n _loop_2(i);\n i = out_i_2;\n }\n return testMessages;\n };\n TestScheduler.prototype.run = function (callback) {\n var prevFrameTimeFactor = TestScheduler.frameTimeFactor;\n var prevMaxFrames = this.maxFrames;\n TestScheduler.frameTimeFactor = 1;\n this.maxFrames = Number.POSITIVE_INFINITY;\n this.runMode = true;\n AsyncScheduler.delegate = this;\n var helpers = {\n cold: this.createColdObservable.bind(this),\n hot: this.createHotObservable.bind(this),\n flush: this.flush.bind(this),\n expectObservable: this.expectObservable.bind(this),\n expectSubscriptions: this.expectSubscriptions.bind(this),\n };\n try {\n var ret = callback(helpers);\n this.flush();\n return ret;\n }\n finally {\n TestScheduler.frameTimeFactor = prevFrameTimeFactor;\n this.maxFrames = prevMaxFrames;\n this.runMode = false;\n AsyncScheduler.delegate = undefined;\n }\n };\n return TestScheduler;\n}(VirtualTimeScheduler));\nexport { TestScheduler };\n//# sourceMappingURL=TestScheduler.js.map","var __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map","import * as tslib_1 from \"tslib\";\nimport { root } from '../../util/root';\nimport { tryCatch } from '../../util/tryCatch';\nimport { errorObject } from '../../util/errorObject';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else if (!!root.XDomainRequest) {\n return new root.XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new root.ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new root.ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nexport function ajaxGet(url, headers) {\n if (headers === void 0) { headers = null; }\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n tslib_1.__extends(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = (function (_super) {\n tslib_1.__extends(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !headers['X-Requested-With']) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n if (!('Content-Type' in headers) && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, request.headers['Content-Type']);\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var response = new AjaxResponse(e, xhr, request);\n if (response.response === errorObject) {\n destination.error(errorObject.e);\n }\n else {\n destination.next(response);\n }\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n var createXHR = request.createXHR;\n var xhr = tryCatch(createXHR).call(request);\n if (xhr === errorObject) {\n this.error(errorObject.e);\n }\n else {\n this.xhr = xhr;\n this.setupEvents(xhr, request);\n var result = void 0;\n if (user) {\n result = tryCatch(xhr.open).call(xhr, method, url, async, user, password);\n }\n else {\n result = tryCatch(xhr.open).call(xhr, method, url, async);\n }\n if (result === errorObject) {\n this.error(errorObject.e);\n return null;\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n result = body ? tryCatch(xhr.send).call(xhr, body) : tryCatch(xhr.send).call(xhr);\n if (result === errorObject) {\n this.error(errorObject.e);\n return null;\n }\n }\n return xhr;\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (root.FormData && body instanceof root.FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var ajaxTimeoutError = new AjaxTimeoutError(this, request);\n if (ajaxTimeoutError.response === errorObject) {\n subscriber.error(errorObject.e);\n }\n else {\n subscriber.error(ajaxTimeoutError);\n }\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (root.XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var ajaxError = new AjaxError('ajax error', this, request);\n if (ajaxError.response === errorObject) {\n subscriber.error(errorObject.e);\n }\n else {\n subscriber.error(ajaxError);\n }\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var ajaxError = new AjaxError('ajax error ' + status_1, this, request);\n if (ajaxError.response === errorObject) {\n subscriber.error(errorObject.e);\n }\n else {\n subscriber.error(ajaxError);\n }\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\nexport { AjaxResponse };\nfunction AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n}\nAjaxErrorImpl.prototype = Object.create(Error.prototype);\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return tryCatch(parseJson)(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nfunction AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n}\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map","import { AjaxObservable } from './AjaxObservable';\nexport var ajax = AjaxObservable.create;\n//# sourceMappingURL=ajax.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject, AnonymousSubject } from '../../Subject';\nimport { Subscriber } from '../../Subscriber';\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { ReplaySubject } from '../../ReplaySubject';\nimport { tryCatch } from '../../util/tryCatch';\nimport { errorObject } from '../../util/errorObject';\nvar DEFAULT_WEBSOCKET_CONFIG = {\n url: '',\n deserializer: function (e) { return JSON.parse(e.data); },\n serializer: function (value) { return JSON.stringify(value); },\n};\nvar WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';\nvar WebSocketSubject = (function (_super) {\n tslib_1.__extends(WebSocketSubject, _super);\n function WebSocketSubject(urlConfigOrSource, destination) {\n var _this = _super.call(this) || this;\n if (urlConfigOrSource instanceof Observable) {\n _this.destination = destination;\n _this.source = urlConfigOrSource;\n }\n else {\n var config = _this._config = tslib_1.__assign({}, DEFAULT_WEBSOCKET_CONFIG);\n _this._output = new Subject();\n if (typeof urlConfigOrSource === 'string') {\n config.url = urlConfigOrSource;\n }\n else {\n for (var key in urlConfigOrSource) {\n if (urlConfigOrSource.hasOwnProperty(key)) {\n config[key] = urlConfigOrSource[key];\n }\n }\n }\n if (!config.WebSocketCtor && WebSocket) {\n config.WebSocketCtor = WebSocket;\n }\n else if (!config.WebSocketCtor) {\n throw new Error('no WebSocket constructor can be found');\n }\n _this.destination = new ReplaySubject();\n }\n return _this;\n }\n WebSocketSubject.prototype.lift = function (operator) {\n var sock = new WebSocketSubject(this._config, this.destination);\n sock.operator = operator;\n sock.source = this;\n return sock;\n };\n WebSocketSubject.prototype._resetState = function () {\n this._socket = null;\n if (!this.source) {\n this.destination = new ReplaySubject();\n }\n this._output = new Subject();\n };\n WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {\n var self = this;\n return new Observable(function (observer) {\n var result = tryCatch(subMsg)();\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else {\n self.next(result);\n }\n var subscription = self.subscribe(function (x) {\n var result = tryCatch(messageFilter)(x);\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else if (result) {\n observer.next(x);\n }\n }, function (err) { return observer.error(err); }, function () { return observer.complete(); });\n return function () {\n var result = tryCatch(unsubMsg)();\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else {\n self.next(result);\n }\n subscription.unsubscribe();\n };\n });\n };\n WebSocketSubject.prototype._connectSocket = function () {\n var _this = this;\n var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;\n var observer = this._output;\n var socket = null;\n try {\n socket = protocol ?\n new WebSocketCtor(url, protocol) :\n new WebSocketCtor(url);\n this._socket = socket;\n if (binaryType) {\n this._socket.binaryType = binaryType;\n }\n }\n catch (e) {\n observer.error(e);\n return;\n }\n var subscription = new Subscription(function () {\n _this._socket = null;\n if (socket && socket.readyState === 1) {\n socket.close();\n }\n });\n socket.onopen = function (e) {\n var openObserver = _this._config.openObserver;\n if (openObserver) {\n openObserver.next(e);\n }\n var queue = _this.destination;\n _this.destination = Subscriber.create(function (x) {\n if (socket.readyState === 1) {\n var serializer = _this._config.serializer;\n var msg = tryCatch(serializer)(x);\n if (msg === errorObject) {\n _this.destination.error(errorObject.e);\n return;\n }\n socket.send(msg);\n }\n }, function (e) {\n var closingObserver = _this._config.closingObserver;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n if (e && e.code) {\n socket.close(e.code, e.reason);\n }\n else {\n observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));\n }\n _this._resetState();\n }, function () {\n var closingObserver = _this._config.closingObserver;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n socket.close();\n _this._resetState();\n });\n if (queue && queue instanceof ReplaySubject) {\n subscription.add(queue.subscribe(_this.destination));\n }\n };\n socket.onerror = function (e) {\n _this._resetState();\n observer.error(e);\n };\n socket.onclose = function (e) {\n _this._resetState();\n var closeObserver = _this._config.closeObserver;\n if (closeObserver) {\n closeObserver.next(e);\n }\n if (e.wasClean) {\n observer.complete();\n }\n else {\n observer.error(e);\n }\n };\n socket.onmessage = function (e) {\n var deserializer = _this._config.deserializer;\n var result = tryCatch(deserializer)(e);\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else {\n observer.next(result);\n }\n };\n };\n WebSocketSubject.prototype._subscribe = function (subscriber) {\n var _this = this;\n var source = this.source;\n if (source) {\n return source.subscribe(subscriber);\n }\n if (!this._socket) {\n this._connectSocket();\n }\n this._output.subscribe(subscriber);\n subscriber.add(function () {\n var _socket = _this._socket;\n if (_this._output.observers.length === 0) {\n if (_socket && _socket.readyState === 1) {\n _socket.close();\n }\n _this._resetState();\n }\n });\n return subscriber;\n };\n WebSocketSubject.prototype.unsubscribe = function () {\n var _a = this, source = _a.source, _socket = _a._socket;\n if (_socket && _socket.readyState === 1) {\n _socket.close();\n this._resetState();\n }\n _super.prototype.unsubscribe.call(this);\n if (!source) {\n this.destination = new ReplaySubject();\n }\n };\n return WebSocketSubject;\n}(AnonymousSubject));\nexport { WebSocketSubject };\n//# sourceMappingURL=WebSocketSubject.js.map","import { WebSocketSubject } from './WebSocketSubject';\nexport function webSocket(urlConfigOrSource) {\n return new WebSocketSubject(urlConfigOrSource);\n}\n//# sourceMappingURL=webSocket.js.map","export * from '../index';\nimport * as _operators from '../operators/index';\nexport var operators = _operators;\nimport * as _testing from '../testing/index';\nexport var testing = _testing;\nimport * as _ajax from '../ajax/index';\nexport var ajax = _ajax;\nimport * as _webSocket from '../webSocket/index';\nexport var webSocket = _webSocket;\n//# sourceMappingURL=umd.js.map"],"names":["tslib_1.__extends","emptyObserver","rxSubscriberSymbol","observable","Symbol_observable","RefCountOperator","RefCountSubscriber","higherOrderRefCount","refCount","empty","dispatch","dispatchError","dispatchNext","iterator","Symbol_iterator","combineLatest","concat","concatStatic","merge","mergeStatic","onErrorResumeNext","race","raceStatic","window","WindowOperator","WindowSubscriber","zip","zipStatic","root","ajax","tslib_1.__assign","webSocket"],"mappings":"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"} +{"version":3,"file":null,"sources":["../tslib/tslib.es6.js","../internal/util/isFunction.js","../internal/config.js","../internal/util/hostReportError.js","../internal/Observer.js","../internal/util/isArray.js","../internal/util/isObject.js","../internal/util/errorObject.js","../internal/util/tryCatch.js","../internal/util/UnsubscriptionError.js","../internal/Subscription.js","../internal/symbol/rxSubscriber.js","../internal/Subscriber.js","../internal/util/canReportError.js","../internal/util/toSubscriber.js","../internal/symbol/observable.js","../internal/util/noop.js","../internal/util/pipe.js","../internal/Observable.js","../internal/util/ObjectUnsubscribedError.js","../internal/SubjectSubscription.js","../internal/Subject.js","../internal/operators/refCount.js","../internal/observable/ConnectableObservable.js","../internal/operators/groupBy.js","../internal/BehaviorSubject.js","../internal/scheduler/Action.js","../internal/scheduler/AsyncAction.js","../internal/scheduler/QueueAction.js","../internal/Scheduler.js","../internal/scheduler/AsyncScheduler.js","../internal/scheduler/QueueScheduler.js","../internal/scheduler/queue.js","../internal/observable/empty.js","../internal/util/isScheduler.js","../internal/util/subscribeToArray.js","../internal/observable/fromArray.js","../internal/observable/scalar.js","../internal/observable/of.js","../internal/observable/throwError.js","../internal/Notification.js","../internal/operators/observeOn.js","../internal/ReplaySubject.js","../internal/AsyncSubject.js","../internal/util/Immediate.js","../internal/scheduler/AsapAction.js","../internal/scheduler/AsapScheduler.js","../internal/scheduler/asap.js","../internal/scheduler/async.js","../internal/scheduler/AnimationFrameAction.js","../internal/scheduler/AnimationFrameScheduler.js","../internal/scheduler/animationFrame.js","../internal/scheduler/VirtualTimeScheduler.js","../internal/util/identity.js","../internal/util/isObservable.js","../internal/util/ArgumentOutOfRangeError.js","../internal/util/EmptyError.js","../internal/util/TimeoutError.js","../internal/operators/map.js","../internal/observable/bindCallback.js","../internal/observable/bindNodeCallback.js","../internal/OuterSubscriber.js","../internal/InnerSubscriber.js","../internal/util/subscribeToPromise.js","../internal/symbol/iterator.js","../internal/util/subscribeToIterable.js","../internal/util/subscribeToObservable.js","../internal/util/isArrayLike.js","../internal/util/isPromise.js","../internal/util/subscribeTo.js","../internal/util/subscribeToResult.js","../internal/observable/combineLatest.js","../internal/util/isInteropObservable.js","../internal/util/isIterable.js","../internal/observable/fromPromise.js","../internal/observable/fromIterable.js","../internal/observable/fromObservable.js","../internal/observable/from.js","../internal/operators/mergeMap.js","../internal/operators/mergeAll.js","../internal/operators/concatAll.js","../internal/observable/concat.js","../internal/observable/defer.js","../internal/observable/forkJoin.js","../internal/observable/fromEvent.js","../internal/observable/fromEventPattern.js","../internal/observable/generate.js","../internal/observable/iif.js","../internal/util/isNumeric.js","../internal/observable/interval.js","../internal/observable/merge.js","../internal/observable/never.js","../internal/observable/onErrorResumeNext.js","../internal/observable/pairs.js","../internal/observable/race.js","../internal/observable/range.js","../internal/observable/timer.js","../internal/observable/using.js","../internal/observable/zip.js","../internal/operators/audit.js","../internal/operators/auditTime.js","../internal/operators/buffer.js","../internal/operators/bufferCount.js","../internal/operators/bufferTime.js","../internal/operators/bufferToggle.js","../internal/operators/bufferWhen.js","../internal/operators/catchError.js","../internal/operators/combineAll.js","../internal/operators/combineLatest.js","../internal/operators/concat.js","../internal/operators/concatMap.js","../internal/operators/concatMapTo.js","../internal/operators/count.js","../internal/operators/debounce.js","../internal/operators/debounceTime.js","../internal/operators/defaultIfEmpty.js","../internal/util/isDate.js","../internal/operators/delay.js","../internal/operators/delayWhen.js","../internal/operators/dematerialize.js","../internal/operators/distinct.js","../internal/operators/distinctUntilChanged.js","../internal/operators/distinctUntilKeyChanged.js","../internal/operators/filter.js","../internal/operators/tap.js","../internal/operators/throwIfEmpty.js","../internal/operators/take.js","../internal/operators/elementAt.js","../internal/operators/endWith.js","../internal/operators/every.js","../internal/operators/exhaust.js","../internal/operators/exhaustMap.js","../internal/operators/expand.js","../internal/operators/finalize.js","../internal/operators/find.js","../internal/operators/findIndex.js","../internal/operators/first.js","../internal/operators/ignoreElements.js","../internal/operators/isEmpty.js","../internal/operators/takeLast.js","../internal/operators/last.js","../internal/operators/mapTo.js","../internal/operators/materialize.js","../internal/operators/scan.js","../internal/operators/reduce.js","../internal/operators/max.js","../internal/operators/merge.js","../internal/operators/mergeMapTo.js","../internal/operators/mergeScan.js","../internal/operators/min.js","../internal/operators/multicast.js","../internal/operators/onErrorResumeNext.js","../internal/operators/pairwise.js","../internal/util/not.js","../internal/operators/partition.js","../internal/operators/pluck.js","../internal/operators/publish.js","../internal/operators/publishBehavior.js","../internal/operators/publishLast.js","../internal/operators/publishReplay.js","../internal/operators/race.js","../internal/operators/repeat.js","../internal/operators/repeatWhen.js","../internal/operators/retry.js","../internal/operators/retryWhen.js","../internal/operators/sample.js","../internal/operators/sampleTime.js","../internal/operators/sequenceEqual.js","../internal/operators/share.js","../internal/operators/shareReplay.js","../internal/operators/single.js","../internal/operators/skip.js","../internal/operators/skipLast.js","../internal/operators/skipUntil.js","../internal/operators/skipWhile.js","../internal/operators/startWith.js","../internal/observable/SubscribeOnObservable.js","../internal/operators/subscribeOn.js","../internal/operators/switchMap.js","../internal/operators/switchAll.js","../internal/operators/switchMapTo.js","../internal/operators/takeUntil.js","../internal/operators/takeWhile.js","../internal/operators/throttle.js","../internal/operators/throttleTime.js","../internal/operators/timeInterval.js","../internal/operators/timeoutWith.js","../internal/operators/timeout.js","../internal/operators/timestamp.js","../internal/operators/toArray.js","../internal/operators/window.js","../internal/operators/windowCount.js","../internal/operators/windowTime.js","../internal/operators/windowToggle.js","../internal/operators/windowWhen.js","../internal/operators/withLatestFrom.js","../internal/operators/zip.js","../internal/operators/zipAll.js","../internal/testing/SubscriptionLog.js","../internal/testing/SubscriptionLoggable.js","../internal/util/applyMixins.js","../internal/testing/ColdObservable.js","../internal/testing/HotObservable.js","../internal/testing/TestScheduler.js","../internal/util/root.js","../internal/observable/dom/AjaxObservable.js","../internal/observable/dom/ajax.js","../internal/observable/dom/WebSocketSubject.js","../internal/observable/dom/webSocket.js","../internal/umd.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","var _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","export function hostReportError(err) {\n setTimeout(function () { throw err; });\n}\n//# sourceMappingURL=hostReportError.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","export var isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map","export function isObject(x) {\n return x != null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","export var errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map","import { errorObject } from './errorObject';\nvar tryCatchTarget;\nfunction tryCatcher() {\n try {\n return tryCatchTarget.apply(this, arguments);\n }\n catch (e) {\n errorObject.e = e;\n return errorObject;\n }\n}\nexport function tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n//# sourceMappingURL=tryCatch.js.map","function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n}\nUnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { tryCatch } from './util/tryCatch';\nimport { errorObject } from './util/errorObject';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var hasErrors = false;\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n var index = -1;\n var len = _parents ? _parents.length : 0;\n while (_parent) {\n _parent.remove(this);\n _parent = ++index < len && _parents[index] || null;\n }\n if (isFunction(_unsubscribe)) {\n var trial = tryCatch(_unsubscribe).call(this);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || (errorObject.e instanceof UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject.e.errors) : [errorObject.e]);\n }\n }\n if (isArray(_subscriptions)) {\n index = -1;\n len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n var trial = tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || [];\n var err = errorObject.e;\n if (err instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n }\n if (hasErrors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n if (teardown === this) {\n return this;\n }\n var subscription = teardown;\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (typeof subscription._addParent !== 'function') {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n var subscriptions = this._subscriptions || (this._subscriptions = []);\n subscriptions.push(subscription);\n subscription._addParent(this);\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.prototype._addParent = function (parent) {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n if (!_parent || _parent === parent) {\n this._parent = parent;\n }\n else if (!_parents) {\n this._parents = [parent];\n }\n else if (_parents.indexOf(parent) === -1) {\n _parents.push(parent);\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","export var rxSubscriber = typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n _this._parentSubscription = null;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n this._parentSubscription = null;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","export var observable = typeof Symbol === 'function' && Symbol.observable || '@@observable';\n//# sourceMappingURL=observable.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { noop } from './noop';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (!fns) {\n return noop;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from '../internal/symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n operator.call(sink, this.source);\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map","function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n}\nObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map","import * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = (function (_super) {\n tslib_1.__extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n else {\n this._connection = connection;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nvar connectableProto = ConnectableObservable.prototype;\nexport var connectableObservableDescriptor = {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n};\nvar ConnectableSubscriber = (function (_super) {\n tslib_1.__extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nexport function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nvar GroupByOperator = (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\nvar GroupBySubscriber = (function (_super) {\n tslib_1.__extends(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = new Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new Subject());\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(Subscriber));\nvar GroupDurationSubscriber = (function (_super) {\n tslib_1.__extends(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(Subscriber));\nvar GroupedObservable = (function (_super) {\n tslib_1.__extends(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new Subscription();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(Observable));\nexport { GroupedObservable };\nvar InnerRefCountSubscription = (function (_super) {\n tslib_1.__extends(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(Subscription));\n//# sourceMappingURL=groupBy.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = (function (_super) {\n tslib_1.__extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","var Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nexport function emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","export var subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n if (!subscriber.closed) {\n subscriber.complete();\n }\n}; };\n//# sourceMappingURL=subscribeToArray.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToArray } from '../util/subscribeToArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromArray.js.map","import { Observable } from '../Observable';\nexport function scalar(value) {\n var result = new Observable(function (subscriber) {\n subscriber.next(value);\n subscriber.complete();\n });\n result._isScalar = true;\n result.value = value;\n return result;\n}\n//# sourceMappingURL=scalar.js.map","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { empty } from './empty';\nimport { scalar } from './scalar';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n }\n else {\n scheduler = undefined;\n }\n switch (args.length) {\n case 0:\n return empty(scheduler);\n case 1:\n return scheduler ? fromArray(args, scheduler) : scalar(args[0]);\n default:\n return fromArray(args, scheduler);\n }\n}\n//# sourceMappingURL=of.js.map","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = (function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { Subscription } from './Subscription';\nvar AsyncSubject = (function (_super) {\n tslib_1.__extends(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.value = null;\n _this.hasNext = false;\n _this.hasCompleted = false;\n return _this;\n }\n AsyncSubject.prototype._subscribe = function (subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return _super.prototype._subscribe.call(this, subscriber);\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n };\n AsyncSubject.prototype.error = function (error) {\n if (!this.hasCompleted) {\n _super.prototype.error.call(this, error);\n }\n };\n AsyncSubject.prototype.complete = function () {\n this.hasCompleted = true;\n if (this.hasNext) {\n _super.prototype.next.call(this, this.value);\n }\n _super.prototype.complete.call(this);\n };\n return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map","var nextHandle = 1;\nvar tasksByHandle = {};\nfunction runIfPresent(handle) {\n var cb = tasksByHandle[handle];\n if (cb) {\n cb();\n }\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n tasksByHandle[handle] = cb;\n Promise.resolve().then(function () { return runIfPresent(handle); });\n return handle;\n },\n clearImmediate: function (handle) {\n delete tasksByHandle[handle];\n },\n};\n//# sourceMappingURL=Immediate.js.map","import * as tslib_1 from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nvar AsapAction = (function (_super) {\n tslib_1.__extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n tslib_1.__extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asap = new AsapScheduler(AsapAction);\n//# sourceMappingURL=asap.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = (function (_super) {\n tslib_1.__extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n tslib_1.__extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n tslib_1.__extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error, action;\n while ((action = actions.shift()) && (this.frame = action.delay) <= maxFrames) {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n tslib_1.__extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = scheduler.index += 1; }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map","function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n}\nArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n}\nEmptyErrorImpl.prototype = Object.create(Error.prototype);\nexport var EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map","function TimeoutErrorImpl() {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n}\nTimeoutErrorImpl.prototype = Object.create(Error.prototype);\nexport var TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: subject,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n };\n return new Observable(function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n var state = {\n args: args, subscriber: subscriber, params: params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var self = this;\n var args = state.args, subscriber = state.subscriber, params = state.params;\n var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n var value = state.value, subject = state.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n var err = state.err, subject = state.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nexport function bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this,\n };\n return new Observable(function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n subject.error(err);\n return;\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var params = state.params, subscriber = state.subscriber, context = state.context;\n var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n }\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n var value = arg.value, subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(arg) {\n var err = arg.err, subject = arg.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = (function (_super) {\n tslib_1.__extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = (function (_super) {\n tslib_1.__extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map","import { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (result instanceof Observable) {\n return function (subscriber) {\n if (result._isScalar) {\n subscriber.next(result.value);\n subscriber.complete();\n return undefined;\n }\n else {\n return result.subscribe(subscriber);\n }\n };\n }\n else if (result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {\n if (destination === void 0) { destination = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }\n if (destination.closed) {\n return;\n }\n return subscribeTo(result)(destination);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = null;\n var scheduler = null;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = (function (_super) {\n tslib_1.__extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToPromise } from '../util/subscribeToPromise';\nexport function fromPromise(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToPromise(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromPromise.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { subscribeToIterable } from '../util/subscribeToIterable';\nexport function fromIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n if (!scheduler) {\n return new Observable(subscribeToIterable(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { subscribeToObservable } from '../util/subscribeToObservable';\nexport function fromObservable(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToObservable(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromObservable.js.map","import { Observable } from '../Observable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isIterable } from '../util/isIterable';\nimport { fromArray } from './fromArray';\nimport { fromPromise } from './fromPromise';\nimport { fromIterable } from './fromIterable';\nimport { fromObservable } from './fromObservable';\nimport { subscribeTo } from '../util/subscribeTo';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return fromPromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return fromArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return fromIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=from.js.map","import * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = (function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { isScheduler } from '../util/isScheduler';\nimport { of } from './of';\nimport { from } from './from';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1 || (observables.length === 2 && isScheduler(observables[1]))) {\n return from(observables[0]);\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { map } from '../operators/map';\nexport function forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var resultSelector;\n if (typeof sources[sources.length - 1] === 'function') {\n resultSelector = sources.pop();\n }\n if (sources.length === 1 && isArray(sources[0])) {\n sources = sources[0];\n }\n if (sources.length === 0) {\n return EMPTY;\n }\n if (resultSelector) {\n return forkJoin(sources).pipe(map(function (args) { return resultSelector.apply(void 0, args); }));\n }\n return new Observable(function (subscriber) {\n return new ForkJoinSubscriber(subscriber, sources);\n });\n}\nvar ForkJoinSubscriber = (function (_super) {\n tslib_1.__extends(ForkJoinSubscriber, _super);\n function ForkJoinSubscriber(destination, sources) {\n var _this = _super.call(this, destination) || this;\n _this.sources = sources;\n _this.completed = 0;\n _this.haveValues = 0;\n var len = sources.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n var source = sources[i];\n var innerSubscription = subscribeToResult(_this, source, null, i);\n if (innerSubscription) {\n _this.add(innerSubscription);\n }\n }\n return _this;\n }\n ForkJoinSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n if (!innerSub._hasValue) {\n innerSub._hasValue = true;\n this.haveValues++;\n }\n };\n ForkJoinSubscriber.prototype.notifyComplete = function (innerSub) {\n var _a = this, destination = _a.destination, haveValues = _a.haveValues, values = _a.values;\n var len = values.length;\n if (!innerSub._hasValue) {\n destination.complete();\n return;\n }\n this.completed++;\n if (this.completed !== len) {\n return;\n }\n if (haveValues === len) {\n destination.next(values);\n }\n destination.complete();\n };\n return ForkJoinSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=forkJoin.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = Object.prototype.toString;\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map","import { Observable } from '../Observable';\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n var resultSelector;\n var initialState;\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity;\n scheduler = options.scheduler;\n }\n else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions;\n resultSelector = identity;\n scheduler = resultSelectorOrObservable;\n }\n else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrObservable;\n }\n return new Observable(function (subscriber) {\n var state = initialState;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n do {\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n var value = void 0;\n try {\n value = resultSelector(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n return undefined;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, condition = state.condition;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n }\n else {\n state.needIterate = true;\n }\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n var value;\n try {\n value = state.resultSelector(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map","import { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = EMPTY; }\n if (falseResult === void 0) { falseResult = EMPTY; }\n return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map","import { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = async; }\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, counter = state.counter, period = state.period;\n subscriber.next(counter);\n this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nexport function onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 0) {\n return EMPTY;\n }\n var first = sources[0], remainder = sources.slice(1);\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n return new Observable(function (subscriber) {\n var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n return from(first).subscribe({\n next: function (value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function pairs(obj, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n }\n else {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new Subscription();\n subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n return subscription;\n });\n }\n}\nexport function dispatch(state) {\n var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n }\n else {\n subscriber.complete();\n }\n }\n}\n//# sourceMappingURL=pairs.js.map","import * as tslib_1 from \"tslib\";\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n }\n else {\n return observables[0];\n }\n }\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = (function () {\n function RaceOperator() {\n }\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n return RaceOperator;\n}());\nexport { RaceOperator };\nvar RaceSubscriber = (function (_super) {\n tslib_1.__extends(RaceSubscriber, _super);\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = subscribeToResult(this, observable, observable, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n };\n RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n };\n return RaceSubscriber;\n}(OuterSubscriber));\nexport { RaceSubscriber };\n//# sourceMappingURL=race.js.map","import { Observable } from '../Observable';\nexport function range(start, count, scheduler) {\n if (start === void 0) { start = 0; }\n if (count === void 0) { count = 0; }\n return new Observable(function (subscriber) {\n var index = 0;\n var current = start;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index, count: count, start: start, subscriber: subscriber\n });\n }\n else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n return undefined;\n });\n}\nexport function dispatch(state) {\n var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(start);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}\n//# sourceMappingURL=range.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n var period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n var due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period: period, subscriber: subscriber\n });\n });\n}\nfunction dispatch(state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function using(resourceFactory, observableFactory) {\n return new Observable(function (subscriber) {\n var resource;\n try {\n resource = resourceFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var result;\n try {\n result = observableFactory(resource);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = result ? from(result) : EMPTY;\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=using.js.map","import * as tslib_1 from \"tslib\";\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = (function () {\n function ZipOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n };\n return ZipOperator;\n}());\nexport { ZipOperator };\nvar ZipSubscriber = (function (_super) {\n tslib_1.__extends(ZipSubscriber, _super);\n function ZipSubscriber(destination, resultSelector, values) {\n if (values === void 0) { values = Object.create(null); }\n var _this = _super.call(this, destination) || this;\n _this.iterators = [];\n _this.active = 0;\n _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;\n _this.values = values;\n return _this;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n var destination = this.destination;\n destination.add(iterator.subscribe(iterator, i));\n }\n else {\n this.active--;\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryresultSelector = function (args) {\n var result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(Subscriber));\nexport { ZipSubscriber };\nvar StaticIterator = (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return nextResult && nextResult.done;\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\nvar ZipBufferIterator = (function (_super) {\n tslib_1.__extends(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n _this.observable = observable;\n _this.stillUnsubscribed = true;\n _this.buffer = [];\n _this.isComplete = false;\n return _this;\n }\n ZipBufferIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function (value, index) {\n return subscribeToResult(this, this.observable, this, index);\n };\n return ZipBufferIterator;\n}(OuterSubscriber));\n//# sourceMappingURL=zip.js.map","import * as tslib_1 from \"tslib\";\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nvar AuditOperator = (function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n return AuditOperator;\n}());\nvar AuditSubscriber = (function (_super) {\n tslib_1.__extends(AuditSubscriber, _super);\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n var duration = tryCatch(this.durationSelector)(value);\n if (duration === errorObject) {\n this.destination.error(errorObject.e);\n }\n else {\n var innerSubscription = subscribeToResult(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n }\n };\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n this.clearThrottle();\n };\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n return AuditSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=audit.js.map","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\nvar BufferOperator = (function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n return BufferOperator;\n}());\nvar BufferSubscriber = (function (_super) {\n tslib_1.__extends(BufferSubscriber, _super);\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n _this.buffer = [];\n _this.add(subscribeToResult(_this, closingNotifier));\n return _this;\n }\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n return BufferSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=buffer.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n tslib_1.__extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = (function (_super) {\n tslib_1.__extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n var bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n var maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nvar BufferTimeOperator = (function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n return BufferTimeOperator;\n}());\nvar Context = (function () {\n function Context() {\n this.buffer = [];\n }\n return Context;\n}());\nvar BufferTimeSubscriber = (function (_super) {\n tslib_1.__extends(BufferTimeSubscriber, _super);\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n var context = _this.openContext();\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (_this.timespanOnly) {\n var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n var closeState = { subscriber: _this, context: context };\n var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n return _this;\n }\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n _super.prototype._error.call(this, err);\n };\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this, contexts = _a.contexts, destination = _a.destination;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n return BufferTimeSubscriber;\n}(Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber, context = arg.context;\n subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nexport function bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\nvar BufferToggleOperator = (function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = (function (_super) {\n tslib_1.__extends(BufferToggleSubscriber, _super);\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(subscribeToResult(_this, openings));\n return _this;\n }\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n this.contexts = null;\n _super.prototype._error.call(this, err);\n };\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n this.contexts = null;\n _super.prototype._complete.call(this);\n };\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n }\n catch (err) {\n this._error(err);\n }\n };\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n if (contexts && context) {\n var buffer = context.buffer, subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new Subscription();\n var context = { buffer: buffer, subscription: subscription };\n contexts.push(context);\n var innerSubscription = subscribeToResult(this, closingNotifier, context);\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n }\n else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n return BufferToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\nvar BufferWhenOperator = (function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = (function (_super) {\n tslib_1.__extends(BufferWhenSubscriber, _super);\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n _this.openBuffer();\n return _this;\n }\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = null;\n this.subscribing = false;\n };\n BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openBuffer();\n };\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n }\n else {\n this.openBuffer();\n }\n };\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n var buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n this.buffer = [];\n var closingNotifier = tryCatch(this.closingSelector)();\n if (closingNotifier === errorObject) {\n this.error(errorObject.e);\n }\n else {\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(subscribeToResult(this, closingNotifier));\n this.subscribing = false;\n }\n };\n return BufferWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n tslib_1.__extends(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n }\n };\n return CatchSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=catchError.js.map","import { CombineLatestOperator } from '../observable/combineLatest';\nexport function combineAll(project) {\n return function (source) { return source.lift(new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineAll.js.map","import { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nvar none = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var project = null;\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0].slice();\n }\n return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineLatest.js.map","import { concat as concatStatic } from '../observable/concat';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=concat.js.map","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n//# sourceMappingURL=concatMap.js.map","import { concatMap } from './concatMap';\nexport function concatMapTo(innerObservable, resultSelector) {\n return concatMap(function () { return innerObservable; }, resultSelector);\n}\n//# sourceMappingURL=concatMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function count(predicate) {\n return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = (function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n return CountOperator;\n}());\nvar CountSubscriber = (function (_super) {\n tslib_1.__extends(CountSubscriber, _super);\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n }\n else {\n this.count++;\n }\n };\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n try {\n result = this.predicate(value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.count++;\n }\n };\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n return CountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=count.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function debounce(durationSelector) {\n return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = (function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n return DebounceOperator;\n}());\nvar DebounceSubscriber = (function (_super) {\n tslib_1.__extends(DebounceSubscriber, _super);\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n _this.durationSubscription = null;\n return _this;\n }\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = subscribeToResult(this, duration);\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = null;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = null;\n this.hasValue = false;\n _super.prototype._next.call(this, value);\n }\n };\n return DebounceSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=debounce.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n tslib_1.__extends(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n tslib_1.__extends(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n tslib_1.__extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = (function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = (function (_super) {\n tslib_1.__extends(DelayWhenSubscriber, _super);\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n };\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n return subscription.outerValue;\n };\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n if (notifierSubscription && !notifierSubscription.closed) {\n var destination = this.destination;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n return DelayWhenSubscriber;\n}(OuterSubscriber));\nvar SubscriptionDelayObservable = (function (_super) {\n tslib_1.__extends(SubscriptionDelayObservable, _super);\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n return SubscriptionDelayObservable;\n}(Observable));\nvar SubscriptionDelaySubscriber = (function (_super) {\n tslib_1.__extends(SubscriptionDelaySubscriber, _super);\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.unsubscribe();\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n return SubscriptionDelaySubscriber;\n}(Subscriber));\n//# sourceMappingURL=delayWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nvar DeMaterializeOperator = (function () {\n function DeMaterializeOperator() {\n }\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = (function (_super) {\n tslib_1.__extends(DeMaterializeSubscriber, _super);\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n return DeMaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=dematerialize.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function distinct(keySelector, flushes) {\n return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = (function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n return DistinctOperator;\n}());\nvar DistinctSubscriber = (function (_super) {\n tslib_1.__extends(DistinctSubscriber, _super);\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.values = new Set();\n if (flushes) {\n _this.add(subscribeToResult(_this, flushes));\n }\n return _this;\n }\n DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values.clear();\n };\n DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n }\n else {\n this._finalizeNext(value, value);\n }\n };\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n };\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n return DistinctSubscriber;\n}(OuterSubscriber));\nexport { DistinctSubscriber };\n//# sourceMappingURL=distinct.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var keySelector = this.keySelector;\n var key = value;\n if (keySelector) {\n key = tryCatch(this.keySelector)(value);\n if (key === errorObject) {\n return this.destination.error(errorObject.e);\n }\n }\n var result = false;\n if (this.hasKey) {\n result = tryCatch(this.compare)(this.key, key);\n if (result === errorObject) {\n return this.destination.error(errorObject.e);\n }\n }\n else {\n this.hasKey = true;\n }\n if (Boolean(result) === false) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map","import { tap } from './tap';\nimport { EmptyError } from '../util/EmptyError';\nexport var throwIfEmpty = function (errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return tap({\n hasValue: false,\n next: function () { this.hasValue = true; },\n complete: function () {\n if (!this.hasValue) {\n throw errorFactory();\n }\n }\n });\n};\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map","import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue\n ? defaultIfEmpty(defaultValue)\n : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); })); };\n}\n//# sourceMappingURL=elementAt.js.map","import { fromArray } from '../observable/fromArray';\nimport { scalar } from '../observable/scalar';\nimport { empty } from '../observable/empty';\nimport { concat as concatStatic } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function endWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return function (source) {\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len === 1 && !scheduler) {\n return concatStatic(source, scalar(array[0]));\n }\n else if (len > 0) {\n return concatStatic(source, fromArray(array, scheduler));\n }\n else {\n return concatStatic(source, empty(scheduler));\n }\n };\n}\n//# sourceMappingURL=endWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function every(predicate, thisArg) {\n return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = (function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n return EveryOperator;\n}());\nvar EverySubscriber = (function (_super) {\n tslib_1.__extends(EverySubscriber, _super);\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (!result) {\n this.notifyComplete(false);\n }\n };\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return EverySubscriber;\n}(Subscriber));\n//# sourceMappingURL=every.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function exhaust() {\n return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = (function () {\n function SwitchFirstOperator() {\n }\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = (function (_super) {\n tslib_1.__extends(SwitchFirstSubscriber, _super);\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(subscribeToResult(this, value));\n }\n };\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return SwitchFirstSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaust.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) {\n return source.lift(new ExhauseMapOperator(project));\n };\n}\nvar ExhauseMapOperator = (function () {\n function ExhauseMapOperator(project) {\n this.project = project;\n }\n ExhauseMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n return ExhauseMapOperator;\n}());\nvar ExhaustMapSubscriber = (function (_super) {\n tslib_1.__extends(ExhaustMapSubscriber, _super);\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result, value, index);\n };\n ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, result, value, index, innerSubscriber);\n };\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return ExhaustMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaustMap.js.map","import * as tslib_1 from \"tslib\";\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function expand(project, concurrent, scheduler) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (scheduler === void 0) { scheduler = undefined; }\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = (function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n return ExpandOperator;\n}());\nexport { ExpandOperator };\nvar ExpandSubscriber = (function (_super) {\n tslib_1.__extends(ExpandSubscriber, _super);\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n return _this;\n }\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (destination.closed) {\n this._complete();\n return;\n }\n var index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n var result = tryCatch(this.project)(value, index);\n if (result === errorObject) {\n destination.error(errorObject.e);\n }\n else if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n }\n else {\n var state = { subscriber: this, result: result, value: value, index: index };\n var destination_1 = this.destination;\n destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n var destination = this.destination;\n destination.add(subscribeToResult(this, result, value, index));\n };\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this._next(innerValue);\n };\n ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n return ExpandSubscriber;\n}(OuterSubscriber));\nexport { ExpandSubscriber };\n//# sourceMappingURL=expand.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n tslib_1.__extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = (function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n return FindValueOperator;\n}());\nexport { FindValueOperator };\nvar FindValueSubscriber = (function (_super) {\n tslib_1.__extends(FindValueSubscriber, _super);\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n var index = this.index++;\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n return FindValueSubscriber;\n}(Subscriber));\nexport { FindValueSubscriber };\n//# sourceMappingURL=find.js.map","import { FindValueOperator } from '../operators/find';\nexport function findIndex(predicate, thisArg) {\n return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=first.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nvar IgnoreElementsOperator = (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = (function (_super) {\n tslib_1.__extends(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n };\n return IgnoreElementsSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ignoreElements.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function isEmpty() {\n return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = (function () {\n function IsEmptyOperator() {\n }\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = (function (_super) {\n tslib_1.__extends(IsEmptySubscriber, _super);\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return IsEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=isEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nvar TakeLastOperator = (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n tslib_1.__extends(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeLast.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=last.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nvar MaterializeOperator = (function () {\n function MaterializeOperator() {\n }\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n return MaterializeOperator;\n}());\nvar MaterializeSubscriber = (function (_super) {\n tslib_1.__extends(MaterializeSubscriber, _super);\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(Notification.createNext(value));\n };\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n };\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n };\n return MaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=materialize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n tslib_1.__extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function () {\n return this._seed;\n },\n set: function (value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n };\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map","import { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source);\n };\n}\n//# sourceMappingURL=reduce.js.map","import { reduce } from './reduce';\nexport function max(comparer) {\n var max = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n : function (x, y) { return x > y ? x : y; };\n return reduce(max);\n}\n//# sourceMappingURL=max.js.map","import { merge as mergeStatic } from '../observable/merge';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=merge.js.map","import { mergeMap } from './mergeMap';\nexport function mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nexport function mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = (function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n return MergeScanOperator;\n}());\nexport { MergeScanOperator };\nvar MergeScanSubscriber = (function (_super) {\n tslib_1.__extends(MergeScanSubscriber, _super);\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var ish = tryCatch(this.accumulator)(this.acc, value);\n var destination = this.destination;\n if (ish === errorObject) {\n destination.error(errorObject.e);\n }\n else {\n this.active++;\n this._innerSub(ish, value, index);\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n return MergeScanSubscriber;\n}(OuterSubscriber));\nexport { MergeScanSubscriber };\n//# sourceMappingURL=mergeScan.js.map","import { reduce } from './reduce';\nexport function min(comparer) {\n var min = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n : function (x, y) { return x < y ? x : y; };\n return reduce(min);\n}\n//# sourceMappingURL=min.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map","import * as tslib_1 from \"tslib\";\nimport { from } from '../observable/from';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function onErrorResumeNext() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nexport function onErrorResumeNextStatic() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n var source = null;\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n source = nextSources.shift();\n return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = (function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n tslib_1.__extends(OnErrorResumeNextSubscriber, _super);\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n if (next) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, next, undefined, undefined, innerSubscriber);\n }\n else {\n this.destination.complete();\n }\n };\n return OnErrorResumeNextSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=onErrorResumeNext.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function pairwise() {\n return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = (function () {\n function PairwiseOperator() {\n }\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n return PairwiseOperator;\n}());\nvar PairwiseSubscriber = (function (_super) {\n tslib_1.__extends(PairwiseSubscriber, _super);\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasPrev = false;\n return _this;\n }\n PairwiseSubscriber.prototype._next = function (value) {\n if (this.hasPrev) {\n this.destination.next([this.prev, value]);\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n };\n return PairwiseSubscriber;\n}(Subscriber));\n//# sourceMappingURL=pairwise.js.map","export function not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\n//# sourceMappingURL=not.js.map","import { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n return function (source) { return [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg))(source)\n ]; };\n}\n//# sourceMappingURL=partition.js.map","import { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map","import { Subject } from '../Subject';\nimport { multicast } from './multicast';\nexport function publish(selector) {\n return selector ?\n multicast(function () { return new Subject(); }, selector) :\n multicast(new Subject());\n}\n//# sourceMappingURL=publish.js.map","import { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nexport function publishBehavior(value) {\n return function (source) { return multicast(new BehaviorSubject(value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map","import { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nexport function publishLast() {\n return function (source) { return multicast(new AsyncSubject())(source); };\n}\n//# sourceMappingURL=publishLast.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nexport function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n return function (source) { return multicast(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map","import { isArray } from '../util/isArray';\nimport { race as raceStatic } from '../observable/race';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=race.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { empty } from '../observable/empty';\nexport function repeat(count) {\n if (count === void 0) { count = -1; }\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n }\n else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\nvar RepeatOperator = (function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n return RepeatOperator;\n}());\nvar RepeatSubscriber = (function (_super) {\n tslib_1.__extends(RepeatSubscriber, _super);\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.complete.call(this);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RepeatSubscriber;\n}(Subscriber));\n//# sourceMappingURL=repeat.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function repeatWhen(notifier) {\n return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = (function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = (function (_super) {\n tslib_1.__extends(RepeatWhenSubscriber, _super);\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n this._unsubscribeAndRecycle();\n this.notifications.next();\n }\n };\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n _super.prototype._unsubscribeAndRecycle.call(this);\n this._unsubscribe = _unsubscribe;\n return this;\n };\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new Subject();\n var retries = tryCatch(this.notifier)(this.notifications);\n if (retries === errorObject) {\n return _super.prototype.complete.call(this);\n }\n this.retries = retries;\n this.retriesSubscription = subscribeToResult(this, retries);\n };\n return RepeatWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=repeatWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function retry(count) {\n if (count === void 0) { count = -1; }\n return function (source) { return source.lift(new RetryOperator(count, source)); };\n}\nvar RetryOperator = (function () {\n function RetryOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n };\n return RetryOperator;\n}());\nvar RetrySubscriber = (function (_super) {\n tslib_1.__extends(RetrySubscriber, _super);\n function RetrySubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RetrySubscriber;\n}(Subscriber));\n//# sourceMappingURL=retry.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function retryWhen(notifier) {\n return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = (function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = (function (_super) {\n tslib_1.__extends(RetryWhenSubscriber, _super);\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n return _this;\n }\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n if (!retries) {\n errors = new Subject();\n retries = tryCatch(this.notifier)(errors);\n if (retries === errorObject) {\n return _super.prototype.error.call(this, errorObject.e);\n }\n retriesSubscription = subscribeToResult(this, retries);\n }\n else {\n this.errors = null;\n this.retriesSubscription = null;\n }\n this._unsubscribeAndRecycle();\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n if (errors) {\n errors.unsubscribe();\n this.errors = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n return RetryWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=retryWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n tslib_1.__extends(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=sample.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = (function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = (function (_super) {\n tslib_1.__extends(SampleTimeSubscriber, _super);\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n return _this;\n }\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n return SampleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber, period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nexport function sequenceEqual(compareTo, comparor) {\n return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparor)); };\n}\nvar SequenceEqualOperator = (function () {\n function SequenceEqualOperator(compareTo, comparor) {\n this.compareTo = compareTo;\n this.comparor = comparor;\n }\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparor));\n };\n return SequenceEqualOperator;\n}());\nexport { SequenceEqualOperator };\nvar SequenceEqualSubscriber = (function (_super) {\n tslib_1.__extends(SequenceEqualSubscriber, _super);\n function SequenceEqualSubscriber(destination, compareTo, comparor) {\n var _this = _super.call(this, destination) || this;\n _this.compareTo = compareTo;\n _this.comparor = comparor;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n return _this;\n }\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n }\n else {\n this._a.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n };\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor;\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n var b = _b.shift();\n var areEqual = false;\n if (comparor) {\n areEqual = tryCatch(comparor)(a, b);\n if (areEqual === errorObject) {\n this.destination.error(errorObject.e);\n }\n }\n else {\n areEqual = a === b;\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n }\n else {\n this._b.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype.completeB = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n };\n return SequenceEqualSubscriber;\n}(Subscriber));\nexport { SequenceEqualSubscriber };\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n return _this;\n }\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n this.unsubscribe();\n };\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent.completeB();\n this.unsubscribe();\n };\n return SequenceEqualCompareToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=sequenceEqual.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n return function (source) { return source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); };\n}\nfunction shareReplayOperator(bufferSize, windowTime, scheduler) {\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n return function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && refCount === 0 && isComplete) {\n subscription.unsubscribe();\n }\n };\n };\n}\n//# sourceMappingURL=shareReplay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nexport function single(predicate) {\n return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = (function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n return SingleOperator;\n}());\nvar SingleSubscriber = (function (_super) {\n tslib_1.__extends(SingleSubscriber, _super);\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n }\n else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n if (this.predicate) {\n this.tryNext(value, index);\n }\n else {\n this.applySingleValue(value);\n }\n };\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n }\n else {\n destination.error(new EmptyError);\n }\n };\n return SingleSubscriber;\n}(Subscriber));\n//# sourceMappingURL=single.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n tslib_1.__extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nexport function skipLast(count) {\n return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = (function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new Subscriber(subscriber));\n }\n else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n return SkipLastOperator;\n}());\nvar SkipLastSubscriber = (function (_super) {\n tslib_1.__extends(SkipLastSubscriber, _super);\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n if (count < skipCount) {\n this._ring[count] = value;\n }\n else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n return SkipLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipLast.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function skipUntil(notifier) {\n return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = (function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = (function (_super) {\n tslib_1.__extends(SkipUntilSubscriber, _super);\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n _this.hasValue = false;\n var innerSubscriber = new InnerSubscriber(_this, undefined, undefined);\n _this.add(innerSubscriber);\n _this.innerSubscription = innerSubscriber;\n subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);\n return _this;\n }\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n SkipUntilSubscriber.prototype.notifyComplete = function () {\n };\n return SkipUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=skipUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = (function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = (function (_super) {\n tslib_1.__extends(SkipWhileSubscriber, _super);\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n };\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n return SkipWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipWhile.js.map","import { fromArray } from '../observable/fromArray';\nimport { scalar } from '../observable/scalar';\nimport { empty } from '../observable/empty';\nimport { concat as concatStatic } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return function (source) {\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len === 1 && !scheduler) {\n return concatStatic(scalar(array[0]), source);\n }\n else if (len > 0) {\n return concatStatic(fromArray(array, scheduler), source);\n }\n else {\n return concatStatic(empty(scheduler), source);\n }\n };\n}\n//# sourceMappingURL=startWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\nvar SubscribeOnObservable = (function (_super) {\n tslib_1.__extends(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) { delayTime = 0; }\n if (scheduler === void 0) { scheduler = asap; }\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n if (!isNumeric(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = asap;\n }\n return _this;\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) { delay = 0; }\n if (scheduler === void 0) { scheduler = asap; }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(Observable));\nexport { SubscribeOnObservable };\n//# sourceMappingURL=SubscribeOnObservable.js.map","import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nvar SubscribeOnOperator = (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n tslib_1.__extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber);\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map","import { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = (function (_super) {\n tslib_1.__extends(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate) {\n return function (source) { return source.lift(new TakeWhileOperator(predicate)); };\n}\nvar TakeWhileOperator = (function () {\n function TakeWhileOperator(predicate) {\n this.predicate = predicate;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = (function (_super) {\n tslib_1.__extends(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n tslib_1.__extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = async; }\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };\n}\nvar ThrottleTimeOperator = (function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = (function (_super) {\n tslib_1.__extends(ThrottleTimeSubscriber, _super);\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n }\n };\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n };\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n return ThrottleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map","import { async } from '../scheduler/async';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\nexport function timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return defer(function () {\n return source.pipe(scan(function (_a, value) {\n var current = _a.current;\n return ({ value: value, current: scheduler.now(), last: current });\n }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {\n var current = _a.current, last = _a.last, value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n }); };\n}\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) {\n var absoluteTimeout = isDate(due);\n var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\nvar TimeoutWithOperator = (function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = (function (_super) {\n tslib_1.__extends(TimeoutWithSubscriber, _super);\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n _this.action = null;\n _this.scheduleTimeout();\n return _this;\n }\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(subscribeToResult(subscriber, withObservable));\n };\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n }\n else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n _super.prototype._next.call(this, value);\n };\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = null;\n this.scheduler = null;\n this.withObservable = null;\n };\n return TimeoutWithSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=timeoutWith.js.map","import { async } from '../scheduler/async';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\nexport function timeout(due, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map","import { async } from '../scheduler/async';\nimport { map } from './map';\nexport function timestamp(scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return map(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = (function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n return Timestamp;\n}());\nexport { Timestamp };\n//# sourceMappingURL=timestamp.js.map","import { reduce } from './reduce';\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nexport function toArray() {\n return reduce(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.window = new Subject();\n destination.next(_this.window);\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow();\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this._complete();\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var destination = this.destination;\n var newWindow = this.window = new Subject();\n destination.next(newWindow);\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=window.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\nexport function windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) { startWindowEvery = 0; }\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\nvar WindowCountOperator = (function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n return WindowCountOperator;\n}());\nvar WindowCountSubscriber = (function (_super) {\n tslib_1.__extends(WindowCountSubscriber, _super);\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new Subject()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n var c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new Subject();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n };\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n };\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n return WindowCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=windowCount.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function windowTime(windowTimeSpan) {\n var scheduler = async;\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n }\n else if (isNumeric(arguments[2])) {\n maxWindowSize = arguments[2];\n }\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n }\n else if (isNumeric(arguments[1])) {\n windowCreationInterval = arguments[1];\n }\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\nvar WindowTimeOperator = (function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n return WindowTimeOperator;\n}());\nvar CountedSubject = (function (_super) {\n tslib_1.__extends(CountedSubject, _super);\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._numberOfNextedValues = 0;\n return _this;\n }\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n _super.prototype.next.call(this, value);\n };\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function () {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(Subject));\nvar WindowTimeSubscriber = (function (_super) {\n tslib_1.__extends(WindowTimeSubscriber, _super);\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowTimeSpan = windowTimeSpan;\n _this.windowCreationInterval = windowCreationInterval;\n _this.maxWindowSize = maxWindowSize;\n _this.scheduler = scheduler;\n _this.windows = [];\n var window = _this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = { subscriber: _this, window: window, context: null };\n var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n }\n else {\n var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n return _this;\n }\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n if (!window_1.closed) {\n window_1.next(value);\n if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n };\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n while (windows.length > 0) {\n var window_2 = windows.shift();\n if (!window_2.closed) {\n window_2.complete();\n }\n }\n this.destination.complete();\n };\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n window.complete();\n var windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n };\n return WindowTimeSubscriber;\n}(Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = { action: action, subscription: null };\n var timeSpanState = { subscriber: subscriber, window: window, context: context };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber, window = state.window, context = state.context;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = (function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = (function (_super) {\n tslib_1.__extends(WindowToggleSubscriber, _super);\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n return _this;\n }\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n if (contexts) {\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n _super.prototype._error.call(this, err);\n };\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n _super.prototype._complete.call(this);\n };\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingSelector = this.closingSelector;\n var closingNotifier = tryCatch(closingSelector)(innerValue);\n if (closingNotifier === errorObject) {\n return this.error(errorObject.e);\n }\n else {\n var window_1 = new Subject();\n var subscription = new Subscription();\n var context_4 = { window: window_1, subscription: subscription };\n this.contexts.push(context_4);\n var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n }\n else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n this.destination.next(window_1);\n }\n }\n else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window, subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n return WindowToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n _this.openWindow();\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) { innerSub = null; }\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var window = this.window = new Subject();\n this.destination.next(window);\n var closingNotifier = tryCatch(this.closingSelector)();\n if (closingNotifier === errorObject) {\n var err = errorObject.e;\n this.destination.error(err);\n this.window.error(err);\n }\n else {\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n }\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n tslib_1.__extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map","import { zip as zipStatic } from '../observable/zip';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=zip.js.map","import { ZipOperator } from '../observable/zip';\nexport function zipAll(project) {\n return function (source) { return source.lift(new ZipOperator(project)); };\n}\n//# sourceMappingURL=zipAll.js.map","var SubscriptionLog = (function () {\n function SubscriptionLog(subscribedFrame, unsubscribedFrame) {\n if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; }\n this.subscribedFrame = subscribedFrame;\n this.unsubscribedFrame = unsubscribedFrame;\n }\n return SubscriptionLog;\n}());\nexport { SubscriptionLog };\n//# sourceMappingURL=SubscriptionLog.js.map","import { SubscriptionLog } from './SubscriptionLog';\nvar SubscriptionLoggable = (function () {\n function SubscriptionLoggable() {\n this.subscriptions = [];\n }\n SubscriptionLoggable.prototype.logSubscribedFrame = function () {\n this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));\n return this.subscriptions.length - 1;\n };\n SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {\n var subscriptionLogs = this.subscriptions;\n var oldSubscriptionLog = subscriptionLogs[index];\n subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());\n };\n return SubscriptionLoggable;\n}());\nexport { SubscriptionLoggable };\n//# sourceMappingURL=SubscriptionLoggable.js.map","export function applyMixins(derivedCtor, baseCtors) {\n for (var i = 0, len = baseCtors.length; i < len; i++) {\n var baseCtor = baseCtors[i];\n var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);\n for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {\n var name_1 = propertyKeys[j];\n derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];\n }\n }\n}\n//# sourceMappingURL=applyMixins.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar ColdObservable = (function (_super) {\n tslib_1.__extends(ColdObservable, _super);\n function ColdObservable(messages, scheduler) {\n var _this = _super.call(this, function (subscriber) {\n var observable = this;\n var index = observable.logSubscribedFrame();\n var subscription = new Subscription();\n subscription.add(new Subscription(function () {\n observable.logUnsubscribedFrame(index);\n }));\n observable.scheduleMessages(subscriber);\n return subscription;\n }) || this;\n _this.messages = messages;\n _this.subscriptions = [];\n _this.scheduler = scheduler;\n return _this;\n }\n ColdObservable.prototype.scheduleMessages = function (subscriber) {\n var messagesLength = this.messages.length;\n for (var i = 0; i < messagesLength; i++) {\n var message = this.messages[i];\n subscriber.add(this.scheduler.schedule(function (_a) {\n var message = _a.message, subscriber = _a.subscriber;\n message.notification.observe(subscriber);\n }, message.frame, { message: message, subscriber: subscriber }));\n }\n };\n return ColdObservable;\n}(Observable));\nexport { ColdObservable };\napplyMixins(ColdObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=ColdObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar HotObservable = (function (_super) {\n tslib_1.__extends(HotObservable, _super);\n function HotObservable(messages, scheduler) {\n var _this = _super.call(this) || this;\n _this.messages = messages;\n _this.subscriptions = [];\n _this.scheduler = scheduler;\n return _this;\n }\n HotObservable.prototype._subscribe = function (subscriber) {\n var subject = this;\n var index = subject.logSubscribedFrame();\n var subscription = new Subscription();\n subscription.add(new Subscription(function () {\n subject.logUnsubscribedFrame(index);\n }));\n subscription.add(_super.prototype._subscribe.call(this, subscriber));\n return subscription;\n };\n HotObservable.prototype.setup = function () {\n var subject = this;\n var messagesLength = subject.messages.length;\n for (var i = 0; i < messagesLength; i++) {\n (function () {\n var message = subject.messages[i];\n subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);\n })();\n }\n };\n return HotObservable;\n}(Subject));\nexport { HotObservable };\napplyMixins(HotObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=HotObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Notification } from '../Notification';\nimport { ColdObservable } from './ColdObservable';\nimport { HotObservable } from './HotObservable';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler';\nimport { AsyncScheduler } from '../scheduler/AsyncScheduler';\nvar defaultMaxFrame = 750;\nvar TestScheduler = (function (_super) {\n tslib_1.__extends(TestScheduler, _super);\n function TestScheduler(assertDeepEqual) {\n var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this;\n _this.assertDeepEqual = assertDeepEqual;\n _this.hotObservables = [];\n _this.coldObservables = [];\n _this.flushTests = [];\n _this.runMode = false;\n return _this;\n }\n TestScheduler.prototype.createTime = function (marbles) {\n var indexOf = marbles.indexOf('|');\n if (indexOf === -1) {\n throw new Error('marble diagram for time should have a completion marker \"|\"');\n }\n return indexOf * TestScheduler.frameTimeFactor;\n };\n TestScheduler.prototype.createColdObservable = function (marbles, values, error) {\n if (marbles.indexOf('^') !== -1) {\n throw new Error('cold observable cannot have subscription offset \"^\"');\n }\n if (marbles.indexOf('!') !== -1) {\n throw new Error('cold observable cannot have unsubscription marker \"!\"');\n }\n var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n var cold = new ColdObservable(messages, this);\n this.coldObservables.push(cold);\n return cold;\n };\n TestScheduler.prototype.createHotObservable = function (marbles, values, error) {\n if (marbles.indexOf('!') !== -1) {\n throw new Error('hot observable cannot have unsubscription marker \"!\"');\n }\n var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n var subject = new HotObservable(messages, this);\n this.hotObservables.push(subject);\n return subject;\n };\n TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {\n var _this = this;\n var messages = [];\n observable.subscribe(function (value) {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) });\n }, function (err) {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) });\n }, function () {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() });\n });\n return messages;\n };\n TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {\n var _this = this;\n if (subscriptionMarbles === void 0) { subscriptionMarbles = null; }\n var actual = [];\n var flushTest = { actual: actual, ready: false };\n var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);\n var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?\n 0 : subscriptionParsed.subscribedFrame;\n var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;\n var subscription;\n this.schedule(function () {\n subscription = observable.subscribe(function (x) {\n var value = x;\n if (x instanceof Observable) {\n value = _this.materializeInnerObservable(value, _this.frame);\n }\n actual.push({ frame: _this.frame, notification: Notification.createNext(value) });\n }, function (err) {\n actual.push({ frame: _this.frame, notification: Notification.createError(err) });\n }, function () {\n actual.push({ frame: _this.frame, notification: Notification.createComplete() });\n });\n }, subscriptionFrame);\n if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);\n }\n this.flushTests.push(flushTest);\n var runMode = this.runMode;\n return {\n toBe: function (marbles, values, errorValue) {\n flushTest.ready = true;\n flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);\n }\n };\n };\n TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {\n var flushTest = { actual: actualSubscriptionLogs, ready: false };\n this.flushTests.push(flushTest);\n var runMode = this.runMode;\n return {\n toBe: function (marbles) {\n var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;\n flushTest.ready = true;\n flushTest.expected = marblesArray.map(function (marbles) {\n return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode);\n });\n }\n };\n };\n TestScheduler.prototype.flush = function () {\n var _this = this;\n var hotObservables = this.hotObservables;\n while (hotObservables.length > 0) {\n hotObservables.shift().setup();\n }\n _super.prototype.flush.call(this);\n this.flushTests = this.flushTests.filter(function (test) {\n if (test.ready) {\n _this.assertDeepEqual(test.actual, test.expected);\n return false;\n }\n return true;\n });\n };\n TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {\n var _this = this;\n if (runMode === void 0) { runMode = false; }\n if (typeof marbles !== 'string') {\n return new SubscriptionLog(Number.POSITIVE_INFINITY);\n }\n var len = marbles.length;\n var groupStart = -1;\n var subscriptionFrame = Number.POSITIVE_INFINITY;\n var unsubscriptionFrame = Number.POSITIVE_INFINITY;\n var frame = 0;\n var _loop_1 = function (i) {\n var nextFrame = frame;\n var advanceFrameBy = function (count) {\n nextFrame += count * _this.frameTimeFactor;\n };\n var c = marbles[i];\n switch (c) {\n case ' ':\n if (!runMode) {\n advanceFrameBy(1);\n }\n break;\n case '-':\n advanceFrameBy(1);\n break;\n case '(':\n groupStart = frame;\n advanceFrameBy(1);\n break;\n case ')':\n groupStart = -1;\n advanceFrameBy(1);\n break;\n case '^':\n if (subscriptionFrame !== Number.POSITIVE_INFINITY) {\n throw new Error('found a second subscription point \\'^\\' in a ' +\n 'subscription marble diagram. There can only be one.');\n }\n subscriptionFrame = groupStart > -1 ? groupStart : frame;\n advanceFrameBy(1);\n break;\n case '!':\n if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n throw new Error('found a second subscription point \\'^\\' in a ' +\n 'subscription marble diagram. There can only be one.');\n }\n unsubscriptionFrame = groupStart > -1 ? groupStart : frame;\n break;\n default:\n if (runMode && c.match(/^[0-9]$/)) {\n if (i === 0 || marbles[i - 1] === ' ') {\n var buffer = marbles.slice(i);\n var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n if (match) {\n i += match[0].length - 1;\n var duration = parseFloat(match[1]);\n var unit = match[2];\n var durationInMs = void 0;\n switch (unit) {\n case 'ms':\n durationInMs = duration;\n break;\n case 's':\n durationInMs = duration * 1000;\n break;\n case 'm':\n durationInMs = duration * 1000 * 60;\n break;\n default:\n break;\n }\n advanceFrameBy(durationInMs / this_1.frameTimeFactor);\n break;\n }\n }\n }\n throw new Error('there can only be \\'^\\' and \\'!\\' markers in a ' +\n 'subscription marble diagram. Found instead \\'' + c + '\\'.');\n }\n frame = nextFrame;\n out_i_1 = i;\n };\n var this_1 = this, out_i_1;\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n if (unsubscriptionFrame < 0) {\n return new SubscriptionLog(subscriptionFrame);\n }\n else {\n return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);\n }\n };\n TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {\n var _this = this;\n if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }\n if (runMode === void 0) { runMode = false; }\n if (marbles.indexOf('!') !== -1) {\n throw new Error('conventional marble diagrams cannot have the ' +\n 'unsubscription marker \"!\"');\n }\n var len = marbles.length;\n var testMessages = [];\n var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');\n var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);\n var getValue = typeof values !== 'object' ?\n function (x) { return x; } :\n function (x) {\n if (materializeInnerObservables && values[x] instanceof ColdObservable) {\n return values[x].messages;\n }\n return values[x];\n };\n var groupStart = -1;\n var _loop_2 = function (i) {\n var nextFrame = frame;\n var advanceFrameBy = function (count) {\n nextFrame += count * _this.frameTimeFactor;\n };\n var notification = void 0;\n var c = marbles[i];\n switch (c) {\n case ' ':\n if (!runMode) {\n advanceFrameBy(1);\n }\n break;\n case '-':\n advanceFrameBy(1);\n break;\n case '(':\n groupStart = frame;\n advanceFrameBy(1);\n break;\n case ')':\n groupStart = -1;\n advanceFrameBy(1);\n break;\n case '|':\n notification = Notification.createComplete();\n advanceFrameBy(1);\n break;\n case '^':\n advanceFrameBy(1);\n break;\n case '#':\n notification = Notification.createError(errorValue || 'error');\n advanceFrameBy(1);\n break;\n default:\n if (runMode && c.match(/^[0-9]$/)) {\n if (i === 0 || marbles[i - 1] === ' ') {\n var buffer = marbles.slice(i);\n var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n if (match) {\n i += match[0].length - 1;\n var duration = parseFloat(match[1]);\n var unit = match[2];\n var durationInMs = void 0;\n switch (unit) {\n case 'ms':\n durationInMs = duration;\n break;\n case 's':\n durationInMs = duration * 1000;\n break;\n case 'm':\n durationInMs = duration * 1000 * 60;\n break;\n default:\n break;\n }\n advanceFrameBy(durationInMs / this_2.frameTimeFactor);\n break;\n }\n }\n }\n notification = Notification.createNext(getValue(c));\n advanceFrameBy(1);\n break;\n }\n if (notification) {\n testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });\n }\n frame = nextFrame;\n out_i_2 = i;\n };\n var this_2 = this, out_i_2;\n for (var i = 0; i < len; i++) {\n _loop_2(i);\n i = out_i_2;\n }\n return testMessages;\n };\n TestScheduler.prototype.run = function (callback) {\n var prevFrameTimeFactor = TestScheduler.frameTimeFactor;\n var prevMaxFrames = this.maxFrames;\n TestScheduler.frameTimeFactor = 1;\n this.maxFrames = Number.POSITIVE_INFINITY;\n this.runMode = true;\n AsyncScheduler.delegate = this;\n var helpers = {\n cold: this.createColdObservable.bind(this),\n hot: this.createHotObservable.bind(this),\n flush: this.flush.bind(this),\n expectObservable: this.expectObservable.bind(this),\n expectSubscriptions: this.expectSubscriptions.bind(this),\n };\n try {\n var ret = callback(helpers);\n this.flush();\n return ret;\n }\n finally {\n TestScheduler.frameTimeFactor = prevFrameTimeFactor;\n this.maxFrames = prevMaxFrames;\n this.runMode = false;\n AsyncScheduler.delegate = undefined;\n }\n };\n return TestScheduler;\n}(VirtualTimeScheduler));\nexport { TestScheduler };\n//# sourceMappingURL=TestScheduler.js.map","var __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map","import * as tslib_1 from \"tslib\";\nimport { root } from '../../util/root';\nimport { tryCatch } from '../../util/tryCatch';\nimport { errorObject } from '../../util/errorObject';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else if (!!root.XDomainRequest) {\n return new root.XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new root.ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new root.ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nexport function ajaxGet(url, headers) {\n if (headers === void 0) { headers = null; }\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n tslib_1.__extends(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = (function (_super) {\n tslib_1.__extends(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !headers['X-Requested-With']) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n if (!('Content-Type' in headers) && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, request.headers['Content-Type']);\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var response = new AjaxResponse(e, xhr, request);\n if (response.response === errorObject) {\n destination.error(errorObject.e);\n }\n else {\n destination.next(response);\n }\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n var createXHR = request.createXHR;\n var xhr = tryCatch(createXHR).call(request);\n if (xhr === errorObject) {\n this.error(errorObject.e);\n }\n else {\n this.xhr = xhr;\n this.setupEvents(xhr, request);\n var result = void 0;\n if (user) {\n result = tryCatch(xhr.open).call(xhr, method, url, async, user, password);\n }\n else {\n result = tryCatch(xhr.open).call(xhr, method, url, async);\n }\n if (result === errorObject) {\n this.error(errorObject.e);\n return null;\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n result = body ? tryCatch(xhr.send).call(xhr, body) : tryCatch(xhr.send).call(xhr);\n if (result === errorObject) {\n this.error(errorObject.e);\n return null;\n }\n }\n return xhr;\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (root.FormData && body instanceof root.FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var ajaxTimeoutError = new AjaxTimeoutError(this, request);\n if (ajaxTimeoutError.response === errorObject) {\n subscriber.error(errorObject.e);\n }\n else {\n subscriber.error(ajaxTimeoutError);\n }\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (root.XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var ajaxError = new AjaxError('ajax error', this, request);\n if (ajaxError.response === errorObject) {\n subscriber.error(errorObject.e);\n }\n else {\n subscriber.error(ajaxError);\n }\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var ajaxError = new AjaxError('ajax error ' + status_1, this, request);\n if (ajaxError.response === errorObject) {\n subscriber.error(errorObject.e);\n }\n else {\n subscriber.error(ajaxError);\n }\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\nexport { AjaxResponse };\nfunction AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n}\nAjaxErrorImpl.prototype = Object.create(Error.prototype);\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return tryCatch(parseJson)(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nfunction AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n}\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map","import { AjaxObservable } from './AjaxObservable';\nexport var ajax = AjaxObservable.create;\n//# sourceMappingURL=ajax.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject, AnonymousSubject } from '../../Subject';\nimport { Subscriber } from '../../Subscriber';\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { ReplaySubject } from '../../ReplaySubject';\nimport { tryCatch } from '../../util/tryCatch';\nimport { errorObject } from '../../util/errorObject';\nvar DEFAULT_WEBSOCKET_CONFIG = {\n url: '',\n deserializer: function (e) { return JSON.parse(e.data); },\n serializer: function (value) { return JSON.stringify(value); },\n};\nvar WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';\nvar WebSocketSubject = (function (_super) {\n tslib_1.__extends(WebSocketSubject, _super);\n function WebSocketSubject(urlConfigOrSource, destination) {\n var _this = _super.call(this) || this;\n if (urlConfigOrSource instanceof Observable) {\n _this.destination = destination;\n _this.source = urlConfigOrSource;\n }\n else {\n var config = _this._config = tslib_1.__assign({}, DEFAULT_WEBSOCKET_CONFIG);\n _this._output = new Subject();\n if (typeof urlConfigOrSource === 'string') {\n config.url = urlConfigOrSource;\n }\n else {\n for (var key in urlConfigOrSource) {\n if (urlConfigOrSource.hasOwnProperty(key)) {\n config[key] = urlConfigOrSource[key];\n }\n }\n }\n if (!config.WebSocketCtor && WebSocket) {\n config.WebSocketCtor = WebSocket;\n }\n else if (!config.WebSocketCtor) {\n throw new Error('no WebSocket constructor can be found');\n }\n _this.destination = new ReplaySubject();\n }\n return _this;\n }\n WebSocketSubject.prototype.lift = function (operator) {\n var sock = new WebSocketSubject(this._config, this.destination);\n sock.operator = operator;\n sock.source = this;\n return sock;\n };\n WebSocketSubject.prototype._resetState = function () {\n this._socket = null;\n if (!this.source) {\n this.destination = new ReplaySubject();\n }\n this._output = new Subject();\n };\n WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {\n var self = this;\n return new Observable(function (observer) {\n var result = tryCatch(subMsg)();\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else {\n self.next(result);\n }\n var subscription = self.subscribe(function (x) {\n var result = tryCatch(messageFilter)(x);\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else if (result) {\n observer.next(x);\n }\n }, function (err) { return observer.error(err); }, function () { return observer.complete(); });\n return function () {\n var result = tryCatch(unsubMsg)();\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else {\n self.next(result);\n }\n subscription.unsubscribe();\n };\n });\n };\n WebSocketSubject.prototype._connectSocket = function () {\n var _this = this;\n var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;\n var observer = this._output;\n var socket = null;\n try {\n socket = protocol ?\n new WebSocketCtor(url, protocol) :\n new WebSocketCtor(url);\n this._socket = socket;\n if (binaryType) {\n this._socket.binaryType = binaryType;\n }\n }\n catch (e) {\n observer.error(e);\n return;\n }\n var subscription = new Subscription(function () {\n _this._socket = null;\n if (socket && socket.readyState === 1) {\n socket.close();\n }\n });\n socket.onopen = function (e) {\n var openObserver = _this._config.openObserver;\n if (openObserver) {\n openObserver.next(e);\n }\n var queue = _this.destination;\n _this.destination = Subscriber.create(function (x) {\n if (socket.readyState === 1) {\n var serializer = _this._config.serializer;\n var msg = tryCatch(serializer)(x);\n if (msg === errorObject) {\n _this.destination.error(errorObject.e);\n return;\n }\n socket.send(msg);\n }\n }, function (e) {\n var closingObserver = _this._config.closingObserver;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n if (e && e.code) {\n socket.close(e.code, e.reason);\n }\n else {\n observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));\n }\n _this._resetState();\n }, function () {\n var closingObserver = _this._config.closingObserver;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n socket.close();\n _this._resetState();\n });\n if (queue && queue instanceof ReplaySubject) {\n subscription.add(queue.subscribe(_this.destination));\n }\n };\n socket.onerror = function (e) {\n _this._resetState();\n observer.error(e);\n };\n socket.onclose = function (e) {\n _this._resetState();\n var closeObserver = _this._config.closeObserver;\n if (closeObserver) {\n closeObserver.next(e);\n }\n if (e.wasClean) {\n observer.complete();\n }\n else {\n observer.error(e);\n }\n };\n socket.onmessage = function (e) {\n var deserializer = _this._config.deserializer;\n var result = tryCatch(deserializer)(e);\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else {\n observer.next(result);\n }\n };\n };\n WebSocketSubject.prototype._subscribe = function (subscriber) {\n var _this = this;\n var source = this.source;\n if (source) {\n return source.subscribe(subscriber);\n }\n if (!this._socket) {\n this._connectSocket();\n }\n this._output.subscribe(subscriber);\n subscriber.add(function () {\n var _socket = _this._socket;\n if (_this._output.observers.length === 0) {\n if (_socket && _socket.readyState === 1) {\n _socket.close();\n }\n _this._resetState();\n }\n });\n return subscriber;\n };\n WebSocketSubject.prototype.unsubscribe = function () {\n var _a = this, source = _a.source, _socket = _a._socket;\n if (_socket && _socket.readyState === 1) {\n _socket.close();\n this._resetState();\n }\n _super.prototype.unsubscribe.call(this);\n if (!source) {\n this.destination = new ReplaySubject();\n }\n };\n return WebSocketSubject;\n}(AnonymousSubject));\nexport { WebSocketSubject };\n//# sourceMappingURL=WebSocketSubject.js.map","import { WebSocketSubject } from './WebSocketSubject';\nexport function webSocket(urlConfigOrSource) {\n return new WebSocketSubject(urlConfigOrSource);\n}\n//# sourceMappingURL=webSocket.js.map","export * from '../index';\nimport * as _operators from '../operators/index';\nexport var operators = _operators;\nimport * as _testing from '../testing/index';\nexport var testing = _testing;\nimport * as _ajax from '../ajax/index';\nexport var ajax = _ajax;\nimport * as _webSocket from '../webSocket/index';\nexport var webSocket = _webSocket;\n//# sourceMappingURL=umd.js.map"],"names":["tslib_1.__extends","emptyObserver","rxSubscriberSymbol","observable","Symbol_observable","RefCountOperator","RefCountSubscriber","higherOrderRefCount","refCount","empty","dispatch","dispatchError","dispatchNext","iterator","Symbol_iterator","combineLatest","concat","concatStatic","merge","mergeStatic","onErrorResumeNext","race","raceStatic","window","WindowOperator","WindowSubscriber","zip","zipStatic","root","ajax","tslib_1.__assign","webSocket"],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.min.js b/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.min.js index 1dae53b8a86a01..ad956739957ade 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.min.js +++ b/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.min.js @@ -22,268 +22,269 @@ See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. *****************************************************************************/ var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(e,d,l){if(l.get||l.set)throw new TypeError("ES3 does not support getters and setters.");e!=Array.prototype&&e!=Object.prototype&&(e[d]=l.value)};$jscomp.getGlobal=function(e){return"undefined"!=typeof window&&window===e?e:"undefined"!=typeof global&&null!=global?global:e};$jscomp.global=$jscomp.getGlobal(this); -$jscomp.polyfill=function(e,d,l,h){if(d){l=$jscomp.global;e=e.split(".");for(h=0;h=b.length?b[0]:b);d.complete()}]))}catch(Aa){d.error(Aa)}}return d.subscribe(f)})}}function Ub(c){var a=this,b=c.args,f=c.subscriber;c=c.params;var g=c.callbackFunc,k=c.context,d=c.scheduler,e=c.subject;if(!e){e=c.subject=new aa;try{g.apply(k,b.concat([function(){for(var b=[],c=0;c=b.length?b[0]:b,subject:e}))}]))}catch(U){e.error(U)}}this.add(e.subscribe(f))}function Vb(c){var a= -c.subject;a.next(c.value);a.complete()}function Sa(c,a,b){if(a)if(B(a))b=a;else return function(){for(var f=[],g=0;g=b.length?b[0]:b),d.complete())}]))}catch(Aa){d.error(Aa)}}return d.subscribe(f)})}}function Wb(c){var a=this,b=c.params,f=c.subscriber;c=c.context;var g=b.callbackFunc,k=b.args,d=b.scheduler,e=b.subject;if(!e){e=b.subject=new aa;try{g.apply(c,k.concat([function(){for(var b=[],c=0;c=b.length?b[0]:b,subject:e}))}]))}catch(U){this.add(d.schedule(Ta,0,{err:U,subject:e}))}}this.add(e.subscribe(f))}function Xb(c){var a=c.subject;a.next(c.value);a.complete()}function Ta(c){c.subject.error(c.err)}function Ua(c){return c&&"function"!==typeof c.subscribe&&"function"===typeof c.then}function u(c,a,b,f,g){void 0===g&&(g=new O(c,b,f));if(!g.closed)return Va(a)(g)}function Yb(c,a){return a?new r(function(b){var f=new w;f.add(a.schedule(function(){return c.then(function(c){f.add(a.schedule(function(){b.next(c); -f.add(a.schedule(function(){return b.complete()}))}))},function(c){f.add(a.schedule(function(){return b.error(c)}))})}));return f}):new r(Wa(c))}function Zb(c,a){if(!c)throw Error("Iterable cannot be null");return a?new r(function(b){var f=new w,g;f.add(function(){g&&"function"===typeof g.return&&g.return()});f.add(a.schedule(function(){g=c[L]();f.add(a.schedule(function(){if(!b.closed){var a,c;try{var f=g.next();a=f.value;c=f.done}catch(U){b.error(U);return}c?b.complete():(b.next(a),this.schedule())}}))})); -return f}):new r(Xa(c))}function $b(c,a){return a?new r(function(b){var f=new w;f.add(a.schedule(function(){var g=c[ba]();f.add(g.subscribe({next:function(c){f.add(a.schedule(function(){return b.next(c)}))},error:function(c){f.add(a.schedule(function(){return b.error(c)}))},complete:function(){f.add(a.schedule(function(){return b.complete()}))}}))}));return f}):new r(Ya(c))}function M(c,a){if(!a)return c instanceof r?c:new r(Va(c));if(null!=c){if(c&&"function"===typeof c[ba])return $b(c,a);if(Ua(c))return Yb(c, -a);if(Za(c))return K(c,a);if(c&&"function"===typeof c[L]||"string"===typeof c)return Zb(c,a)}throw new TypeError((null!==c&&typeof c||c)+" is not observable");}function V(c,a,b){void 0===b&&(b=Number.POSITIVE_INFINITY);if("function"===typeof a)return function(f){return f.pipe(V(function(b,f){return M(c(b,f)).pipe(G(function(c,g){return a(b,c,f,g)}))},b))};"number"===typeof a&&(b=a);return function(a){return a.lift(new ac(c,b))}}function Ba(c){void 0===c&&(c=Number.POSITIVE_INFINITY);return V(S,c)} -function $a(){return Ba(1)}function P(){for(var c=[],a=0;a=c.count?f.complete():(f.next(a),f.closed||(c.index=b+1,c.start=a+1,this.schedule(c)))}function gb(c,a,b){void 0===c&&(c=0);var f=-1;ca(a)?f=1>Number(a)&&1||Number(a):B(a)&&(b=a);B(b)||(b=C);return new r(function(a){var g=ca(c)?c:+c-b.now();return b.schedule(hc,g,{index:0,period:f,subscriber:a})})} -function hc(c){var a=c.index,b=c.period,f=c.subscriber;f.next(a);if(!f.closed){if(-1===b)return f.complete();c.index=a+1;this.schedule(c,b)}}function hb(){for(var c=[],a=0;a=a?this.connection=null:(b._refCount=a-1,1=a?this.connection=null:(b._refCount=a-1,1b?1:b;f._windowTime=1>a?1:a;a===Number.POSITIVE_INFINITY?(f._infiniteTimeWindow=!0,f.next=f.nextInfiniteTimeWindow):f.next=f.nextTimeWindow;return f}d(a,c);a.prototype.nextInfiniteTimeWindow=function(b){var a= -this._events;a.push(b);a.length>this._bufferSize&&a.shift();c.prototype.next.call(this,b)};a.prototype.nextTimeWindow=function(b){this._events.push(new Zc(this._getNow(),b));this._trimBufferThenGetEvents();c.prototype.next.call(this,b)};a.prototype._subscribe=function(b){var a=this._infiniteTimeWindow,c=a?this._events:this._trimBufferThenGetEvents(),k=this.scheduler,d=c.length,e;if(this.closed)throw new J;this.isStopped||this.hasError?e=w.EMPTY:(this.observers.push(b),e=new wb(this,b));k&&b.add(b= -new Bb(b,k));if(a)for(a=0;aa&&(e=Math.max(e,d-a));0a.index?1:-1:b.delay>a.delay?1:-1};return a}(ka);T.prototype=Object.create(Error.prototype);Qa.prototype=Object.create(Error.prototype);var ha=Qa;ya.prototype=Object.create(Error.prototype);var Tb=function(){function c(a,b){this.project=a;this.thisArg=b}c.prototype.call= -function(a,b){return b.subscribe(new dd(a,this.project,this.thisArg))};return c}(),dd=function(c){function a(b,a,g){b=c.call(this,b)||this;b.project=a;b.count=0;b.thisArg=g||b;return b}d(a,c);a.prototype._next=function(b){var a;try{a=this.project.call(this.thisArg,b,this.count++)}catch(g){this.destination.error(g);return}this.destination.next(a)};return a}(q),v=function(c){function a(){return null!==c&&c.apply(this,arguments)||this}d(a,c);a.prototype.notifyNext=function(b,a,c,k,d){this.destination.next(a)}; +d.prototype.values=function(){return this.map_.values()};d.prototype.keys=d.prototype.values;d.prototype[Symbol.iterator]=d.prototype.values;d.prototype.forEach=function(d,e){var k=this;this.map_.forEach(function(l){return d.call(e,l,l,k)})};return d},"es6-impl","es3"); +(function(e,d){"object"===typeof exports&&"undefined"!==typeof module?d(exports):"function"===typeof define&&define.amd?define(["exports"],d):d(e.rxjs=e.rxjs||{})})(this,function(e){function d(c,a){function b(){this.constructor=c}Qb(c,a);c.prototype=null===a?Object.create(a):(b.prototype=a.prototype,new b)}function l(c){return"function"===typeof c}function k(c){setTimeout(function(){throw c;})}function x(){try{return Pa.apply(this,arguments)}catch(c){return p.e=c,p}}function m(c){Pa=c;return x}function Q(c){Error.call(this); +this.message=c?c.length+" errors occurred during unsubscription:\n"+c.map(function(a,b){return b+1+") "+a.toString()}).join("\n "):"";this.name="UnsubscriptionError";this.errors=c;return this}function n(c){return c.reduce(function(a,b){return a.concat(b instanceof fa?b.errors:b)},[])}function I(c){for(;c;){var a=c.destination,b=c.isStopped;if(c.closed||b)return!1;c=a&&a instanceof q?a:null}return!0}function A(){}function wa(){for(var c=[],a=0;a=b.length?b[0]:b);d.complete()}]))}catch(ga){I(d)?d.error(ga):console.warn(ga)}}return d.subscribe(f)})}}function Vb(c){var a=this,b=c.args,f=c.subscriber;c=c.params;var g=c.callbackFunc,h=c.context,d=c.scheduler,e=c.subject;if(!e){e=c.subject=new aa;try{g.apply(h,b.concat([function(){for(var b= +[],c=0;c=b.length?b[0]:b,subject:e}))}]))}catch(U){e.error(U)}}this.add(e.subscribe(f))}function Wb(c){var a=c.subject;a.next(c.value);a.complete()}function Ta(c,a,b){if(a)if(B(a))b=a;else return function(){for(var f=[],g=0;g=b.length?b[0]:b),d.complete())}]))}catch(ga){I(d)?d.error(ga):console.warn(ga)}}return d.subscribe(f)})}}function Xb(c){var a=this,b=c.params,f=c.subscriber;c=c.context; +var g=b.callbackFunc,h=b.args,d=b.scheduler,e=b.subject;if(!e){e=b.subject=new aa;try{g.apply(c,h.concat([function(){for(var b=[],c=0;c=b.length?b[0]:b,subject:e}))}]))}catch(U){this.add(d.schedule(Ua,0,{err:U,subject:e}))}}this.add(e.subscribe(f))}function Yb(c){var a=c.subject;a.next(c.value);a.complete()}function Ua(c){c.subject.error(c.err)}function Va(c){return c&&"function"!== +typeof c.subscribe&&"function"===typeof c.then}function u(c,a,b,f,g){void 0===g&&(g=new O(c,b,f));if(!g.closed)return Wa(a)(g)}function Zb(c,a){return a?new r(function(b){var f=new w;f.add(a.schedule(function(){return c.then(function(c){f.add(a.schedule(function(){b.next(c);f.add(a.schedule(function(){return b.complete()}))}))},function(c){f.add(a.schedule(function(){return b.error(c)}))})}));return f}):new r(Xa(c))}function $b(c,a){if(!c)throw Error("Iterable cannot be null");return a?new r(function(b){var f= +new w,g;f.add(function(){g&&"function"===typeof g.return&&g.return()});f.add(a.schedule(function(){g=c[M]();f.add(a.schedule(function(){if(!b.closed){var a,c;try{var f=g.next();a=f.value;c=f.done}catch(U){b.error(U);return}c?b.complete():(b.next(a),this.schedule())}}))}));return f}):new r(Ya(c))}function ac(c,a){return a?new r(function(b){var f=new w;f.add(a.schedule(function(){var g=c[ba]();f.add(g.subscribe({next:function(c){f.add(a.schedule(function(){return b.next(c)}))},error:function(c){f.add(a.schedule(function(){return b.error(c)}))}, +complete:function(){f.add(a.schedule(function(){return b.complete()}))}}))}));return f}):new r(Za(c))}function N(c,a){if(!a)return c instanceof r?c:new r(Wa(c));if(null!=c){if(c&&"function"===typeof c[ba])return ac(c,a);if(Va(c))return Zb(c,a);if($a(c))return L(c,a);if(c&&"function"===typeof c[M]||"string"===typeof c)return $b(c,a)}throw new TypeError((null!==c&&typeof c||c)+" is not observable");}function V(c,a,b){void 0===b&&(b=Number.POSITIVE_INFINITY);if("function"===typeof a)return function(f){return f.pipe(V(function(b, +f){return N(c(b,f)).pipe(G(function(c,g){return a(b,c,f,g)}))},b))};"number"===typeof a&&(b=a);return function(a){return a.lift(new bc(c,b))}}function Ca(c){void 0===c&&(c=Number.POSITIVE_INFINITY);return V(S,c)}function ab(){return Ca(1)}function P(){for(var c=[],a=0;a=c.count?f.complete():(f.next(a),f.closed|| +(c.index=b+1,c.start=a+1,this.schedule(c)))}function hb(c,a,b){void 0===c&&(c=0);var f=-1;ca(a)?f=1>Number(a)&&1||Number(a):B(a)&&(b=a);B(b)||(b=C);return new r(function(a){var g=ca(c)?c:+c-b.now();return b.schedule(ic,g,{index:0,period:f,subscriber:a})})}function ic(c){var a=c.index,b=c.period,f=c.subscriber;f.next(a);if(!f.closed){if(-1===b)return f.complete();c.index=a+1;this.schedule(c,b)}}function ib(){for(var c=[],a=0;a=a?this.connection=null:(b._refCount=a-1,1=a?this.connection=null:(b._refCount=a-1,1b?1:b;f._windowTime=1>a?1:a;a===Number.POSITIVE_INFINITY?(f._infiniteTimeWindow=!0,f.next=f.nextInfiniteTimeWindow):f.next=f.nextTimeWindow;return f}d(a,c);a.prototype.nextInfiniteTimeWindow=function(b){var a=this._events;a.push(b);a.length>this._bufferSize&& +a.shift();c.prototype.next.call(this,b)};a.prototype.nextTimeWindow=function(b){this._events.push(new $c(this._getNow(),b));this._trimBufferThenGetEvents();c.prototype.next.call(this,b)};a.prototype._subscribe=function(b){var a=this._infiniteTimeWindow,c=a?this._events:this._trimBufferThenGetEvents(),h=this.scheduler,d=c.length,e;if(this.closed)throw new J;this.isStopped||this.hasError?e=w.EMPTY:(this.observers.push(b),e=new xb(this,b));h&&b.add(b=new Cb(b,h));if(a)for(a=0;aa&&(e=Math.max(e,d-a));0a.index?1:-1:b.delay>a.delay?1:-1};return a}(la);T.prototype=Object.create(Error.prototype);Ra.prototype=Object.create(Error.prototype);var ia=Ra;Aa.prototype=Object.create(Error.prototype);var Ub=function(){function c(a,b){this.project=a;this.thisArg=b}c.prototype.call= +function(a,b){return b.subscribe(new ed(a,this.project,this.thisArg))};return c}(),ed=function(c){function a(b,a,g){b=c.call(this,b)||this;b.project=a;b.count=0;b.thisArg=g||b;return b}d(a,c);a.prototype._next=function(b){var a;try{a=this.project.call(this.thisArg,b,this.count++)}catch(g){this.destination.error(g);return}this.destination.next(a)};return a}(q),v=function(c){function a(){return null!==c&&c.apply(this,arguments)||this}d(a,c);a.prototype.notifyNext=function(b,a,c,h,d){this.destination.next(a)}; a.prototype.notifyError=function(b,a){this.destination.error(b)};a.prototype.notifyComplete=function(b){this.destination.complete()};return a}(q),O=function(c){function a(b,a,g){var f=c.call(this)||this;f.parent=b;f.outerValue=a;f.outerIndex=g;f.index=0;return f}d(a,c);a.prototype._next=function(b){this.parent.notifyNext(this.outerValue,b,this.outerIndex,this.index++,this)};a.prototype._error=function(b){this.parent.notifyError(b,this);this.unsubscribe()};a.prototype._complete=function(){this.parent.notifyComplete(this); -this.unsubscribe()};return a}(q),Wa=function(c){return function(a){c.then(function(b){a.closed||(a.next(b),a.complete())},function(b){return a.error(b)}).then(null,h);return a}},L;L="function"===typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";var Xa=function(c){return function(a){var b=c[L]();do{var f=b.next();if(f.done){a.complete();break}a.next(f.value);if(a.closed)break}while(1);"function"===typeof b.return&&a.add(function(){b.return&&b.return()});return a}},Ya=function(c){return function(a){var b= -c[ba]();if("function"!==typeof b.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return b.subscribe(a)}},Za=function(c){return c&&"number"===typeof c.length&&"function"!==typeof c},Va=function(c){if(c instanceof r)return function(a){if(c._isScalar)a.next(c.value),a.complete();else return c.subscribe(a)};if(c&&"function"===typeof c[ba])return Ya(c);if(Za(c))return Pa(c);if(Ua(c))return Wa(c);if(c&&"function"===typeof c[L])return Xa(c);throw new TypeError("You provided "+ -(null!=c&&"object"===typeof c?"an invalid object":"'"+c+"'")+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.");},Eb={},La=function(){function c(a){this.resultSelector=a}c.prototype.call=function(a,b){return b.subscribe(new ed(a,this.resultSelector))};return c}(),ed=function(c){function a(b,a){b=c.call(this,b)||this;b.resultSelector=a;b.active=0;b.values=[];b.observables=[];return b}d(a,c);a.prototype._next=function(b){this.values.push(Eb);this.observables.push(b)}; -a.prototype._complete=function(){var b=this.observables,a=b.length;if(0===a)this.destination.complete();else{this.toRespond=this.active=a;for(var c=0;cthis.index}; -c.prototype.hasCompleted=function(){return this.array.length===this.index};return c}(),kd=function(c){function a(b,a,g){b=c.call(this,b)||this;b.parent=a;b.observable=g;b.stillUnsubscribed=!0;b.buffer=[];b.isComplete=!1;return b}d(a,c);a.prototype[L]=function(){return this};a.prototype.next=function(){var b=this.buffer;return 0===b.length&&this.isComplete?{value:null,done:!0}:{value:b.shift(),done:!1}};a.prototype.hasValue=function(){return 0g;if(b.timespanOnly)b.add(d.closeAction=e.schedule(kb,a,{subscriber:b,context:d,bufferTimeSpan:a}));else{var f={bufferTimeSpan:a,bufferCreationInterval:g,subscriber:b,scheduler:e};b.add(d.closeAction=e.schedule(lb,a,{subscriber:b,context:d}));b.add(e.schedule(jc,g,f))}return b}d(a,c);a.prototype._next=function(b){for(var a= -this.contexts,c=a.length,d,e=0;e=c[0].time-d.now();)c.shift().notification.observe(e);0this.total)throw new T;}c.prototype.call=function(a,b){return b.subscribe(new Ud(a, -this.total))};return c}(),Ud=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.count=0;return b}d(a,c);a.prototype._next=function(b){var a=this.total,c=++this.count;c<=a&&(this.destination.next(b),c===a&&(this.destination.complete(),this.unsubscribe()))};return a}(q),Wd=function(){function c(a,b,c){this.predicate=a;this.thisArg=b;this.source=c}c.prototype.call=function(a,b){return b.subscribe(new Vd(a,this.predicate,this.thisArg,this.source))};return c}(),Vd=function(c){function a(b, -a,g,d){b=c.call(this,b)||this;b.predicate=a;b.thisArg=g;b.source=d;b.index=0;b.thisArg=g||b;return b}d(a,c);a.prototype.notifyComplete=function(b){this.destination.next(b);this.destination.complete()};a.prototype._next=function(b){var a=!1;try{a=this.predicate.call(this.thisArg,b,this.index++,this.source)}catch(g){this.destination.error(g);return}a||this.notifyComplete(!1)};a.prototype._complete=function(){this.notifyComplete(!0)};return a}(q),Yd=function(){function c(){}c.prototype.call=function(a, -b){return b.subscribe(new Xd(a))};return c}(),Xd=function(c){function a(b){b=c.call(this,b)||this;b.hasCompleted=!1;b.hasSubscription=!1;return b}d(a,c);a.prototype._next=function(b){this.hasSubscription||(this.hasSubscription=!0,this.add(u(this,b)))};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete()};a.prototype.notifyComplete=function(b){this.remove(b);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return a}(v),rc=function(){function c(a){this.project= -a}c.prototype.call=function(a,b){return b.subscribe(new Zd(a,this.project))};return c}(),Zd=function(c){function a(b,a){b=c.call(this,b)||this;b.project=a;b.hasSubscription=!1;b.hasCompleted=!1;b.index=0;return b}d(a,c);a.prototype._next=function(b){this.hasSubscription||this.tryNext(b)};a.prototype.tryNext=function(b){var a,c=this.index++;try{a=this.project(b,c)}catch(k){this.destination.error(k);return}this.hasSubscription=!0;this._innerSub(a,b,c)};a.prototype._innerSub=function(b,a,c){var f=new O(this, -void 0,void 0);this.add(f);u(this,b,a,c,f)};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete()};a.prototype.notifyNext=function(b,a,c,d,e){this.destination.next(a)};a.prototype.notifyError=function(b){this.destination.error(b)};a.prototype.notifyComplete=function(b){this.remove(b);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return a}(v),ae=function(){function c(a,b,c){this.project=a;this.concurrent=b;this.scheduler=c} -c.prototype.call=function(a,b){return b.subscribe(new $d(a,this.project,this.concurrent,this.scheduler))};return c}(),$d=function(c){function a(b,a,g,d){b=c.call(this,b)||this;b.project=a;b.concurrent=g;b.scheduler=d;b.index=0;b.active=0;b.hasCompleted=!1;gthis.total)throw new T;}c.prototype.call=function(a,b){return b.subscribe(new ie(a,this.total))};return c}(),ie=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.ring= -[];b.count=0;return b}d(a,c);a.prototype._next=function(b){var a=this.ring,c=this.total,d=this.count++;a.length=this.total?this.total:this.count,d=this.ring,e=0;ethis.total&&this.destination.next(b)};return a}(q),Ne=function(){function c(a){this._skipCount=a;if(0>this._skipCount)throw new T;}c.prototype.call=function(a,b){return 0===this._skipCount?b.subscribe(new q(a)):b.subscribe(new Me(a,this._skipCount))};return c}(),Me=function(c){function a(b,a){b=c.call(this,b)|| -this;b._skipCount=a;b._count=0;b._ring=Array(a);return b}d(a,c);a.prototype._next=function(b){var a=this._skipCount,c=this._count++;if(cf)b.delayTime=0;d&&"function"===typeof d.schedule||(b.scheduler=qa); -return b}d(a,c);a.create=function(b,c,d){void 0===c&&(c=0);void 0===d&&(d=qa);return new a(b,c,d)};a.dispatch=function(a){return this.add(a.source.subscribe(a.subscriber))};a.prototype._subscribe=function(b){return this.scheduler.schedule(a.dispatch,this.delayTime,{source:this.source,subscriber:b})};return a}(r),Te=function(){function c(a,b){this.scheduler=a;this.delay=b}c.prototype.call=function(a,b){return(new Se(b,this.delay,this.scheduler)).subscribe(a)};return c}(),Bc=function(){function c(a){this.project= -a}c.prototype.call=function(a,b){return b.subscribe(new Ue(a,this.project))};return c}(),Ue=function(c){function a(a,f){a=c.call(this,a)||this;a.project=f;a.index=0;return a}d(a,c);a.prototype._next=function(a){var b,c=this.index++;try{b=this.project(a,c)}catch(k){this.destination.error(k);return}this._innerSub(b,a,c)};a.prototype._innerSub=function(a,c,d){var b=this.innerSubscription;b&&b.unsubscribe();b=new O(this,void 0,void 0);this.add(b);this.innerSubscription=u(this,a,c,d,b)};a.prototype._complete= -function(){var a=this.innerSubscription;a&&!a.closed||c.prototype._complete.call(this)};a.prototype._unsubscribe=function(){this.innerSubscription=null};a.prototype.notifyComplete=function(a){this.remove(a);this.innerSubscription=null;this.isStopped&&c.prototype._complete.call(this)};a.prototype.notifyNext=function(a,c,d,e,h){this.destination.next(c)};return a}(v),We=function(){function c(a){this.notifier=a}c.prototype.call=function(a,b){a=new Ve(a);var c=u(a,this.notifier);return c&&!a.seenValue? -(a.add(c),b.subscribe(a)):a};return c}(),Ve=function(c){function a(a){a=c.call(this,a)||this;a.seenValue=!1;return a}d(a,c);a.prototype.notifyNext=function(a,c,d,e,h){this.seenValue=!0;this.complete()};a.prototype.notifyComplete=function(){};return a}(v),Ye=function(){function c(a){this.predicate=a}c.prototype.call=function(a,b){return b.subscribe(new Xe(a,this.predicate))};return c}(),Xe=function(c){function a(a,f){a=c.call(this,a)||this;a.predicate=f;a.index=0;return a}d(a,c);a.prototype._next= -function(a){var b=this.destination,c;try{c=this.predicate(a,this.index++)}catch(k){b.error(k);return}this.nextOrComplete(a,c)};a.prototype.nextOrComplete=function(a,c){var b=this.destination;c?b.next(a):b.complete()};return a}(q),Jb={leading:!0,trailing:!1},$e=function(){function c(a,b,c){this.durationSelector=a;this.leading=b;this.trailing=c}c.prototype.call=function(a,b){return b.subscribe(new Ze(a,this.durationSelector,this.leading,this.trailing))};return c}(),Ze=function(c){function a(a,f,d,e){var b= -c.call(this,a)||this;b.destination=a;b.durationSelector=f;b._leading=d;b._trailing=e;b._hasValue=!1;return b}d(a,c);a.prototype._next=function(a){this._hasValue=!0;this._sendValue=a;this._throttled||(this._leading?this.send():this.throttle(a))};a.prototype.send=function(){var a=this._sendValue;this._hasValue&&(this.destination.next(a),this.throttle(a));this._hasValue=!1;this._sendValue=null};a.prototype.throttle=function(a){(a=this.tryDurationSelector(a))&&this.add(this._throttled=u(this,a))};a.prototype.tryDurationSelector= -function(a){try{return this.durationSelector(a)}catch(f){return this.destination.error(f),null}};a.prototype.throttlingDone=function(){var a=this._throttled,c=this._trailing;a&&a.unsubscribe();this._throttled=null;c&&this.send()};a.prototype.notifyNext=function(a,c,d,e,h){this.throttlingDone()};a.prototype.notifyComplete=function(){this.throttlingDone()};return a}(v),bf=function(){function c(a,b,c,d){this.duration=a;this.scheduler=b;this.leading=c;this.trailing=d}c.prototype.call=function(a,b){return b.subscribe(new af(a, -this.duration,this.scheduler,this.leading,this.trailing))};return c}(),af=function(c){function a(a,f,d,e,h){a=c.call(this,a)||this;a.duration=f;a.scheduler=d;a.leading=e;a.trailing=h;a._hasTrailingValue=!1;a._trailingValue=null;return a}d(a,c);a.prototype._next=function(a){this.throttled?this.trailing&&(this._trailingValue=a,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(Cc,this.duration,{subscriber:this})),this.leading&&this.destination.next(a))};a.prototype._complete= -function(){this._hasTrailingValue&&this.destination.next(this._trailingValue);this.destination.complete()};a.prototype.clearThrottle=function(){var a=this.throttled;a&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),a.unsubscribe(),this.remove(a),this.throttled=null)};return a}(q),cf=function(){return function(c,a){this.value=c;this.interval=a}}(),Dc=function(){function c(a,b,c,d){this.waitFor=a;this.absoluteTimeout= -b;this.withObservable=c;this.scheduler=d}c.prototype.call=function(a,b){return b.subscribe(new df(a,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))};return c}(),df=function(c){function a(a,f,d,e,h){a=c.call(this,a)||this;a.absoluteTimeout=f;a.waitFor=d;a.withObservable=e;a.scheduler=h;a.action=null;a.scheduleTimeout();return a}d(a,c);a.dispatchTimeout=function(a){var b=a.withObservable;a._unsubscribeAndRecycle();a.add(u(a,b))};a.prototype.scheduleTimeout=function(){var b=this.action; -b?this.action=b.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(a.dispatchTimeout,this.waitFor,this))};a.prototype._next=function(a){this.absoluteTimeout||this.scheduleTimeout();c.prototype._next.call(this,a)};a.prototype._unsubscribe=function(){this.withObservable=this.scheduler=this.action=null};return a}(v),ef=function(){return function(c,a){this.value=c;this.timestamp=a}}(),gf=function(){function c(a){this.windowBoundaries=a}c.prototype.call=function(a,b){a=new ff(a); -b=b.subscribe(a);b.closed||a.add(u(a,this.windowBoundaries));return b};return c}(),ff=function(c){function a(a){var b=c.call(this,a)||this;b.window=new y;a.next(b.window);return b}d(a,c);a.prototype.notifyNext=function(a,c,d,e,h){this.openWindow()};a.prototype.notifyError=function(a,c){this._error(a)};a.prototype.notifyComplete=function(a){this._complete()};a.prototype._next=function(a){this.window.next(a)};a.prototype._error=function(a){this.window.error(a);this.destination.error(a)};a.prototype._complete= -function(){this.window.complete();this.destination.complete()};a.prototype._unsubscribe=function(){this.window=null};a.prototype.openWindow=function(){var a=this.window;a&&a.complete();var a=this.destination,c=this.window=new y;a.next(c)};return a}(v),jf=function(){function c(a,b){this.windowSize=a;this.startWindowEvery=b}c.prototype.call=function(a,b){return b.subscribe(new hf(a,this.windowSize,this.startWindowEvery))};return c}(),hf=function(c){function a(a,f,d){var b=c.call(this,a)||this;b.destination= -a;b.windowSize=f;b.startWindowEvery=d;b.windows=[new y];b.count=0;a.next(b.windows[0]);return b}d(a,c);a.prototype._next=function(a){for(var b=0=this.maxWindowSize&&this.closeWindow(e))}}; -a.prototype._error=function(a){for(var b=this.windows;0c)throw new T;var b=2<=arguments.length;return function(d){return d.pipe(da(function(a,b){return b===c}),Ea(1),b?ga(a):ra(function(){return new T}))}},endWith:function(){for(var c=[],a=0;a(a||0)?Number.POSITIVE_INFINITY:a;return function(d){return d.lift(new ae(c,a,b))}},filter:da,finalize:function(c){return function(a){return a.lift(new ce(c))}},find:function(c,a){if("function"!==typeof c)throw new TypeError("predicate is not a function"); -return function(b){return b.lift(new Hb(c,b,!1,a))}},findIndex:function(c,a){return function(b){return b.lift(new Hb(c,b,!0,a))}},first:function(c,a){var b=2<=arguments.length;return function(d){return d.pipe(c?da(function(a,b){return c(a,b,d)}):S,Ea(1),b?ga(a):ra(function(){return new ha}))}},groupBy:function(c,a,b,d){return function(f){return f.lift(new Tc(c,a,b,d))}},ignoreElements:function(){return function(c){return c.lift(new fe)}},isEmpty:function(){return function(c){return c.lift(new he)}}, -last:function(c,a){var b=2<=arguments.length;return function(d){return d.pipe(c?da(function(a,b){return c(a,b,d)}):S,ma(1),b?ga(a):ra(function(){return new ha}))}},map:G,mapTo:function(c){return function(a){return a.lift(new ke(c))}},materialize:function(){return function(c){return c.lift(new me)}},max:function(c){return oa("function"===typeof c?function(a,b){return 0b?a:b})},merge:function(){for(var c=[],a=0;ac(a,b)?a:b}:function(a,b){return ac?a.lift(new Ib(-1,a)):a.lift(new Ib(c-1,a))}},repeatWhen:function(c){return function(a){return a.lift(new we(c))}},retry:function(c){void 0===c&&(c=-1);return function(a){return a.lift(new ye(c,a))}},retryWhen:function(c){return function(a){return a.lift(new Ae(c,a))}},refCount:ua,sample:function(c){return function(a){return a.lift(new Ce(c))}}, -sampleTime:function(c,a){void 0===a&&(a=C);return function(b){return b.lift(new Ee(c,a))}},scan:na,sequenceEqual:function(c,a){return function(b){return b.lift(new Ge(c,a))}},share:function(){return function(c){return ua()(W(zc)(c))}},shareReplay:function(c,a,b){void 0===c&&(c=Number.POSITIVE_INFINITY);void 0===a&&(a=Number.MAX_VALUE);return function(d){return d.lift(Ac(c,a,b))}},single:function(c){return function(a){return a.lift(new Je(c,a))}},skip:function(c){return function(a){return a.lift(new Le(c))}}, -skipLast:function(c){return function(a){return a.lift(new Ne(c))}},skipUntil:function(c){return function(a){return a.lift(new Pe(c))}},skipWhile:function(c){return function(a){return a.lift(new Re(c))}},startWith:function(){for(var c=[],a=0;athis.index};c.prototype.hasCompleted=function(){return this.array.length===this.index};return c}(),ld=function(c){function a(b,a,g){b=c.call(this,b)||this;b.parent=a;b.observable=g;b.stillUnsubscribed=!0;b.buffer=[];b.isComplete=!1;return b}d(a,c);a.prototype[M]=function(){return this};a.prototype.next=function(){var b=this.buffer;return 0===b.length&&this.isComplete?{value:null,done:!0}:{value:b.shift(),done:!1}};a.prototype.hasValue=function(){return 0< +this.buffer.length};a.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete};a.prototype.notifyComplete=function(){0g;if(b.timespanOnly)b.add(h.closeAction=d.schedule(lb,a,{subscriber:b,context:h,bufferTimeSpan:a}));else{var f={bufferTimeSpan:a,bufferCreationInterval:g,subscriber:b,scheduler:d};b.add(h.closeAction=d.schedule(mb,a,{subscriber:b,context:h}));b.add(d.schedule(kc, +g,f))}return b}d(a,c);a.prototype._next=function(b){for(var a=this.contexts,c=a.length,d,e=0;e=c[0].time-d.now();)c.shift().notification.observe(e);0this.total)throw new T;}c.prototype.call=function(a,b){return b.subscribe(new Vd(a,this.total))};return c}(),Vd=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.count=0;return b}d(a,c);a.prototype._next=function(b){var a=this.total,c=++this.count;c<=a&&(this.destination.next(b),c===a&&(this.destination.complete(),this.unsubscribe()))};return a}(q),Xd=function(){function c(a,b,c){this.predicate=a;this.thisArg=b;this.source=c}c.prototype.call= +function(a,b){return b.subscribe(new Wd(a,this.predicate,this.thisArg,this.source))};return c}(),Wd=function(c){function a(b,a,g,d){b=c.call(this,b)||this;b.predicate=a;b.thisArg=g;b.source=d;b.index=0;b.thisArg=g||b;return b}d(a,c);a.prototype.notifyComplete=function(b){this.destination.next(b);this.destination.complete()};a.prototype._next=function(b){var a=!1;try{a=this.predicate.call(this.thisArg,b,this.index++,this.source)}catch(g){this.destination.error(g);return}a||this.notifyComplete(!1)}; +a.prototype._complete=function(){this.notifyComplete(!0)};return a}(q),Zd=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new Yd(a))};return c}(),Yd=function(c){function a(b){b=c.call(this,b)||this;b.hasCompleted=!1;b.hasSubscription=!1;return b}d(a,c);a.prototype._next=function(b){this.hasSubscription||(this.hasSubscription=!0,this.add(u(this,b)))};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete()};a.prototype.notifyComplete= +function(b){this.remove(b);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return a}(v),sc=function(){function c(a){this.project=a}c.prototype.call=function(a,b){return b.subscribe(new $d(a,this.project))};return c}(),$d=function(c){function a(b,a){b=c.call(this,b)||this;b.project=a;b.hasSubscription=!1;b.hasCompleted=!1;b.index=0;return b}d(a,c);a.prototype._next=function(b){this.hasSubscription||this.tryNext(b)};a.prototype.tryNext=function(b){var a,c=this.index++;try{a= +this.project(b,c)}catch(h){this.destination.error(h);return}this.hasSubscription=!0;this._innerSub(a,b,c)};a.prototype._innerSub=function(b,a,c){var f=new O(this,void 0,void 0);this.destination.add(f);u(this,b,a,c,f)};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete();this.unsubscribe()};a.prototype.notifyNext=function(b,a,c,d,e){this.destination.next(a)};a.prototype.notifyError=function(b){this.destination.error(b)};a.prototype.notifyComplete= +function(b){this.destination.remove(b);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return a}(v),be=function(){function c(a,b,c){this.project=a;this.concurrent=b;this.scheduler=c}c.prototype.call=function(a,b){return b.subscribe(new ae(a,this.project,this.concurrent,this.scheduler))};return c}(),ae=function(c){function a(b,a,g,d){b=c.call(this,b)||this;b.project=a;b.concurrent=g;b.scheduler=d;b.index=0;b.active=0;b.hasCompleted=!1;gthis.total)throw new T;}c.prototype.call=function(a,b){return b.subscribe(new je(a,this.total))};return c}(),je=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.ring=[];b.count=0;return b}d(a,c);a.prototype._next=function(b){var a=this.ring,c=this.total,d=this.count++;a.length= +this.total?this.total:this.count,d=this.ring,e=0;ethis.total&&this.destination.next(b)};return a}(q),Oe=function(){function c(a){this._skipCount=a;if(0>this._skipCount)throw new T;}c.prototype.call=function(a,b){return 0===this._skipCount?b.subscribe(new q(a)):b.subscribe(new Ne(a,this._skipCount))};return c}(),Ne=function(c){function a(b,a){b=c.call(this,b)||this;b._skipCount=a;b._count=0; +b._ring=Array(a);return b}d(a,c);a.prototype._next=function(b){var a=this._skipCount,c=this._count++;if(cf)b.delayTime=0;g&&"function"===typeof g.schedule||(b.scheduler=sa);return b}d(a,c);a.create=function(b,c,g){void 0=== +c&&(c=0);void 0===g&&(g=sa);return new a(b,c,g)};a.dispatch=function(a){return this.add(a.source.subscribe(a.subscriber))};a.prototype._subscribe=function(b){return this.scheduler.schedule(a.dispatch,this.delayTime,{source:this.source,subscriber:b})};return a}(r),Ue=function(){function c(a,b){this.scheduler=a;this.delay=b}c.prototype.call=function(a,b){return(new Te(b,this.delay,this.scheduler)).subscribe(a)};return c}(),Cc=function(){function c(a){this.project=a}c.prototype.call=function(a,b){return b.subscribe(new Ve(a, +this.project))};return c}(),Ve=function(c){function a(a,f){a=c.call(this,a)||this;a.project=f;a.index=0;return a}d(a,c);a.prototype._next=function(a){var b,c=this.index++;try{b=this.project(a,c)}catch(h){this.destination.error(h);return}this._innerSub(b,a,c)};a.prototype._innerSub=function(a,c,g){var b=this.innerSubscription;b&&b.unsubscribe();b=new O(this,void 0,void 0);this.destination.add(b);this.innerSubscription=u(this,a,c,g,b)};a.prototype._complete=function(){var a=this.innerSubscription;a&& +!a.closed||c.prototype._complete.call(this);this.unsubscribe()};a.prototype._unsubscribe=function(){this.innerSubscription=null};a.prototype.notifyComplete=function(a){this.destination.remove(a);this.innerSubscription=null;this.isStopped&&c.prototype._complete.call(this)};a.prototype.notifyNext=function(a,c,g,d,e){this.destination.next(c)};return a}(v),Xe=function(){function c(a){this.notifier=a}c.prototype.call=function(a,b){a=new We(a);var c=u(a,this.notifier);return c&&!a.seenValue?(a.add(c),b.subscribe(a)): +a};return c}(),We=function(c){function a(a){a=c.call(this,a)||this;a.seenValue=!1;return a}d(a,c);a.prototype.notifyNext=function(a,c,g,d,e){this.seenValue=!0;this.complete()};a.prototype.notifyComplete=function(){};return a}(v),Ze=function(){function c(a){this.predicate=a}c.prototype.call=function(a,b){return b.subscribe(new Ye(a,this.predicate))};return c}(),Ye=function(c){function a(a,f){a=c.call(this,a)||this;a.predicate=f;a.index=0;return a}d(a,c);a.prototype._next=function(a){var b=this.destination, +c;try{c=this.predicate(a,this.index++)}catch(h){b.error(h);return}this.nextOrComplete(a,c)};a.prototype.nextOrComplete=function(a,c){var b=this.destination;c?b.next(a):b.complete()};return a}(q),Kb={leading:!0,trailing:!1},af=function(){function c(a,b,c){this.durationSelector=a;this.leading=b;this.trailing=c}c.prototype.call=function(a,b){return b.subscribe(new $e(a,this.durationSelector,this.leading,this.trailing))};return c}(),$e=function(c){function a(a,f,g,d){var b=c.call(this,a)||this;b.destination= +a;b.durationSelector=f;b._leading=g;b._trailing=d;b._hasValue=!1;return b}d(a,c);a.prototype._next=function(a){this._hasValue=!0;this._sendValue=a;this._throttled||(this._leading?this.send():this.throttle(a))};a.prototype.send=function(){var a=this._sendValue;this._hasValue&&(this.destination.next(a),this.throttle(a));this._hasValue=!1;this._sendValue=null};a.prototype.throttle=function(a){(a=this.tryDurationSelector(a))&&this.add(this._throttled=u(this,a))};a.prototype.tryDurationSelector=function(a){try{return this.durationSelector(a)}catch(f){return this.destination.error(f), +null}};a.prototype.throttlingDone=function(){var a=this._throttled,c=this._trailing;a&&a.unsubscribe();this._throttled=null;c&&this.send()};a.prototype.notifyNext=function(a,c,g,d,e){this.throttlingDone()};a.prototype.notifyComplete=function(){this.throttlingDone()};return a}(v),cf=function(){function c(a,b,c,g){this.duration=a;this.scheduler=b;this.leading=c;this.trailing=g}c.prototype.call=function(a,b){return b.subscribe(new bf(a,this.duration,this.scheduler,this.leading,this.trailing))};return c}(), +bf=function(c){function a(a,f,g,d,e){a=c.call(this,a)||this;a.duration=f;a.scheduler=g;a.leading=d;a.trailing=e;a._hasTrailingValue=!1;a._trailingValue=null;return a}d(a,c);a.prototype._next=function(a){this.throttled?this.trailing&&(this._trailingValue=a,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(Dc,this.duration,{subscriber:this})),this.leading&&this.destination.next(a))};a.prototype._complete=function(){this._hasTrailingValue&&this.destination.next(this._trailingValue); +this.destination.complete()};a.prototype.clearThrottle=function(){var a=this.throttled;a&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),a.unsubscribe(),this.remove(a),this.throttled=null)};return a}(q),df=function(){return function(c,a){this.value=c;this.interval=a}}(),Ec=function(){function c(a,b,c,g){this.waitFor=a;this.absoluteTimeout=b;this.withObservable=c;this.scheduler=g}c.prototype.call=function(a,b){return b.subscribe(new ef(a, +this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))};return c}(),ef=function(c){function a(a,f,g,d,e){a=c.call(this,a)||this;a.absoluteTimeout=f;a.waitFor=g;a.withObservable=d;a.scheduler=e;a.action=null;a.scheduleTimeout();return a}d(a,c);a.dispatchTimeout=function(a){var b=a.withObservable;a._unsubscribeAndRecycle();a.add(u(a,b))};a.prototype.scheduleTimeout=function(){var b=this.action;b?this.action=b.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(a.dispatchTimeout, +this.waitFor,this))};a.prototype._next=function(a){this.absoluteTimeout||this.scheduleTimeout();c.prototype._next.call(this,a)};a.prototype._unsubscribe=function(){this.withObservable=this.scheduler=this.action=null};return a}(v),ff=function(){return function(c,a){this.value=c;this.timestamp=a}}(),hf=function(){function c(a){this.windowBoundaries=a}c.prototype.call=function(a,b){a=new gf(a);b=b.subscribe(a);b.closed||a.add(u(a,this.windowBoundaries));return b};return c}(),gf=function(c){function a(a){var b= +c.call(this,a)||this;b.window=new y;a.next(b.window);return b}d(a,c);a.prototype.notifyNext=function(a,c,d,h,e){this.openWindow()};a.prototype.notifyError=function(a,c){this._error(a)};a.prototype.notifyComplete=function(a){this._complete()};a.prototype._next=function(a){this.window.next(a)};a.prototype._error=function(a){this.window.error(a);this.destination.error(a)};a.prototype._complete=function(){this.window.complete();this.destination.complete()};a.prototype._unsubscribe=function(){this.window= +null};a.prototype.openWindow=function(){var a=this.window;a&&a.complete();var a=this.destination,c=this.window=new y;a.next(c)};return a}(v),kf=function(){function c(a,b){this.windowSize=a;this.startWindowEvery=b}c.prototype.call=function(a,b){return b.subscribe(new jf(a,this.windowSize,this.startWindowEvery))};return c}(),jf=function(c){function a(a,f,d){var b=c.call(this,a)||this;b.destination=a;b.windowSize=f;b.startWindowEvery=d;b.windows=[new y];b.count=0;a.next(b.windows[0]);return b}d(a,c); +a.prototype._next=function(a){for(var b=0=this.maxWindowSize&&this.closeWindow(e))}};a.prototype._error=function(a){for(var b=this.windows;0c)throw new T;var b=2<=arguments.length;return function(d){return d.pipe(da(function(a,b){return b===c}),Fa(1),b?ha(a):ta(function(){return new T}))}},endWith:function(){for(var c=[],a=0;a(a||0)?Number.POSITIVE_INFINITY:a;return function(d){return d.lift(new be(c,a,b))}},filter:da,finalize:function(c){return function(a){return a.lift(new de(c))}},find:function(c,a){if("function"!==typeof c)throw new TypeError("predicate is not a function");return function(b){return b.lift(new Ib(c, +b,!1,a))}},findIndex:function(c,a){return function(b){return b.lift(new Ib(c,b,!0,a))}},first:function(c,a){var b=2<=arguments.length;return function(d){return d.pipe(c?da(function(a,b){return c(a,b,d)}):S,Fa(1),b?ha(a):ta(function(){return new ia}))}},groupBy:function(c,a,b,d){return function(f){return f.lift(new Uc(c,a,b,d))}},ignoreElements:function(){return function(c){return c.lift(new ge)}},isEmpty:function(){return function(c){return c.lift(new ie)}},last:function(c,a){var b=2<=arguments.length; +return function(d){return d.pipe(c?da(function(a,b){return c(a,b,d)}):S,na(1),b?ha(a):ta(function(){return new ia}))}},map:G,mapTo:function(c){return function(a){return a.lift(new le(c))}},materialize:function(){return function(c){return c.lift(new ne)}},max:function(c){return pa("function"===typeof c?function(a,b){return 0b?a:b})},merge:function(){for(var c=[],a=0;ac(a,b)?a:b}:function(a,b){return ac?a.lift(new Jb(-1,a)):a.lift(new Jb(c-1,a))}},repeatWhen:function(c){return function(a){return a.lift(new xe(c))}},retry:function(c){void 0===c&&(c=-1);return function(a){return a.lift(new ze(c,a))}},retryWhen:function(c){return function(a){return a.lift(new Be(c,a))}},refCount:ea,sample:function(c){return function(a){return a.lift(new De(c))}}, +sampleTime:function(c,a){void 0===a&&(a=C);return function(b){return b.lift(new Fe(c,a))}},scan:oa,sequenceEqual:function(c,a){return function(b){return b.lift(new He(c,a))}},share:function(){return function(c){return ea()(W(Ac)(c))}},shareReplay:function(c,a,b){void 0===c&&(c=Number.POSITIVE_INFINITY);void 0===a&&(a=Number.POSITIVE_INFINITY);return function(d){return d.lift(Bc(c,a,b))}},single:function(c){return function(a){return a.lift(new Ke(c,a))}},skip:function(c){return function(a){return a.lift(new Me(c))}}, +skipLast:function(c){return function(a){return a.lift(new Oe(c))}},skipUntil:function(c){return function(a){return a.lift(new Qe(c))}},skipWhile:function(c){return function(a){return a.lift(new Se(c))}},startWith:function(){for(var c=[],a=0;ah?new la(e):new la(e,h)};a.parseMarbles=function(a,c,d,e,h){var b=this;void 0===e&&(e=!1);void 0===h&&(h=!1);if(-1!==a.indexOf("!"))throw Error('conventional marble diagrams cannot have the unsubscription marker "!"');for(var f=a.length,g=[],k=h?a.replace(/^[ ]+/,"").indexOf("^"):a.indexOf("^"),l=-1===k?0:k*-this.frameTimeFactor,m="object"!==typeof c?function(a){return a}:function(a){return e&&c[a]instanceof Ma?c[a].messages:c[a]},p=-1,k=function(c){var f= -l,e=function(a){f+=a*b.frameTimeFactor},k=void 0,t=a[c];switch(t){case " ":h||e(1);break;case "-":e(1);break;case "(":p=l;e(1);break;case ")":p=-1;e(1);break;case "|":k=A.createComplete();e(1);break;case "^":e(1);break;case "#":k=A.createError(d||"error");e(1);break;default:if(h&&t.match(/^[0-9]$/)&&(0===c||" "===a[c-1])){var r=a.slice(c).match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);if(r){c+=r[0].length-1;var t=parseFloat(r[1]),E=void 0;switch(r[2]){case "ms":E=t;break;case "s":E=1E3*t;break;case "m":E= -6E4*t}e(E/n.frameTimeFactor);break}}k=A.createNext(m(t));e(1)}k&&g.push({frame:-1k?new ma(e):new ma(e,k)};a.parseMarbles=function(a,c,d,e,k){var b=this;void 0===e&&(e=!1);void 0===k&&(k=!1);if(-1!==a.indexOf("!"))throw Error('conventional marble diagrams cannot have the unsubscription marker "!"');for(var f=a.length,g=[],h=k?a.replace(/^[ ]+/,"").indexOf("^"):a.indexOf("^"),l=-1===h?0:h*-this.frameTimeFactor,m="object"!==typeof c?function(a){return a}:function(a){return e&&c[a]instanceof Na?c[a].messages:c[a]},p=-1,h=function(c){var f= +l,e=function(a){f+=a*b.frameTimeFactor},h=void 0,t=a[c];switch(t){case " ":k||e(1);break;case "-":e(1);break;case "(":p=l;e(1);break;case ")":p=-1;e(1);break;case "|":h=z.createComplete();e(1);break;case "^":e(1);break;case "#":h=z.createError(d||"error");e(1);break;default:if(k&&t.match(/^[0-9]$/)&&(0===c||" "===a[c-1])){var r=a.slice(c).match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);if(r){c+=r[0].length-1;var t=parseFloat(r[1]),E=void 0;switch(r[2]){case "ms":E=t;break;case "s":E=1E3*t;break;case "m":E= +6E4*t}e(E/n.frameTimeFactor);break}}h=z.createNext(m(t));e(1)}h&&g.push({frame:-1d;d++)try{b=c[d];new F.ActiveXObject(b);break}catch(t){}a=new F.ActiveXObject(b)}catch(t){throw Error("XMLHttpRequest is not supported by your browser"); -}}return a},crossDomain:!0,withCredentials:!1,headers:{},method:"GET",responseType:"json",timeout:0};if("string"===typeof a)d.url=a;else for(var e in a)a.hasOwnProperty(e)&&(d[e]=a[e]);b.request=d;return b}d(a,c);a.prototype._subscribe=function(a){return new yf(a,this.request)};a.create=function(){var b=function(b){return new a(b)};b.get=Hc;b.post=Ic;b.delete=Jc;b.put=Kc;b.patch=Lc;b.getJSON=Mc;return b}();return a}(r),yf=function(c){function a(a,d){a=c.call(this,a)||this;a.request=d;a.done=!1;var b= -d.headers=d.headers||{};d.crossDomain||b["X-Requested-With"]||(b["X-Requested-With"]="XMLHttpRequest");"Content-Type"in b||F.FormData&&d.body instanceof F.FormData||"undefined"===typeof d.body||(b["Content-Type"]="application/x-www-form-urlencoded; charset\x3dUTF-8");d.body=a.serializeBody(d.body,d.headers["Content-Type"]);a.send();return a}d(a,c);a.prototype.next=function(a){this.done=!0;var b=this.destination;a=new Mb(a,this.xhr,this.request);a.response===p?b.error(p.e):b.next(a)};a.prototype.send= -function(){var a=this.request,c=this.request,d=c.user,e=c.method,h=c.url,l=c.async,n=c.password,q=c.headers,c=c.body,t=m(a.createXHR).call(a);if(t===p)this.error(p.e);else{this.xhr=t;this.setupEvents(t,a);d=d?m(t.open).call(t,e,h,l,d,n):m(t.open).call(t,e,h,l);if(d===p)return this.error(p.e),null;l&&(t.timeout=a.timeout,t.responseType=a.responseType);"withCredentials"in t&&(t.withCredentials=!!a.withCredentials);this.setHeaders(t,q);d=c?m(t.send).call(t,c):m(t.send).call(t);if(d===p)return this.error(p.e), +}}return a},crossDomain:!0,withCredentials:!1,headers:{},method:"GET",responseType:"json",timeout:0};if("string"===typeof a)d.url=a;else for(var e in a)a.hasOwnProperty(e)&&(d[e]=a[e]);b.request=d;return b}d(a,c);a.prototype._subscribe=function(a){return new zf(a,this.request)};a.create=function(){var b=function(b){return new a(b)};b.get=Ic;b.post=Jc;b.delete=Kc;b.put=Lc;b.patch=Mc;b.getJSON=Nc;return b}();return a}(r),zf=function(c){function a(a,d){a=c.call(this,a)||this;a.request=d;a.done=!1;var b= +d.headers=d.headers||{};d.crossDomain||b["X-Requested-With"]||(b["X-Requested-With"]="XMLHttpRequest");"Content-Type"in b||F.FormData&&d.body instanceof F.FormData||"undefined"===typeof d.body||(b["Content-Type"]="application/x-www-form-urlencoded; charset\x3dUTF-8");d.body=a.serializeBody(d.body,d.headers["Content-Type"]);a.send();return a}d(a,c);a.prototype.next=function(a){this.done=!0;var b=this.destination;a=new Nb(a,this.xhr,this.request);a.response===p?b.error(p.e):b.next(a)};a.prototype.send= +function(){var a=this.request,c=this.request,d=c.user,e=c.method,k=c.url,l=c.async,n=c.password,q=c.headers,c=c.body,t=m(a.createXHR).call(a);if(t===p)this.error(p.e);else{this.xhr=t;this.setupEvents(t,a);d=d?m(t.open).call(t,e,k,l,d,n):m(t.open).call(t,e,k,l);if(d===p)return this.error(p.e),null;l&&(t.timeout=a.timeout,t.responseType=a.responseType);"withCredentials"in t&&(t.withCredentials=!!a.withCredentials);this.setHeaders(t,q);d=c?m(t.send).call(t,c):m(t.send).call(t);if(d===p)return this.error(p.e), null}return t};a.prototype.serializeBody=function(a,c){if(!a||"string"===typeof a||F.FormData&&a instanceof F.FormData)return a;if(c){var b=c.indexOf(";");-1!==b&&(c=c.substring(0,b))}switch(c){case "application/x-www-form-urlencoded":return Object.keys(a).map(function(b){return encodeURIComponent(b)+"\x3d"+encodeURIComponent(a[b])}).join("\x26");case "application/json":return JSON.stringify(a);default:return a}};a.prototype.setHeaders=function(a,c){for(var b in c)c.hasOwnProperty(b)&&a.setRequestHeader(b, -c[b])};a.prototype.setupEvents=function(a,c){function b(a){var c=b.subscriber,d=b.progressSubscriber,f=b.request;d&&d.error(a);a=new Nb(this,f);a.response===p?c.error(p.e):c.error(a)}function d(a){}function f(a){var b=f.subscriber,c=f.progressSubscriber,d=f.request;if(4===this.readyState){var e=1223===this.status?204:this.status,g="text"===this.responseType?this.response||this.responseText:this.response;0===e&&(e=g?200:0);400>e?(c&&c.complete(),b.next(a),b.complete()):(c&&c.error(a),a=new sa("ajax error "+ -e,this,d),a.response===p?b.error(p.e):b.error(a))}}var e=c.progressSubscriber;a.ontimeout=b;b.request=c;b.subscriber=this;b.progressSubscriber=e;if(a.upload&&"withCredentials"in a){if(e){var h;h=function(a){h.progressSubscriber.next(a)};F.XDomainRequest?a.onprogress=h:a.upload.onprogress=h;h.progressSubscriber=e}var l;l=function(a){var b=l.progressSubscriber,c=l.subscriber,d=l.request;b&&b.error(a);a=new sa("ajax error",this,d);a.response===p?c.error(p.e):c.error(a)};a.onerror=l;l.request=c;l.subscriber= -this;l.progressSubscriber=e}a.onreadystatechange=d;d.subscriber=this;d.progressSubscriber=e;d.request=c;a.onload=f;f.subscriber=this;f.progressSubscriber=e;f.request=c};a.prototype.unsubscribe=function(){var a=this.xhr;!this.done&&a&&4!==a.readyState&&"function"===typeof a.abort&&a.abort();c.prototype.unsubscribe.call(this)};return a}(q),Mb=function(){return function(c,a,b){this.originalEvent=c;this.xhr=a;this.request=b;this.status=a.status;this.responseType=a.responseType||b.responseType;this.response= -ub(this.responseType,a)}}();tb.prototype=Object.create(Error.prototype);var sa=tb,Nb=function(c,a){sa.call(this,"ajax timeout",c,a);this.name="AjaxTimeoutError";return this},zf=Object.freeze({ajax:Y.create,AjaxResponse:Mb,AjaxError:sa,AjaxTimeoutError:Nb}),Af={url:"",deserializer:function(c){return JSON.parse(c.data)},serializer:function(c){return JSON.stringify(c)}},Ob=function(c){function a(a,d){var b=c.call(this)||this;if(a instanceof r)b.destination=d,b.source=a;else{d=b._config=Pc({},Af);b._output= +c[b])};a.prototype.setupEvents=function(a,c){function b(a){var c=b.subscriber,d=b.progressSubscriber,f=b.request;d&&d.error(a);a=new Ob(this,f);a.response===p?c.error(p.e):c.error(a)}function d(a){}function f(a){var b=f.subscriber,c=f.progressSubscriber,d=f.request;if(4===this.readyState){var e=1223===this.status?204:this.status,g="text"===this.responseType?this.response||this.responseText:this.response;0===e&&(e=g?200:0);400>e?(c&&c.complete(),b.next(a),b.complete()):(c&&c.error(a),a=new ua("ajax error "+ +e,this,d),a.response===p?b.error(p.e):b.error(a))}}var e=c.progressSubscriber;a.ontimeout=b;b.request=c;b.subscriber=this;b.progressSubscriber=e;if(a.upload&&"withCredentials"in a){if(e){var k;k=function(a){k.progressSubscriber.next(a)};F.XDomainRequest?a.onprogress=k:a.upload.onprogress=k;k.progressSubscriber=e}var l;l=function(a){var b=l.progressSubscriber,c=l.subscriber,d=l.request;b&&b.error(a);a=new ua("ajax error",this,d);a.response===p?c.error(p.e):c.error(a)};a.onerror=l;l.request=c;l.subscriber= +this;l.progressSubscriber=e}a.onreadystatechange=d;d.subscriber=this;d.progressSubscriber=e;d.request=c;a.onload=f;f.subscriber=this;f.progressSubscriber=e;f.request=c};a.prototype.unsubscribe=function(){var a=this.xhr;!this.done&&a&&4!==a.readyState&&"function"===typeof a.abort&&a.abort();c.prototype.unsubscribe.call(this)};return a}(q),Nb=function(){return function(c,a,b){this.originalEvent=c;this.xhr=a;this.request=b;this.status=a.status;this.responseType=a.responseType||b.responseType;this.response= +vb(this.responseType,a)}}();ub.prototype=Object.create(Error.prototype);var ua=ub,Ob=function(c,a){ua.call(this,"ajax timeout",c,a);this.name="AjaxTimeoutError";return this},Af=Object.freeze({ajax:Y.create,AjaxResponse:Nb,AjaxError:ua,AjaxTimeoutError:Ob}),Bf={url:"",deserializer:function(c){return JSON.parse(c.data)},serializer:function(c){return JSON.stringify(c)}},Pb=function(c){function a(a,d){var b=c.call(this)||this;if(a instanceof r)b.destination=d,b.source=a;else{d=b._config=Qc({},Bf);b._output= new y;if("string"===typeof a)d.url=a;else for(var f in a)a.hasOwnProperty(f)&&(d[f]=a[f]);if(!d.WebSocketCtor&&WebSocket)d.WebSocketCtor=WebSocket;else if(!d.WebSocketCtor)throw Error("no WebSocket constructor can be found");b.destination=new X}return b}d(a,c);a.prototype.lift=function(b){var c=new a(this._config,this.destination);c.operator=b;c.source=this;return c};a.prototype._resetState=function(){this._socket=null;this.source||(this.destination=new X);this._output=new y};a.prototype.multiplex= -function(a,c,d){var b=this;return new r(function(f){var e=m(a)();e===p?f.error(p.e):b.next(e);var g=b.subscribe(function(a){var b=m(d)(a);b===p?f.error(p.e):b&&f.next(a)},function(a){return f.error(a)},function(){return f.complete()});return function(){var a=m(c)();a===p?f.error(p.e):b.next(a);g.unsubscribe()}})};a.prototype._connectSocket=function(){var a=this,c=this._config,d=c.WebSocketCtor,e=c.protocol,h=c.url,c=c.binaryType,l=this._output,n=null;try{this._socket=n=e?new d(h,e):new d(h),c&&(this._socket.binaryType= +function(a,c,d){var b=this;return new r(function(f){var e=m(a)();e===p?f.error(p.e):b.next(e);var g=b.subscribe(function(a){var b=m(d)(a);b===p?f.error(p.e):b&&f.next(a)},function(a){return f.error(a)},function(){return f.complete()});return function(){var a=m(c)();a===p?f.error(p.e):b.next(a);g.unsubscribe()}})};a.prototype._connectSocket=function(){var a=this,c=this._config,d=c.WebSocketCtor,e=c.protocol,k=c.url,c=c.binaryType,l=this._output,n=null;try{this._socket=n=e?new d(k,e):new d(k),c&&(this._socket.binaryType= c)}catch(t){l.error(t);return}var r=new w(function(){a._socket=null;n&&1===n.readyState&&n.close()});n.onopen=function(b){var c=a._config.openObserver;c&&c.next(b);b=a.destination;a.destination=q.create(function(b){1===n.readyState&&(b=m(a._config.serializer)(b),b===p?a.destination.error(p.e):n.send(b))},function(b){var c=a._config.closingObserver;c&&c.next(void 0);b&&b.code?n.close(b.code,b.reason):l.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")); a._resetState()},function(){var b=a._config.closingObserver;b&&b.next(void 0);n.close();a._resetState()});b&&b instanceof X&&r.add(b.subscribe(a.destination))};n.onerror=function(b){a._resetState();l.error(b)};n.onclose=function(b){a._resetState();var c=a._config.closeObserver;c&&c.next(b);b.wasClean?l.complete():l.error(b)};n.onmessage=function(b){b=m(a._config.deserializer)(b);b===p?l.error(p.e):l.next(b)}};a.prototype._subscribe=function(a){var b=this,c=this.source;if(c)return c.subscribe(a);this._socket|| -this._connectSocket();this._output.subscribe(a);a.add(function(){var a=b._socket;0===b._output.observers.length&&(a&&1===a.readyState&&a.close(),b._resetState())});return a};a.prototype.unsubscribe=function(){var a=this.source,d=this._socket;d&&1===d.readyState&&(d.close(),this._resetState());c.prototype.unsubscribe.call(this);a||(this.destination=new X)};return a}(Ga),Bf=Object.freeze({webSocket:function(c){return new Ob(c)},WebSocketSubject:Ob});e.operators=tf;e.testing=vf;e.ajax=zf;e.webSocket= -Bf;e.Observable=r;e.ConnectableObservable=yb;e.GroupedObservable=Ha;e.observable=ba;e.Subject=y;e.BehaviorSubject=zb;e.ReplaySubject=X;e.AsyncSubject=aa;e.asapScheduler=qa;e.asyncScheduler=C;e.queueScheduler=Ab;e.animationFrameScheduler=cd;e.VirtualTimeScheduler=Db;e.VirtualAction=Ka;e.Scheduler=Ia;e.Subscription=w;e.Subscriber=q;e.Notification=A;e.pipe=N;e.noop=z;e.identity=S;e.isObservable=function(c){return!!c&&(c instanceof r||"function"===typeof c.lift&&"function"===typeof c.subscribe)};e.ArgumentOutOfRangeError= -T;e.EmptyError=ha;e.ObjectUnsubscribedError=J;e.UnsubscriptionError=fa;e.TimeoutError=ya;e.bindCallback=Ra;e.bindNodeCallback=Sa;e.combineLatest=function(){for(var c=[],a=0;ac)c=0;a&&"function"===typeof a.schedule||(a=C);return new r(function(b){b.add(a.schedule(dc,c,{subscriber:b,counter:0,period:c}));return b})};e.merge=eb;e.never=function(){return Fb};e.of=wa;e.onErrorResumeNext=Da;e.pairs=function(c,a){return a?new r(function(b){var d=Object.keys(c),e=new w;e.add(a.schedule(ec,0,{keys:d,index:0,subscriber:b,subscription:e,obj:c})); -return e}):new r(function(a){for(var b=Object.keys(c),d=0;d=a){d.complete();break}d.next(f++);if(d.closed)break}while(1)})};e.throwError=xa;e.timer=gb;e.using=function(c,a){return new r(function(b){var d;try{d=c()}catch(E){b.error(E); -return}var e;try{e=a(d)}catch(E){b.error(E);return}var h=(e?M(e):R).subscribe(b);return function(){h.unsubscribe();d&&d.unsubscribe()}})};e.zip=hb;e.EMPTY=R;e.NEVER=Fb;e.config=H;Object.defineProperty(e,"__esModule",{value:!0})}); +this._connectSocket();this._output.subscribe(a);a.add(function(){var a=b._socket;0===b._output.observers.length&&(a&&1===a.readyState&&a.close(),b._resetState())});return a};a.prototype.unsubscribe=function(){var a=this.source,d=this._socket;d&&1===d.readyState&&(d.close(),this._resetState());c.prototype.unsubscribe.call(this);a||(this.destination=new X)};return a}(Ha),Cf=Object.freeze({webSocket:function(c){return new Pb(c)},WebSocketSubject:Pb});e.operators=uf;e.testing=wf;e.ajax=Af;e.webSocket= +Cf;e.Observable=r;e.ConnectableObservable=zb;e.GroupedObservable=Ia;e.observable=ba;e.Subject=y;e.BehaviorSubject=Ab;e.ReplaySubject=X;e.AsyncSubject=aa;e.asapScheduler=sa;e.asyncScheduler=C;e.queueScheduler=Bb;e.animationFrameScheduler=dd;e.VirtualTimeScheduler=Eb;e.VirtualAction=La;e.Scheduler=Ja;e.Subscription=w;e.Subscriber=q;e.Notification=z;e.pipe=wa;e.noop=A;e.identity=S;e.isObservable=function(c){return!!c&&(c instanceof r||"function"===typeof c.lift&&"function"===typeof c.subscribe)};e.ArgumentOutOfRangeError= +T;e.EmptyError=ia;e.ObjectUnsubscribedError=J;e.UnsubscriptionError=fa;e.TimeoutError=Aa;e.bindCallback=Sa;e.bindNodeCallback=Ta;e.combineLatest=function(){for(var c=[],a=0;ac)c=0;a&&"function"===typeof a.schedule||(a=C);return new r(function(b){b.add(a.schedule(ec,c,{subscriber:b,counter:0,period:c}));return b})};e.merge=fb;e.never=function(){return Gb};e.of=ya;e.onErrorResumeNext=Ea;e.pairs=function(c,a){return a?new r(function(b){var d=Object.keys(c),e=new w;e.add(a.schedule(fc,0,{keys:d,index:0,subscriber:b,subscription:e,obj:c})); +return e}):new r(function(a){for(var b=Object.keys(c),d=0;d=a){d.complete();break}d.next(f++);if(d.closed)break}while(1)})};e.throwError=za;e.timer=hb;e.using=function(c,a){return new r(function(b){var d;try{d=c()}catch(E){b.error(E); +return}var e;try{e=a(d)}catch(E){b.error(E);return}var h=(e?N(e):R).subscribe(b);return function(){h.unsubscribe();d&&d.unsubscribe()}})};e.zip=ib;e.EMPTY=R;e.NEVER=Gb;e.config=H;Object.defineProperty(e,"__esModule",{value:!0})}); diff --git a/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.min.js.map b/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.min.js.map index 209d15d0f78463..911e578577df95 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.min.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/bundles/rxjs.umd.min.js.map @@ -1 +1 @@ -{"version":3,"file":"","lineCount":281,"mappings":"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","sources":["../ [synthetic:base] ","../ [synthetic:util/defineproperty] ","../ [synthetic:util/global] ","../ [synthetic:util/polyfill] ","../ [synthetic:es6/object/setprototypeof] ","../ [synthetic:util/owns] ","../ [synthetic:es6/object/assign] ","../ [synthetic:es6/symbol] ","../ [synthetic:es6/util/makeiterator] ","../ [synthetic:es6/promise] ","../ [synthetic:es6/weakmap] ","../ [synthetic:es6/map] ","../ [synthetic:es6/util/iteratorfromarray] ","../ [synthetic:es6/array/values] ","../ [synthetic:es6/array/keys] ","../ [synthetic:es6/set] ","../Input_0"],"names":["global","factory","exports","module","define","amd","rxjs","__extends","d","b","__","constructor","extendStatics","prototype","Object","create","isFunction","x","hostReportError","err","setTimeout","tryCatcher","tryCatchTarget","apply","arguments","e","errorObject","tryCatch","fn","UnsubscriptionErrorImpl","errors","Error","call","message","length","map","i","toString","join","name","flattenUnsubscriptionErrors","reduce","errs","concat","UnsubscriptionError","noop","pipe","fns","_i","pipeFromArray","piped","input","prev","getPromiseCtor","promiseCtor","config","Promise","ObjectUnsubscribedErrorImpl","refCount","refCountOperatorFunction","source","lift","RefCountOperator$1","empty$1","scheduler","emptyScheduled","EMPTY","Observable","subscriber","schedule","complete","isScheduler","value","fromArray","sub","Subscription","add","next","closed","subscribeToArray","scalar","result","_isScalar","of","args","pop","undefined","throwError","error","dispatch","_a","identity","ArgumentOutOfRangeErrorImpl","EmptyErrorImpl","TimeoutErrorImpl","project","thisArg","mapOperation","TypeError","MapOperator","bindCallback","callbackFunc","resultSelector","isArray","context","subject","params","dispatch$1","state","AsyncSubject","handler","innerArgs","subscribe","_this","dispatchNext","bindNodeCallback","dispatch$2","shift","dispatchError$1","dispatchNext$1","arg","isPromise","then","subscribeToResult","outerSubscriber","outerValue","outerIndex","destination","InnerSubscriber","subscribeTo","fromPromise","subscribeToPromise","fromIterable","iterator$$1","return","iterator","done","subscribeToIterable","fromObservable","observable$$1","observable","subscribeToObservable","from","isArrayLike","mergeMap","concurrent","Number","POSITIVE_INFINITY","a","ii","MergeMapOperator","mergeAll","concatAll","observables","defer","observableFactory","forkJoin","sources","ForkJoinSubscriber","fromEvent","target","eventName","options","setupSubscription","Array","slice","sourceObj","unsubscribe","addEventListener","removeEventListener","on","off","addListener","removeListener","len","fromEventPattern","addHandler","removeHandler","retValue","dispatch$3","condition","needIterate","iterate","conditionResult","isNumeric","val","parseFloat","dispatch$4","counter","period","merge","last","onErrorResumeNext","first","remainder","subNext","dispatch$5","keys","index","subscription","obj","key","race","RaceOperator","dispatch$6","start","count","timer","dueTime","periodOrScheduler","async","due","now","dispatch$7","zip","ZipOperator","audit","durationSelector","auditOperatorFunction","AuditOperator","dispatchBufferTimeSpanOnly","prevContext","closeContext","openContext","closeAction","bufferTimeSpan","dispatchBufferCreation","bufferCreationInterval","dispatchBufferClose","action","concatMap","dispatchNext$2","debouncedNext","defaultIfEmpty","defaultValue","DefaultIfEmptyOperator","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","filter","predicate","filterOperatorFunction","FilterOperator","tap","nextOrObserver","tapOperatorFunction","DoOperator","defaultErrorFactory","EmptyError","take","TakeOperator","exhaustMap","ExhauseMapOperator","takeLast","takeLastOperatorFunction","TakeLastOperator","scan","accumulator","seed","hasSeed","scanOperatorFunction","ScanOperator","reduceOperatorFunctionWithSeed","reduceOperatorFunction","acc","multicast","subjectOrSubjectFactory","selector","multicastOperatorFunction","subjectFactory","MulticastOperator","connectable","connectableObservableDescriptor","not","pred","notPred","plucker","props","mapper","currentProp","p","dispatchNotification","notifyNext","shareSubjectFactory","Subject","shareReplayOperator","bufferSize","windowTime","hasError","isComplete","shareReplayOperation","ReplaySubject","innerSub","switchMap","SwitchMapOperator","dispatchNext$3","clearThrottle","timeoutWith","withObservable","absoluteTimeout","Date","isNaN","waitFor","Math","abs","TimeoutWithOperator","toArrayReducer","arr","item","push","dispatchWindowTimeSpanOnly","windowTimeSpan","window","closeWindow","openWindow","dispatchWindowCreation","windowCreationInterval","dispatchWindowClose","timeSpanState","remove","applyMixins","derivedCtor","baseCtors","baseCtor","propertyKeys","getOwnPropertyNames","j","len2","name_1","ajaxGet","url","headers","AjaxObservable","method","ajaxPost","body","ajaxDelete","ajaxPut","ajaxPatch","ajaxGetJSON","mapResponse","responseType","AjaxErrorImpl","xhr","request","status","response","parseXhrResponse","parseJson","JSON","parse","responseText","responseXML","setPrototypeOf","__proto__","hasOwnProperty","__assign","assign","t","s","n","_enable_super_gross_mode_that_will_cause_bad_things","useDeprecatedSynchronousErrorHandling","console","warn","stack","log","empty","_subscriptions","_parents","_parent","_unsubscribe","Subscription.prototype.unsubscribe","hasErrors","trial","Subscription.prototype.add","teardown","_addParent","tmp","Subscription.prototype.remove","subscriptions","subscriptionIndex","indexOf","splice","Subscription.prototype._addParent","parent","rxSubscriber","Symbol","for","Subscriber","_super","destinationOrNext","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","_parentSubscription","trustedSubscriber","_addParentTeardownLogic","SafeSubscriber","Subscriber.create","Subscriber.prototype.next","_next","Subscriber.prototype.error","_error","_unsubscribeParentSubscription","Subscriber.prototype.complete","_complete","Subscriber.prototype.unsubscribe","Subscriber.prototype._next","Subscriber.prototype._error","Subscriber.prototype._complete","Subscriber.prototype._addParentTeardownLogic","parentTeardownLogic","Subscriber.prototype._unsubscribeParentSubscription","_unsubscribeAndRecycle","Subscriber.prototype._unsubscribeAndRecycle","_parentSubscriber","observerOrNext","bind","_context","SafeSubscriber.prototype.next","__tryOrSetError","__tryOrUnsub","SafeSubscriber.prototype.error","SafeSubscriber.prototype.complete","wrappedComplete","SafeSubscriber.prototype.__tryOrUnsub","SafeSubscriber.prototype.__tryOrSetError","SafeSubscriber.prototype._unsubscribe","_subscribe","Observable.prototype.lift","operator","Observable.prototype.subscribe","sink","_trySubscribe","Observable.prototype._trySubscribe","forEach","Observable.prototype.forEach","resolve","reject","Observable.prototype._subscribe","Observable.prototype.pipe","operations","toPromise","Observable.prototype.toPromise","Observable.create","SubjectSubscription","SubjectSubscription.prototype.unsubscribe","observers","subscriberIndex","SubjectSubscriber","thrownError","Subject.prototype.lift","AnonymousSubject","Subject.prototype.next","copy","Subject.prototype.error","Subject.prototype.complete","Subject.prototype.unsubscribe","Subject.prototype._trySubscribe","Subject.prototype._subscribe","asObservable","Subject.prototype.asObservable","Subject.create","AnonymousSubject.prototype.next","AnonymousSubject.prototype.error","AnonymousSubject.prototype.complete","AnonymousSubject.prototype._subscribe","RefCountOperator","RefCountOperator.prototype.call","_refCount","refCounter","RefCountSubscriber$1","connection","connect","RefCountSubscriber","RefCountSubscriber.prototype._unsubscribe","sharedConnection","_connection","ConnectableObservable","_isComplete","ConnectableObservable.prototype._subscribe","getSubject","ConnectableObservable.prototype.getSubject","_subject","ConnectableObservable.prototype.connect","ConnectableSubscriber","ConnectableObservable.prototype.refCount","connectableProto","writable","ConnectableSubscriber.prototype._error","ConnectableSubscriber.prototype._complete","ConnectableSubscriber.prototype._unsubscribe","refCount$$1","GroupByOperator","elementSelector","subjectSelector","GroupByOperator.prototype.call","GroupBySubscriber","groups","attemptedToUnsubscribe","GroupBySubscriber.prototype._next","_group","GroupBySubscriber.prototype._group","Map","group","get","element","set","groupedObservable","GroupedObservable","duration","GroupDurationSubscriber","GroupBySubscriber.prototype._error","clear","GroupBySubscriber.prototype._complete","removeGroup","GroupBySubscriber.prototype.removeGroup","delete","GroupBySubscriber.prototype.unsubscribe","GroupDurationSubscriber.prototype._next","GroupDurationSubscriber.prototype._unsubscribe","groupSubject","refCountSubscription","GroupedObservable.prototype._subscribe","InnerRefCountSubscription","InnerRefCountSubscription.prototype.unsubscribe","BehaviorSubject","_value","defineProperty","getValue","enumerable","configurable","BehaviorSubject.prototype._subscribe","BehaviorSubject.prototype.getValue","BehaviorSubject.prototype.next","AsyncAction","work","pending","AsyncAction.prototype.schedule","delay","id","recycleAsyncId","requestAsyncId","AsyncAction.prototype.requestAsyncId","setInterval","flush","AsyncAction.prototype.recycleAsyncId","clearInterval","execute","AsyncAction.prototype.execute","_execute","AsyncAction.prototype._execute","errored","errorValue","AsyncAction.prototype._unsubscribe","actions","Action","Action.prototype.schedule","QueueAction","QueueAction.prototype.schedule","QueueAction.prototype.execute","QueueAction.prototype.requestAsyncId","Scheduler","SchedulerAction","Scheduler.prototype.schedule","Scheduler.now","AsyncScheduler","delegate","active","scheduled","AsyncScheduler.prototype.schedule","AsyncScheduler.prototype.flush","queue","QueueScheduler","array","Notification","kind","hasValue","observe","Notification.prototype.observe","observer","do","Notification.prototype.do","accept","Notification.prototype.accept","toObservable","Notification.prototype.toObservable","createNext","Notification.createNext","undefinedValueNotification","createError","Notification.createError","createComplete","Notification.createComplete","completeNotification","ObserveOnOperator","ObserveOnOperator.prototype.call","ObserveOnSubscriber","ObserveOnSubscriber.dispatch","notification","scheduleMessage","ObserveOnSubscriber.prototype.scheduleMessage","ObserveOnMessage","ObserveOnSubscriber.prototype._next","ObserveOnSubscriber.prototype._error","ObserveOnSubscriber.prototype._complete","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplaySubject.prototype.nextInfiniteTimeWindow","ReplaySubject.prototype.nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","ReplaySubject.prototype._subscribe","ReplaySubject.prototype._getNow","ReplaySubject.prototype._trimBufferThenGetEvents","eventsCount","spliceCount","time","max","hasNext","hasCompleted","AsyncSubject.prototype._subscribe","AsyncSubject.prototype.next","AsyncSubject.prototype.error","AsyncSubject.prototype.complete","nextHandle","tasksByHandle","Immediate","setImmediate","cb","handle","clearImmediate","AsapAction","AsapAction.prototype.requestAsyncId","AsapAction.prototype.recycleAsyncId","asap","AsapScheduler","AsapScheduler.prototype.flush","AnimationFrameAction","AnimationFrameAction.prototype.requestAsyncId","requestAnimationFrame","AnimationFrameAction.prototype.recycleAsyncId","cancelAnimationFrame","animationFrame","AnimationFrameScheduler","AnimationFrameScheduler.prototype.flush","VirtualTimeScheduler","maxFrames","VirtualAction","frame","VirtualTimeScheduler.prototype.flush","frameTimeFactor","VirtualAction.prototype.schedule","VirtualAction.prototype.requestAsyncId","sort","sortActions","VirtualAction.prototype.recycleAsyncId","VirtualAction.prototype._execute","VirtualAction.sortActions","MapOperator.prototype.call","MapSubscriber","MapSubscriber.prototype._next","OuterSubscriber","OuterSubscriber.prototype.notifyNext","innerValue","innerIndex","notifyError","OuterSubscriber.prototype.notifyError","notifyComplete","OuterSubscriber.prototype.notifyComplete","InnerSubscriber.prototype._next","InnerSubscriber.prototype._error","InnerSubscriber.prototype._complete","promise","iterable","obs","NONE","CombineLatestOperator","CombineLatestOperator.prototype.call","CombineLatestSubscriber","values","CombineLatestSubscriber.prototype._next","CombineLatestSubscriber.prototype._complete","toRespond","CombineLatestSubscriber.prototype.notifyComplete","unused","CombineLatestSubscriber.prototype.notifyNext","oldVal","_tryResultSelector","CombineLatestSubscriber.prototype._tryResultSelector","MergeMapOperator.prototype.call","MergeMapSubscriber","buffer","MergeMapSubscriber.prototype._next","_tryNext","MergeMapSubscriber.prototype._tryNext","_innerSub","MergeMapSubscriber.prototype._innerSub","ish","innerSubscriber","MergeMapSubscriber.prototype._complete","MergeMapSubscriber.prototype.notifyNext","MergeMapSubscriber.prototype.notifyComplete","completed","haveValues","innerSubscription","ForkJoinSubscriber.prototype.notifyNext","_hasValue","ForkJoinSubscriber.prototype.notifyComplete","NEVER","RaceOperator.prototype.call","RaceSubscriber","hasFirst","RaceSubscriber.prototype._next","RaceSubscriber.prototype._complete","RaceSubscriber.prototype.notifyNext","ZipOperator.prototype.call","ZipSubscriber","iterators","ZipSubscriber.prototype._next","StaticArrayIterator","StaticIterator","ZipBufferIterator","ZipSubscriber.prototype._complete","stillUnsubscribed","notifyInactive","ZipSubscriber.prototype.notifyInactive","checkIterators","ZipSubscriber.prototype.checkIterators","shouldComplete","_tryresultSelector","ZipSubscriber.prototype._tryresultSelector","nextResult","StaticIterator.prototype.hasValue","StaticIterator.prototype.next","StaticIterator.prototype.hasCompleted","StaticArrayIterator.prototype.next","StaticArrayIterator.prototype.hasValue","StaticArrayIterator.prototype.hasCompleted","ZipBufferIterator.prototype.next","ZipBufferIterator.prototype.hasValue","ZipBufferIterator.prototype.hasCompleted","ZipBufferIterator.prototype.notifyComplete","ZipBufferIterator.prototype.notifyNext","ZipBufferIterator.prototype.subscribe","AuditOperator.prototype.call","AuditSubscriber","AuditSubscriber.prototype._next","throttled","AuditSubscriber.prototype.clearThrottle","AuditSubscriber.prototype.notifyNext","AuditSubscriber.prototype.notifyComplete","BufferOperator","closingNotifier","BufferOperator.prototype.call","BufferSubscriber","BufferSubscriber.prototype._next","BufferSubscriber.prototype.notifyNext","BufferCountOperator","startBufferEvery","subscriberClass","BufferSkipCountSubscriber","BufferCountSubscriber","BufferCountOperator.prototype.call","BufferCountSubscriber.prototype._next","BufferCountSubscriber.prototype._complete","buffers","BufferSkipCountSubscriber.prototype._next","BufferSkipCountSubscriber.prototype._complete","BufferTimeOperator","maxBufferSize","BufferTimeOperator.prototype.call","BufferTimeSubscriber","Context","contexts","timespanOnly","timeSpanOnlyState","creationState","closeState","BufferTimeSubscriber.prototype._next","filledBufferContext","context_1","onBufferFull","BufferTimeSubscriber.prototype._error","BufferTimeSubscriber.prototype._complete","context_2","BufferTimeSubscriber.prototype._unsubscribe","BufferTimeSubscriber.prototype.onBufferFull","BufferTimeSubscriber.prototype.openContext","BufferTimeSubscriber.prototype.closeContext","spliceIndex","BufferToggleOperator","openings","closingSelector","BufferToggleOperator.prototype.call","BufferToggleSubscriber","BufferToggleSubscriber.prototype._next","BufferToggleSubscriber.prototype._error","BufferToggleSubscriber.prototype._complete","BufferToggleSubscriber.prototype.notifyNext","closeBuffer","openBuffer","BufferToggleSubscriber.prototype.notifyComplete","BufferToggleSubscriber.prototype.openBuffer","trySubscribe","BufferToggleSubscriber.prototype.closeBuffer","BufferToggleSubscriber.prototype.trySubscribe","BufferWhenOperator","BufferWhenOperator.prototype.call","BufferWhenSubscriber","subscribing","BufferWhenSubscriber.prototype._next","BufferWhenSubscriber.prototype._complete","BufferWhenSubscriber.prototype._unsubscribe","BufferWhenSubscriber.prototype.notifyNext","BufferWhenSubscriber.prototype.notifyComplete","BufferWhenSubscriber.prototype.openBuffer","closingSubscription","CatchOperator","CatchOperator.prototype.call","CatchSubscriber","caught","CatchSubscriber.prototype.error","err2","CountOperator","CountOperator.prototype.call","CountSubscriber","CountSubscriber.prototype._next","_tryPredicate","CountSubscriber.prototype._tryPredicate","CountSubscriber.prototype._complete","DebounceOperator","DebounceOperator.prototype.call","DebounceSubscriber","durationSubscription","DebounceSubscriber.prototype._next","DebounceSubscriber.prototype._complete","emitValue","DebounceSubscriber.prototype._tryNext","DebounceSubscriber.prototype.notifyNext","DebounceSubscriber.prototype.notifyComplete","DebounceSubscriber.prototype.emitValue","DebounceTimeOperator","DebounceTimeOperator.prototype.call","DebounceTimeSubscriber","debouncedSubscription","lastValue","DebounceTimeSubscriber.prototype._next","clearDebounce","DebounceTimeSubscriber.prototype._complete","DebounceTimeSubscriber.prototype.debouncedNext","DebounceTimeSubscriber.prototype.clearDebounce","DefaultIfEmptyOperator.prototype.call","DefaultIfEmptySubscriber","isEmpty","DefaultIfEmptySubscriber.prototype._next","DefaultIfEmptySubscriber.prototype._complete","DelayOperator","DelayOperator.prototype.call","DelaySubscriber","DelaySubscriber.dispatch","delay_1","_schedule","DelaySubscriber.prototype._schedule","scheduleNotification","DelaySubscriber.prototype.scheduleNotification","DelayMessage","DelaySubscriber.prototype._next","DelaySubscriber.prototype._error","DelaySubscriber.prototype._complete","DelayWhenOperator","delayDurationSelector","DelayWhenOperator.prototype.call","DelayWhenSubscriber","delayNotifierSubscriptions","DelayWhenSubscriber.prototype.notifyNext","removeSubscription","tryComplete","DelayWhenSubscriber.prototype.notifyError","DelayWhenSubscriber.prototype.notifyComplete","DelayWhenSubscriber.prototype._next","delayNotifier","tryDelay","DelayWhenSubscriber.prototype._complete","DelayWhenSubscriber.prototype.removeSubscription","subscriptionIdx","DelayWhenSubscriber.prototype.tryDelay","notifierSubscription","DelayWhenSubscriber.prototype.tryComplete","SubscriptionDelayObservable","subscriptionDelay","SubscriptionDelayObservable.prototype._subscribe","SubscriptionDelaySubscriber","sourceSubscribed","SubscriptionDelaySubscriber.prototype._next","subscribeToSource","SubscriptionDelaySubscriber.prototype._error","SubscriptionDelaySubscriber.prototype._complete","SubscriptionDelaySubscriber.prototype.subscribeToSource","DeMaterializeOperator","DeMaterializeOperator.prototype.call","DeMaterializeSubscriber","DeMaterializeSubscriber.prototype._next","DistinctOperator","flushes","DistinctOperator.prototype.call","DistinctSubscriber","Set","DistinctSubscriber.prototype.notifyNext","DistinctSubscriber.prototype.notifyError","DistinctSubscriber.prototype._next","_useKeySelector","_finalizeNext","DistinctSubscriber.prototype._useKeySelector","DistinctSubscriber.prototype._finalizeNext","has","DistinctUntilChangedOperator.prototype.call","DistinctUntilChangedSubscriber","hasKey","DistinctUntilChangedSubscriber.prototype.compare","y","DistinctUntilChangedSubscriber.prototype._next","FilterOperator.prototype.call","FilterSubscriber","FilterSubscriber.prototype._next","DoOperator.prototype.call","TapSubscriber","_tapNext","_tapError","_tapComplete","TapSubscriber.prototype._next","TapSubscriber.prototype._error","TapSubscriber.prototype._complete","throwIfEmpty","errorFactory","total","TakeOperator.prototype.call","TakeSubscriber","TakeSubscriber.prototype._next","EveryOperator","EveryOperator.prototype.call","EverySubscriber","EverySubscriber.prototype.notifyComplete","everyValueMatch","EverySubscriber.prototype._next","EverySubscriber.prototype._complete","SwitchFirstOperator","SwitchFirstOperator.prototype.call","SwitchFirstSubscriber","hasSubscription","SwitchFirstSubscriber.prototype._next","SwitchFirstSubscriber.prototype._complete","SwitchFirstSubscriber.prototype.notifyComplete","ExhauseMapOperator.prototype.call","ExhaustMapSubscriber","ExhaustMapSubscriber.prototype._next","tryNext","ExhaustMapSubscriber.prototype.tryNext","ExhaustMapSubscriber.prototype._innerSub","ExhaustMapSubscriber.prototype._complete","ExhaustMapSubscriber.prototype.notifyNext","ExhaustMapSubscriber.prototype.notifyError","ExhaustMapSubscriber.prototype.notifyComplete","ExpandOperator","ExpandOperator.prototype.call","ExpandSubscriber","ExpandSubscriber.dispatch","subscribeToProjection","ExpandSubscriber.prototype._next","ExpandSubscriber.prototype.subscribeToProjection","ExpandSubscriber.prototype._complete","ExpandSubscriber.prototype.notifyNext","ExpandSubscriber.prototype.notifyComplete","FinallyOperator","callback","FinallyOperator.prototype.call","FinallySubscriber","FindValueOperator","yieldIndex","FindValueOperator.prototype.call","FindValueSubscriber","FindValueSubscriber.prototype.notifyComplete","FindValueSubscriber.prototype._next","FindValueSubscriber.prototype._complete","IgnoreElementsOperator","IgnoreElementsOperator.prototype.call","IgnoreElementsSubscriber","IgnoreElementsSubscriber.prototype._next","IsEmptyOperator","IsEmptyOperator.prototype.call","IsEmptySubscriber","IsEmptySubscriber.prototype.notifyComplete","IsEmptySubscriber.prototype._next","IsEmptySubscriber.prototype._complete","TakeLastOperator.prototype.call","TakeLastSubscriber","ring","TakeLastSubscriber.prototype._next","TakeLastSubscriber.prototype._complete","idx","MapToOperator","MapToOperator.prototype.call","MapToSubscriber","MapToSubscriber.prototype._next","MaterializeOperator","MaterializeOperator.prototype.call","MaterializeSubscriber","MaterializeSubscriber.prototype._next","MaterializeSubscriber.prototype._error","MaterializeSubscriber.prototype._complete","ScanOperator.prototype.call","ScanSubscriber","_seed","ScanSubscriber.prototype._next","ScanSubscriber.prototype._tryNext","MergeScanOperator","MergeScanOperator.prototype.call","MergeScanSubscriber","MergeScanSubscriber.prototype._next","MergeScanSubscriber.prototype._innerSub","MergeScanSubscriber.prototype._complete","MergeScanSubscriber.prototype.notifyNext","MergeScanSubscriber.prototype.notifyComplete","MulticastOperator.prototype.call","OnErrorResumeNextOperator","nextSources","OnErrorResumeNextOperator.prototype.call","OnErrorResumeNextSubscriber","OnErrorResumeNextSubscriber.prototype.notifyError","subscribeToNextSource","OnErrorResumeNextSubscriber.prototype.notifyComplete","OnErrorResumeNextSubscriber.prototype._error","OnErrorResumeNextSubscriber.prototype._complete","OnErrorResumeNextSubscriber.prototype.subscribeToNextSource","PairwiseOperator","PairwiseOperator.prototype.call","PairwiseSubscriber","hasPrev","PairwiseSubscriber.prototype._next","RepeatOperator","RepeatOperator.prototype.call","RepeatSubscriber","RepeatSubscriber.prototype.complete","RepeatWhenOperator","notifier","RepeatWhenOperator.prototype.call","RepeatWhenSubscriber","sourceIsBeingSubscribedTo","RepeatWhenSubscriber.prototype.notifyNext","RepeatWhenSubscriber.prototype.notifyComplete","RepeatWhenSubscriber.prototype.complete","retries","subscribeToRetries","retriesSubscription","notifications","RepeatWhenSubscriber.prototype._unsubscribe","RepeatWhenSubscriber.prototype._unsubscribeAndRecycle","RepeatWhenSubscriber.prototype.subscribeToRetries","RetryOperator","RetryOperator.prototype.call","RetrySubscriber","RetrySubscriber.prototype.error","RetryWhenOperator","RetryWhenOperator.prototype.call","RetryWhenSubscriber","RetryWhenSubscriber.prototype.error","RetryWhenSubscriber.prototype._unsubscribe","RetryWhenSubscriber.prototype.notifyNext","SampleOperator","SampleOperator.prototype.call","sampleSubscriber","SampleSubscriber","SampleSubscriber.prototype._next","SampleSubscriber.prototype.notifyNext","SampleSubscriber.prototype.notifyComplete","SampleSubscriber.prototype.emitValue","SampleTimeOperator","SampleTimeOperator.prototype.call","SampleTimeSubscriber","SampleTimeSubscriber.prototype._next","SampleTimeSubscriber.prototype.notifyNext","SequenceEqualOperator","compareTo","comparor","SequenceEqualOperator.prototype.call","SequenceEqualSubscriber","_b","_oneComplete","SequenceEqualCompareToSubscriber","SequenceEqualSubscriber.prototype._next","emit","checkValues","SequenceEqualSubscriber.prototype._complete","SequenceEqualSubscriber.prototype.checkValues","_c","areEqual","SequenceEqualSubscriber.prototype.emit","nextB","SequenceEqualSubscriber.prototype.nextB","SequenceEqualCompareToSubscriber.prototype._next","SequenceEqualCompareToSubscriber.prototype._error","SequenceEqualCompareToSubscriber.prototype._complete","SingleOperator","SingleOperator.prototype.call","SingleSubscriber","seenValue","applySingleValue","SingleSubscriber.prototype.applySingleValue","singleValue","SingleSubscriber.prototype._next","SingleSubscriber.prototype.tryNext","SingleSubscriber.prototype._complete","SkipOperator","SkipOperator.prototype.call","SkipSubscriber","SkipSubscriber.prototype._next","SkipLastOperator","_skipCount","SkipLastOperator.prototype.call","SkipLastSubscriber","_count","_ring","SkipLastSubscriber.prototype._next","skipCount","currentIndex","oldValue","SkipUntilOperator","SkipUntilOperator.prototype.call","SkipUntilSubscriber","SkipUntilSubscriber.prototype._next","SkipUntilSubscriber.prototype.notifyNext","SkipUntilSubscriber.prototype.notifyComplete","SkipWhileOperator","SkipWhileOperator.prototype.call","SkipWhileSubscriber","skipping","SkipWhileSubscriber.prototype._next","tryCallPredicate","SkipWhileSubscriber.prototype.tryCallPredicate","SubscribeOnObservable","delayTime","SubscribeOnObservable.create","SubscribeOnObservable.dispatch","SubscribeOnObservable.prototype._subscribe","SubscribeOnOperator","SubscribeOnOperator.prototype.call","SwitchMapOperator.prototype.call","SwitchMapSubscriber","SwitchMapSubscriber.prototype._next","SwitchMapSubscriber.prototype._innerSub","SwitchMapSubscriber.prototype._complete","SwitchMapSubscriber.prototype._unsubscribe","SwitchMapSubscriber.prototype.notifyComplete","SwitchMapSubscriber.prototype.notifyNext","TakeUntilOperator","TakeUntilOperator.prototype.call","takeUntilSubscriber","TakeUntilSubscriber","TakeUntilSubscriber.prototype.notifyNext","TakeUntilSubscriber.prototype.notifyComplete","TakeWhileOperator","TakeWhileOperator.prototype.call","TakeWhileSubscriber","TakeWhileSubscriber.prototype._next","nextOrComplete","TakeWhileSubscriber.prototype.nextOrComplete","predicateResult","defaultThrottleConfig","leading","trailing","ThrottleOperator","ThrottleOperator.prototype.call","ThrottleSubscriber","_leading","_trailing","ThrottleSubscriber.prototype._next","_sendValue","_throttled","send","throttle","ThrottleSubscriber.prototype.send","ThrottleSubscriber.prototype.throttle","tryDurationSelector","ThrottleSubscriber.prototype.tryDurationSelector","throttlingDone","ThrottleSubscriber.prototype.throttlingDone","ThrottleSubscriber.prototype.notifyNext","ThrottleSubscriber.prototype.notifyComplete","ThrottleTimeOperator","ThrottleTimeOperator.prototype.call","ThrottleTimeSubscriber","_hasTrailingValue","_trailingValue","ThrottleTimeSubscriber.prototype._next","ThrottleTimeSubscriber.prototype._complete","ThrottleTimeSubscriber.prototype.clearThrottle","TimeInterval","interval","TimeoutWithOperator.prototype.call","TimeoutWithSubscriber","scheduleTimeout","dispatchTimeout","TimeoutWithSubscriber.dispatchTimeout","TimeoutWithSubscriber.prototype.scheduleTimeout","TimeoutWithSubscriber.prototype._next","TimeoutWithSubscriber.prototype._unsubscribe","Timestamp","timestamp","WindowOperator","windowBoundaries","WindowOperator.prototype.call","windowSubscriber","WindowSubscriber","sourceSubscription","WindowSubscriber.prototype.notifyNext","WindowSubscriber.prototype.notifyError","WindowSubscriber.prototype.notifyComplete","WindowSubscriber.prototype._next","WindowSubscriber.prototype._error","WindowSubscriber.prototype._complete","WindowSubscriber.prototype._unsubscribe","WindowSubscriber.prototype.openWindow","prevWindow","newWindow","WindowCountOperator","windowSize","startWindowEvery","WindowCountOperator.prototype.call","WindowCountSubscriber","windows","WindowCountSubscriber.prototype._next","c","window_1","WindowCountSubscriber.prototype._error","WindowCountSubscriber.prototype._complete","WindowCountSubscriber.prototype._unsubscribe","WindowTimeOperator","maxWindowSize","WindowTimeOperator.prototype.call","WindowTimeSubscriber","CountedSubject","_numberOfNextedValues","CountedSubject.prototype.next","WindowTimeSubscriber.prototype._next","numberOfNextedValues","WindowTimeSubscriber.prototype._error","WindowTimeSubscriber.prototype._complete","window_2","WindowTimeSubscriber.prototype.openWindow","WindowTimeSubscriber.prototype.closeWindow","WindowToggleOperator","WindowToggleOperator.prototype.call","WindowToggleSubscriber","openSubscription","WindowToggleSubscriber.prototype._next","WindowToggleSubscriber.prototype._error","WindowToggleSubscriber.prototype._complete","WindowToggleSubscriber.prototype._unsubscribe","context_3","WindowToggleSubscriber.prototype.notifyNext","context_4","WindowToggleSubscriber.prototype.notifyError","WindowToggleSubscriber.prototype.notifyComplete","inner","WindowToggleSubscriber.prototype.closeWindow","WindowOperator$1","WindowSubscriber$1","unsubscribeClosingNotification","WindowSubscriber.prototype.unsubscribeClosingNotification","closingNotification","WithLatestFromOperator","WithLatestFromOperator.prototype.call","WithLatestFromSubscriber","WithLatestFromSubscriber.prototype.notifyNext","found","WithLatestFromSubscriber.prototype.notifyComplete","WithLatestFromSubscriber.prototype._next","_tryProject","WithLatestFromSubscriber.prototype._tryProject","_operators","freeze","auditTime","bufferOperatorFunction","bufferCount","bufferCountOperatorFunction","bufferTime","bufferTimeOperatorFunction","bufferToggle","bufferToggleOperatorFunction","bufferWhen","catchError","catchErrorOperatorFunction","combineAll","combineLatest","combineLatest$1","concat$1","concatMapTo","innerObservable","debounce","debounceTime","delayFor","delayWhen","dematerialize","dematerializeOperatorFunction","distinct","distinctUntilKeyChanged","elementAt","hasDefaultValue","v","endWith","every","exhaust","expand","finalize","find","findIndex","groupBy","ignoreElements","ignoreElementsOperatorFunction","mapTo","materialize","materializeOperatorFunction","comparer","merge$1","flatMap","mergeMapTo","mergeScan","min","observeOn","observeOnOperatorFunction","onErrorResumeNext$1","pairwise","partition","pluck","properties","publish","publishBehavior","publishLast","publishReplay","selectorOrScheduler","race$1","raceOperatorFunction","repeat","repeatWhen","retry","retryWhen","sample","sampleTime","sequenceEqual","share","shareReplay","MAX_VALUE","single","skip","skipLast","skipUntil","skipWhile","startWith","subscribeOn","subscribeOnOperatorFunction","switchAll","switchMapTo","takeUntil","takeWhile","throttleTime","timeInterval","current","timeout","toArray","window$1","windowOperatorFunction","windowCount","windowCountOperatorFunction","windowTimeOperatorFunction","windowToggle","windowWhen","windowWhenOperatorFunction","withLatestFrom","zip$1","zipOperatorFunction","zipAll","SubscriptionLog","subscribedFrame","unsubscribedFrame","SubscriptionLoggable","logSubscribedFrame","SubscriptionLoggable.prototype.logSubscribedFrame","logUnsubscribedFrame","SubscriptionLoggable.prototype.logUnsubscribedFrame","subscriptionLogs","oldSubscriptionLog","ColdObservable","messages","scheduleMessages","ColdObservable.prototype.scheduleMessages","messagesLength","HotObservable","HotObservable.prototype._subscribe","setup","HotObservable.prototype.setup","TestScheduler","assertDeepEqual","defaultMaxFrame","hotObservables","coldObservables","flushTests","runMode","createTime","TestScheduler.prototype.createTime","marbles","createColdObservable","TestScheduler.prototype.createColdObservable","parseMarbles","cold","createHotObservable","TestScheduler.prototype.createHotObservable","materializeInnerObservable","TestScheduler.prototype.materializeInnerObservable","outerFrame","expectObservable","TestScheduler.prototype.expectObservable","subscriptionMarbles","actual","flushTest","ready","subscriptionParsed","parseMarblesAsSubscriptions","unsubscriptionFrame","subscriptionFrame","toBe","expected","expectSubscriptions","TestScheduler.prototype.expectSubscriptions","actualSubscriptionLogs","marblesArray","TestScheduler.prototype.flush","test","TestScheduler.parseMarblesAsSubscriptions","groupStart","_loop_1","nextFrame","advanceFrameBy","match","durationInMs","unit","this_1","out_i_1","TestScheduler.parseMarbles","materializeInnerObservables","testMessages","subIndex","replace","_loop_2","this_2","out_i_2","run","TestScheduler.prototype.run","prevFrameTimeFactor","prevMaxFrames","helpers","hot","ret","_testing","__self","self","WorkerGlobalScope","__global","_root","urlOrRequest","createXHR","crossDomain","XMLHttpRequest","XDomainRequest","progId","progIds","ActiveXObject","withCredentials","prop","AjaxObservable.prototype._subscribe","AjaxSubscriber","post","put","patch","getJSON","FormData","serializeBody","AjaxSubscriber.prototype.next","AjaxResponse","AjaxSubscriber.prototype.send","user","password","setupEvents","open","setHeaders","AjaxSubscriber.prototype.serializeBody","contentType","splitIndex","substring","encodeURIComponent","stringify","AjaxSubscriber.prototype.setHeaders","setRequestHeader","AjaxSubscriber.prototype.setupEvents","xhrTimeout","progressSubscriber","ajaxTimeoutError","AjaxTimeoutError","xhrReadyStateChange","xhrLoad","readyState","status_1","ajaxError","AjaxError","ontimeout","upload","xhrProgress_1","onprogress","xhrError_1","onerror","onreadystatechange","onload","AjaxSubscriber.prototype.unsubscribe","abort","originalEvent","AjaxTimeoutErrorImpl","_ajax","ajax","DEFAULT_WEBSOCKET_CONFIG","deserializer","data","serializer","WebSocketSubject","urlConfigOrSource","_config","_output","WebSocketCtor","WebSocket","WebSocketSubject.prototype.lift","sock","_resetState","WebSocketSubject.prototype._resetState","_socket","multiplex","WebSocketSubject.prototype.multiplex","subMsg","unsubMsg","messageFilter","_connectSocket","WebSocketSubject.prototype._connectSocket","protocol","binaryType","socket","close","onopen","socket.onopen","openObserver","msg","closingObserver","code","reason","WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT","socket.onerror","onclose","socket.onclose","closeObserver","wasClean","onmessage","socket.onmessage","WebSocketSubject.prototype._subscribe","WebSocketSubject.prototype.unsubscribe","webSocket$$1","_webSocket","webSocket","webSocket$1","operators","testing","asapScheduler","asyncScheduler","queueScheduler","animationFrameScheduler","isObservable","ArgumentOutOfRangeError","ObjectUnsubscribedError","TimeoutError","generate","initialStateOrOptions","resultSelectorOrObservable","initialState","iif","trueResult","falseResult","never","pairs","range","using","resourceFactory","resource"]} +{"version":3,"file":"","lineCount":282,"mappings":"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","sources":["../ [synthetic:base] ","../ [synthetic:util/defineproperty] ","../ [synthetic:util/global] ","../ [synthetic:util/polyfill] ","../ [synthetic:es6/object/setprototypeof] ","../ [synthetic:util/owns] ","../ [synthetic:es6/object/assign] ","../ [synthetic:es6/symbol] ","../ [synthetic:es6/util/makeiterator] ","../ [synthetic:es6/promise] ","../ [synthetic:es6/weakmap] ","../ [synthetic:es6/map] ","../ [synthetic:es6/util/iteratorfromarray] ","../ [synthetic:es6/array/values] ","../ [synthetic:es6/array/keys] ","../ [synthetic:es6/set] ","../Input_0"],"names":["global","factory","exports","module","define","amd","rxjs","__extends","d","b","__","constructor","extendStatics","prototype","Object","create","isFunction","x","hostReportError","err","setTimeout","tryCatcher","tryCatchTarget","apply","arguments","e","errorObject","tryCatch","fn","UnsubscriptionErrorImpl","errors","Error","call","message","length","map","i","toString","join","name","flattenUnsubscriptionErrors","reduce","errs","concat","UnsubscriptionError","canReportError","observer","destination","_a","isStopped","closed","Subscriber","noop","pipe","fns","_i","pipeFromArray","piped","input","prev","getPromiseCtor","promiseCtor","config","Promise","ObjectUnsubscribedErrorImpl","refCount","refCountOperatorFunction","source","lift","RefCountOperator$1","empty$1","scheduler","emptyScheduled","EMPTY","Observable","subscriber","schedule","complete","isScheduler","value","fromArray","sub","Subscription","add","next","subscribeToArray","scalar","result","_isScalar","of","args","pop","undefined","throwError","error","dispatch","identity","ArgumentOutOfRangeErrorImpl","EmptyErrorImpl","TimeoutErrorImpl","project","thisArg","mapOperation","TypeError","MapOperator","bindCallback","callbackFunc","resultSelector","isArray","context","subject","params","dispatch$1","state","AsyncSubject","handler","innerArgs","console","warn","subscribe","_this","dispatchNext","bindNodeCallback","dispatch$2","shift","dispatchError$1","dispatchNext$1","arg","isPromise","then","subscribeToResult","outerSubscriber","outerValue","outerIndex","InnerSubscriber","subscribeTo","fromPromise","subscribeToPromise","fromIterable","iterator$$1","return","iterator","done","subscribeToIterable","fromObservable","observable$$1","observable","subscribeToObservable","from","isArrayLike","mergeMap","concurrent","Number","POSITIVE_INFINITY","a","ii","MergeMapOperator","mergeAll","concatAll","observables","defer","observableFactory","forkJoin","sources","ForkJoinSubscriber","fromEvent","target","eventName","options","setupSubscription","Array","slice","sourceObj","unsubscribe","addEventListener","removeEventListener","on","off","addListener","removeListener","len","fromEventPattern","addHandler","removeHandler","retValue","dispatch$3","condition","needIterate","iterate","conditionResult","isNumeric","val","parseFloat","dispatch$4","counter","period","merge","last","onErrorResumeNext","first","remainder","subNext","dispatch$5","keys","index","subscription","obj","key","race","RaceOperator","dispatch$6","start","count","timer","dueTime","periodOrScheduler","async","due","now","dispatch$7","zip","ZipOperator","audit","durationSelector","auditOperatorFunction","AuditOperator","dispatchBufferTimeSpanOnly","prevContext","closeContext","openContext","closeAction","bufferTimeSpan","dispatchBufferCreation","bufferCreationInterval","dispatchBufferClose","action","concatMap","dispatchNext$2","debouncedNext","defaultIfEmpty","defaultValue","DefaultIfEmptyOperator","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","filter","predicate","filterOperatorFunction","FilterOperator","tap","nextOrObserver","tapOperatorFunction","DoOperator","defaultErrorFactory","EmptyError","take","TakeOperator","exhaustMap","ExhauseMapOperator","takeLast","takeLastOperatorFunction","TakeLastOperator","scan","accumulator","seed","hasSeed","scanOperatorFunction","ScanOperator","reduceOperatorFunctionWithSeed","reduceOperatorFunction","acc","multicast","subjectOrSubjectFactory","selector","multicastOperatorFunction","subjectFactory","MulticastOperator","connectable","connectableObservableDescriptor","not","pred","notPred","plucker","props","mapper","currentProp","p","dispatchNotification","notifyNext","shareSubjectFactory","Subject","shareReplayOperator","bufferSize","windowTime","hasError","isComplete","shareReplayOperation","ReplaySubject","innerSub","switchMap","SwitchMapOperator","dispatchNext$3","clearThrottle","timeoutWith","withObservable","absoluteTimeout","Date","isNaN","waitFor","Math","abs","TimeoutWithOperator","toArrayReducer","arr","item","push","dispatchWindowTimeSpanOnly","windowTimeSpan","window","closeWindow","openWindow","dispatchWindowCreation","windowCreationInterval","dispatchWindowClose","timeSpanState","remove","applyMixins","derivedCtor","baseCtors","baseCtor","propertyKeys","getOwnPropertyNames","j","len2","name_1","ajaxGet","url","headers","AjaxObservable","method","ajaxPost","body","ajaxDelete","ajaxPut","ajaxPatch","ajaxGetJSON","mapResponse","responseType","AjaxErrorImpl","xhr","request","status","response","parseXhrResponse","parseJson","JSON","parse","responseText","responseXML","setPrototypeOf","__proto__","hasOwnProperty","__assign","assign","t","s","n","_enable_super_gross_mode_that_will_cause_bad_things","useDeprecatedSynchronousErrorHandling","stack","log","empty","_subscriptions","_parents","_parent","_unsubscribe","Subscription.prototype.unsubscribe","hasErrors","trial","Subscription.prototype.add","teardown","_addParent","tmp","Subscription.prototype.remove","subscriptions","subscriptionIndex","indexOf","splice","Subscription.prototype._addParent","parent","rxSubscriber","Symbol","random","_super","destinationOrNext","syncErrorValue","syncErrorThrown","syncErrorThrowable","_parentSubscription","SafeSubscriber","Subscriber.create","Subscriber.prototype.next","_next","Subscriber.prototype.error","_error","Subscriber.prototype.complete","_complete","Subscriber.prototype.unsubscribe","Subscriber.prototype._next","Subscriber.prototype._error","Subscriber.prototype._complete","_unsubscribeAndRecycle","Subscriber.prototype._unsubscribeAndRecycle","_parentSubscriber","observerOrNext","bind","_context","SafeSubscriber.prototype.next","__tryOrSetError","__tryOrUnsub","SafeSubscriber.prototype.error","SafeSubscriber.prototype.complete","wrappedComplete","SafeSubscriber.prototype.__tryOrUnsub","SafeSubscriber.prototype.__tryOrSetError","SafeSubscriber.prototype._unsubscribe","_subscribe","Observable.prototype.lift","operator","Observable.prototype.subscribe","sink","_trySubscribe","Observable.prototype._trySubscribe","forEach","Observable.prototype.forEach","resolve","reject","Observable.prototype._subscribe","Observable.prototype.pipe","operations","toPromise","Observable.prototype.toPromise","Observable.create","SubjectSubscription","SubjectSubscription.prototype.unsubscribe","observers","subscriberIndex","SubjectSubscriber","thrownError","Subject.prototype.lift","AnonymousSubject","Subject.prototype.next","copy","Subject.prototype.error","Subject.prototype.complete","Subject.prototype.unsubscribe","Subject.prototype._trySubscribe","Subject.prototype._subscribe","asObservable","Subject.prototype.asObservable","Subject.create","AnonymousSubject.prototype.next","AnonymousSubject.prototype.error","AnonymousSubject.prototype.complete","AnonymousSubject.prototype._subscribe","RefCountOperator","RefCountOperator.prototype.call","_refCount","refCounter","RefCountSubscriber$1","connection","connect","RefCountSubscriber","RefCountSubscriber.prototype._unsubscribe","sharedConnection","_connection","ConnectableObservable","_isComplete","ConnectableObservable.prototype._subscribe","getSubject","ConnectableObservable.prototype.getSubject","_subject","ConnectableObservable.prototype.connect","ConnectableSubscriber","ConnectableObservable.prototype.refCount","connectableProto","writable","ConnectableSubscriber.prototype._error","ConnectableSubscriber.prototype._complete","ConnectableSubscriber.prototype._unsubscribe","refCount$$1","GroupByOperator","elementSelector","subjectSelector","GroupByOperator.prototype.call","GroupBySubscriber","groups","attemptedToUnsubscribe","GroupBySubscriber.prototype._next","_group","GroupBySubscriber.prototype._group","Map","group","get","element","set","groupedObservable","GroupedObservable","duration","GroupDurationSubscriber","GroupBySubscriber.prototype._error","clear","GroupBySubscriber.prototype._complete","removeGroup","GroupBySubscriber.prototype.removeGroup","delete","GroupBySubscriber.prototype.unsubscribe","GroupDurationSubscriber.prototype._next","GroupDurationSubscriber.prototype._unsubscribe","groupSubject","refCountSubscription","GroupedObservable.prototype._subscribe","InnerRefCountSubscription","InnerRefCountSubscription.prototype.unsubscribe","BehaviorSubject","_value","defineProperty","getValue","enumerable","configurable","BehaviorSubject.prototype._subscribe","BehaviorSubject.prototype.getValue","BehaviorSubject.prototype.next","AsyncAction","work","pending","AsyncAction.prototype.schedule","delay","id","recycleAsyncId","requestAsyncId","AsyncAction.prototype.requestAsyncId","setInterval","flush","AsyncAction.prototype.recycleAsyncId","clearInterval","execute","AsyncAction.prototype.execute","_execute","AsyncAction.prototype._execute","errored","errorValue","AsyncAction.prototype._unsubscribe","actions","Action","Action.prototype.schedule","QueueAction","QueueAction.prototype.schedule","QueueAction.prototype.execute","QueueAction.prototype.requestAsyncId","Scheduler","SchedulerAction","Scheduler.prototype.schedule","Scheduler.now","AsyncScheduler","delegate","active","scheduled","AsyncScheduler.prototype.schedule","AsyncScheduler.prototype.flush","queue","QueueScheduler","array","Notification","kind","hasValue","observe","Notification.prototype.observe","do","Notification.prototype.do","accept","Notification.prototype.accept","toObservable","Notification.prototype.toObservable","createNext","Notification.createNext","undefinedValueNotification","createError","Notification.createError","createComplete","Notification.createComplete","completeNotification","ObserveOnOperator","ObserveOnOperator.prototype.call","ObserveOnSubscriber","ObserveOnSubscriber.dispatch","notification","scheduleMessage","ObserveOnSubscriber.prototype.scheduleMessage","ObserveOnMessage","ObserveOnSubscriber.prototype._next","ObserveOnSubscriber.prototype._error","ObserveOnSubscriber.prototype._complete","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplaySubject.prototype.nextInfiniteTimeWindow","ReplaySubject.prototype.nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","ReplaySubject.prototype._subscribe","ReplaySubject.prototype._getNow","ReplaySubject.prototype._trimBufferThenGetEvents","eventsCount","spliceCount","time","max","hasNext","hasCompleted","AsyncSubject.prototype._subscribe","AsyncSubject.prototype.next","AsyncSubject.prototype.error","AsyncSubject.prototype.complete","nextHandle","tasksByHandle","Immediate","setImmediate","cb","handle","clearImmediate","AsapAction","AsapAction.prototype.requestAsyncId","AsapAction.prototype.recycleAsyncId","asap","AsapScheduler","AsapScheduler.prototype.flush","AnimationFrameAction","AnimationFrameAction.prototype.requestAsyncId","requestAnimationFrame","AnimationFrameAction.prototype.recycleAsyncId","cancelAnimationFrame","animationFrame","AnimationFrameScheduler","AnimationFrameScheduler.prototype.flush","VirtualTimeScheduler","maxFrames","VirtualAction","frame","VirtualTimeScheduler.prototype.flush","frameTimeFactor","VirtualAction.prototype.schedule","VirtualAction.prototype.requestAsyncId","sort","sortActions","VirtualAction.prototype.recycleAsyncId","VirtualAction.prototype._execute","VirtualAction.sortActions","MapOperator.prototype.call","MapSubscriber","MapSubscriber.prototype._next","OuterSubscriber","OuterSubscriber.prototype.notifyNext","innerValue","innerIndex","notifyError","OuterSubscriber.prototype.notifyError","notifyComplete","OuterSubscriber.prototype.notifyComplete","InnerSubscriber.prototype._next","InnerSubscriber.prototype._error","InnerSubscriber.prototype._complete","promise","iterable","obs","NONE","CombineLatestOperator","CombineLatestOperator.prototype.call","CombineLatestSubscriber","values","CombineLatestSubscriber.prototype._next","CombineLatestSubscriber.prototype._complete","toRespond","CombineLatestSubscriber.prototype.notifyComplete","unused","CombineLatestSubscriber.prototype.notifyNext","oldVal","_tryResultSelector","CombineLatestSubscriber.prototype._tryResultSelector","MergeMapOperator.prototype.call","MergeMapSubscriber","buffer","MergeMapSubscriber.prototype._next","_tryNext","MergeMapSubscriber.prototype._tryNext","_innerSub","MergeMapSubscriber.prototype._innerSub","ish","innerSubscriber","MergeMapSubscriber.prototype._complete","MergeMapSubscriber.prototype.notifyNext","MergeMapSubscriber.prototype.notifyComplete","completed","haveValues","innerSubscription","ForkJoinSubscriber.prototype.notifyNext","_hasValue","ForkJoinSubscriber.prototype.notifyComplete","NEVER","RaceOperator.prototype.call","RaceSubscriber","hasFirst","RaceSubscriber.prototype._next","RaceSubscriber.prototype._complete","RaceSubscriber.prototype.notifyNext","ZipOperator.prototype.call","ZipSubscriber","iterators","ZipSubscriber.prototype._next","StaticArrayIterator","StaticIterator","ZipBufferIterator","ZipSubscriber.prototype._complete","stillUnsubscribed","notifyInactive","ZipSubscriber.prototype.notifyInactive","checkIterators","ZipSubscriber.prototype.checkIterators","shouldComplete","_tryresultSelector","ZipSubscriber.prototype._tryresultSelector","nextResult","StaticIterator.prototype.hasValue","StaticIterator.prototype.next","StaticIterator.prototype.hasCompleted","StaticArrayIterator.prototype.next","StaticArrayIterator.prototype.hasValue","StaticArrayIterator.prototype.hasCompleted","ZipBufferIterator.prototype.next","ZipBufferIterator.prototype.hasValue","ZipBufferIterator.prototype.hasCompleted","ZipBufferIterator.prototype.notifyComplete","ZipBufferIterator.prototype.notifyNext","ZipBufferIterator.prototype.subscribe","AuditOperator.prototype.call","AuditSubscriber","AuditSubscriber.prototype._next","throttled","AuditSubscriber.prototype.clearThrottle","AuditSubscriber.prototype.notifyNext","AuditSubscriber.prototype.notifyComplete","BufferOperator","closingNotifier","BufferOperator.prototype.call","BufferSubscriber","BufferSubscriber.prototype._next","BufferSubscriber.prototype.notifyNext","BufferCountOperator","startBufferEvery","subscriberClass","BufferSkipCountSubscriber","BufferCountSubscriber","BufferCountOperator.prototype.call","BufferCountSubscriber.prototype._next","BufferCountSubscriber.prototype._complete","buffers","BufferSkipCountSubscriber.prototype._next","BufferSkipCountSubscriber.prototype._complete","BufferTimeOperator","maxBufferSize","BufferTimeOperator.prototype.call","BufferTimeSubscriber","Context","contexts","timespanOnly","timeSpanOnlyState","creationState","closeState","BufferTimeSubscriber.prototype._next","filledBufferContext","context_1","onBufferFull","BufferTimeSubscriber.prototype._error","BufferTimeSubscriber.prototype._complete","context_2","BufferTimeSubscriber.prototype._unsubscribe","BufferTimeSubscriber.prototype.onBufferFull","BufferTimeSubscriber.prototype.openContext","BufferTimeSubscriber.prototype.closeContext","spliceIndex","BufferToggleOperator","openings","closingSelector","BufferToggleOperator.prototype.call","BufferToggleSubscriber","BufferToggleSubscriber.prototype._next","BufferToggleSubscriber.prototype._error","BufferToggleSubscriber.prototype._complete","BufferToggleSubscriber.prototype.notifyNext","closeBuffer","openBuffer","BufferToggleSubscriber.prototype.notifyComplete","BufferToggleSubscriber.prototype.openBuffer","trySubscribe","BufferToggleSubscriber.prototype.closeBuffer","BufferToggleSubscriber.prototype.trySubscribe","BufferWhenOperator","BufferWhenOperator.prototype.call","BufferWhenSubscriber","subscribing","BufferWhenSubscriber.prototype._next","BufferWhenSubscriber.prototype._complete","BufferWhenSubscriber.prototype._unsubscribe","BufferWhenSubscriber.prototype.notifyNext","BufferWhenSubscriber.prototype.notifyComplete","BufferWhenSubscriber.prototype.openBuffer","closingSubscription","CatchOperator","CatchOperator.prototype.call","CatchSubscriber","caught","CatchSubscriber.prototype.error","err2","CountOperator","CountOperator.prototype.call","CountSubscriber","CountSubscriber.prototype._next","_tryPredicate","CountSubscriber.prototype._tryPredicate","CountSubscriber.prototype._complete","DebounceOperator","DebounceOperator.prototype.call","DebounceSubscriber","durationSubscription","DebounceSubscriber.prototype._next","DebounceSubscriber.prototype._complete","emitValue","DebounceSubscriber.prototype._tryNext","DebounceSubscriber.prototype.notifyNext","DebounceSubscriber.prototype.notifyComplete","DebounceSubscriber.prototype.emitValue","DebounceTimeOperator","DebounceTimeOperator.prototype.call","DebounceTimeSubscriber","debouncedSubscription","lastValue","DebounceTimeSubscriber.prototype._next","clearDebounce","DebounceTimeSubscriber.prototype._complete","DebounceTimeSubscriber.prototype.debouncedNext","DebounceTimeSubscriber.prototype.clearDebounce","DefaultIfEmptyOperator.prototype.call","DefaultIfEmptySubscriber","isEmpty","DefaultIfEmptySubscriber.prototype._next","DefaultIfEmptySubscriber.prototype._complete","DelayOperator","DelayOperator.prototype.call","DelaySubscriber","DelaySubscriber.dispatch","delay_1","_schedule","DelaySubscriber.prototype._schedule","scheduleNotification","DelaySubscriber.prototype.scheduleNotification","DelayMessage","DelaySubscriber.prototype._next","DelaySubscriber.prototype._error","DelaySubscriber.prototype._complete","DelayWhenOperator","delayDurationSelector","DelayWhenOperator.prototype.call","DelayWhenSubscriber","delayNotifierSubscriptions","DelayWhenSubscriber.prototype.notifyNext","removeSubscription","tryComplete","DelayWhenSubscriber.prototype.notifyError","DelayWhenSubscriber.prototype.notifyComplete","DelayWhenSubscriber.prototype._next","delayNotifier","tryDelay","DelayWhenSubscriber.prototype._complete","DelayWhenSubscriber.prototype.removeSubscription","subscriptionIdx","DelayWhenSubscriber.prototype.tryDelay","notifierSubscription","DelayWhenSubscriber.prototype.tryComplete","SubscriptionDelayObservable","subscriptionDelay","SubscriptionDelayObservable.prototype._subscribe","SubscriptionDelaySubscriber","sourceSubscribed","SubscriptionDelaySubscriber.prototype._next","subscribeToSource","SubscriptionDelaySubscriber.prototype._error","SubscriptionDelaySubscriber.prototype._complete","SubscriptionDelaySubscriber.prototype.subscribeToSource","DeMaterializeOperator","DeMaterializeOperator.prototype.call","DeMaterializeSubscriber","DeMaterializeSubscriber.prototype._next","DistinctOperator","flushes","DistinctOperator.prototype.call","DistinctSubscriber","Set","DistinctSubscriber.prototype.notifyNext","DistinctSubscriber.prototype.notifyError","DistinctSubscriber.prototype._next","_useKeySelector","_finalizeNext","DistinctSubscriber.prototype._useKeySelector","DistinctSubscriber.prototype._finalizeNext","has","DistinctUntilChangedOperator.prototype.call","DistinctUntilChangedSubscriber","hasKey","DistinctUntilChangedSubscriber.prototype.compare","y","DistinctUntilChangedSubscriber.prototype._next","FilterOperator.prototype.call","FilterSubscriber","FilterSubscriber.prototype._next","DoOperator.prototype.call","TapSubscriber","_tapNext","_tapError","_tapComplete","TapSubscriber.prototype._next","TapSubscriber.prototype._error","TapSubscriber.prototype._complete","throwIfEmpty","errorFactory","total","TakeOperator.prototype.call","TakeSubscriber","TakeSubscriber.prototype._next","EveryOperator","EveryOperator.prototype.call","EverySubscriber","EverySubscriber.prototype.notifyComplete","everyValueMatch","EverySubscriber.prototype._next","EverySubscriber.prototype._complete","SwitchFirstOperator","SwitchFirstOperator.prototype.call","SwitchFirstSubscriber","hasSubscription","SwitchFirstSubscriber.prototype._next","SwitchFirstSubscriber.prototype._complete","SwitchFirstSubscriber.prototype.notifyComplete","ExhauseMapOperator.prototype.call","ExhaustMapSubscriber","ExhaustMapSubscriber.prototype._next","tryNext","ExhaustMapSubscriber.prototype.tryNext","ExhaustMapSubscriber.prototype._innerSub","ExhaustMapSubscriber.prototype._complete","ExhaustMapSubscriber.prototype.notifyNext","ExhaustMapSubscriber.prototype.notifyError","ExhaustMapSubscriber.prototype.notifyComplete","ExpandOperator","ExpandOperator.prototype.call","ExpandSubscriber","ExpandSubscriber.dispatch","subscribeToProjection","ExpandSubscriber.prototype._next","ExpandSubscriber.prototype.subscribeToProjection","ExpandSubscriber.prototype._complete","ExpandSubscriber.prototype.notifyNext","ExpandSubscriber.prototype.notifyComplete","FinallyOperator","callback","FinallyOperator.prototype.call","FinallySubscriber","FindValueOperator","yieldIndex","FindValueOperator.prototype.call","FindValueSubscriber","FindValueSubscriber.prototype.notifyComplete","FindValueSubscriber.prototype._next","FindValueSubscriber.prototype._complete","IgnoreElementsOperator","IgnoreElementsOperator.prototype.call","IgnoreElementsSubscriber","IgnoreElementsSubscriber.prototype._next","IsEmptyOperator","IsEmptyOperator.prototype.call","IsEmptySubscriber","IsEmptySubscriber.prototype.notifyComplete","IsEmptySubscriber.prototype._next","IsEmptySubscriber.prototype._complete","TakeLastOperator.prototype.call","TakeLastSubscriber","ring","TakeLastSubscriber.prototype._next","TakeLastSubscriber.prototype._complete","idx","MapToOperator","MapToOperator.prototype.call","MapToSubscriber","MapToSubscriber.prototype._next","MaterializeOperator","MaterializeOperator.prototype.call","MaterializeSubscriber","MaterializeSubscriber.prototype._next","MaterializeSubscriber.prototype._error","MaterializeSubscriber.prototype._complete","ScanOperator.prototype.call","ScanSubscriber","_seed","ScanSubscriber.prototype._next","ScanSubscriber.prototype._tryNext","MergeScanOperator","MergeScanOperator.prototype.call","MergeScanSubscriber","MergeScanSubscriber.prototype._next","MergeScanSubscriber.prototype._innerSub","MergeScanSubscriber.prototype._complete","MergeScanSubscriber.prototype.notifyNext","MergeScanSubscriber.prototype.notifyComplete","MulticastOperator.prototype.call","OnErrorResumeNextOperator","nextSources","OnErrorResumeNextOperator.prototype.call","OnErrorResumeNextSubscriber","OnErrorResumeNextSubscriber.prototype.notifyError","subscribeToNextSource","OnErrorResumeNextSubscriber.prototype.notifyComplete","OnErrorResumeNextSubscriber.prototype._error","OnErrorResumeNextSubscriber.prototype._complete","OnErrorResumeNextSubscriber.prototype.subscribeToNextSource","PairwiseOperator","PairwiseOperator.prototype.call","PairwiseSubscriber","hasPrev","PairwiseSubscriber.prototype._next","RepeatOperator","RepeatOperator.prototype.call","RepeatSubscriber","RepeatSubscriber.prototype.complete","RepeatWhenOperator","notifier","RepeatWhenOperator.prototype.call","RepeatWhenSubscriber","sourceIsBeingSubscribedTo","RepeatWhenSubscriber.prototype.notifyNext","RepeatWhenSubscriber.prototype.notifyComplete","RepeatWhenSubscriber.prototype.complete","retries","subscribeToRetries","retriesSubscription","notifications","RepeatWhenSubscriber.prototype._unsubscribe","RepeatWhenSubscriber.prototype._unsubscribeAndRecycle","RepeatWhenSubscriber.prototype.subscribeToRetries","RetryOperator","RetryOperator.prototype.call","RetrySubscriber","RetrySubscriber.prototype.error","RetryWhenOperator","RetryWhenOperator.prototype.call","RetryWhenSubscriber","RetryWhenSubscriber.prototype.error","RetryWhenSubscriber.prototype._unsubscribe","RetryWhenSubscriber.prototype.notifyNext","SampleOperator","SampleOperator.prototype.call","sampleSubscriber","SampleSubscriber","SampleSubscriber.prototype._next","SampleSubscriber.prototype.notifyNext","SampleSubscriber.prototype.notifyComplete","SampleSubscriber.prototype.emitValue","SampleTimeOperator","SampleTimeOperator.prototype.call","SampleTimeSubscriber","SampleTimeSubscriber.prototype._next","SampleTimeSubscriber.prototype.notifyNext","SequenceEqualOperator","compareTo","comparor","SequenceEqualOperator.prototype.call","SequenceEqualSubscriber","_b","_oneComplete","SequenceEqualCompareToSubscriber","SequenceEqualSubscriber.prototype._next","emit","checkValues","SequenceEqualSubscriber.prototype._complete","SequenceEqualSubscriber.prototype.checkValues","_c","areEqual","SequenceEqualSubscriber.prototype.emit","nextB","SequenceEqualSubscriber.prototype.nextB","completeB","SequenceEqualSubscriber.prototype.completeB","SequenceEqualCompareToSubscriber.prototype._next","SequenceEqualCompareToSubscriber.prototype._error","SequenceEqualCompareToSubscriber.prototype._complete","SingleOperator","SingleOperator.prototype.call","SingleSubscriber","seenValue","applySingleValue","SingleSubscriber.prototype.applySingleValue","singleValue","SingleSubscriber.prototype._next","SingleSubscriber.prototype.tryNext","SingleSubscriber.prototype._complete","SkipOperator","SkipOperator.prototype.call","SkipSubscriber","SkipSubscriber.prototype._next","SkipLastOperator","_skipCount","SkipLastOperator.prototype.call","SkipLastSubscriber","_count","_ring","SkipLastSubscriber.prototype._next","skipCount","currentIndex","oldValue","SkipUntilOperator","SkipUntilOperator.prototype.call","SkipUntilSubscriber","SkipUntilSubscriber.prototype._next","SkipUntilSubscriber.prototype.notifyNext","SkipUntilSubscriber.prototype.notifyComplete","SkipWhileOperator","SkipWhileOperator.prototype.call","SkipWhileSubscriber","skipping","SkipWhileSubscriber.prototype._next","tryCallPredicate","SkipWhileSubscriber.prototype.tryCallPredicate","SubscribeOnObservable","delayTime","SubscribeOnObservable.create","SubscribeOnObservable.dispatch","SubscribeOnObservable.prototype._subscribe","SubscribeOnOperator","SubscribeOnOperator.prototype.call","SwitchMapOperator.prototype.call","SwitchMapSubscriber","SwitchMapSubscriber.prototype._next","SwitchMapSubscriber.prototype._innerSub","SwitchMapSubscriber.prototype._complete","SwitchMapSubscriber.prototype._unsubscribe","SwitchMapSubscriber.prototype.notifyComplete","SwitchMapSubscriber.prototype.notifyNext","TakeUntilOperator","TakeUntilOperator.prototype.call","takeUntilSubscriber","TakeUntilSubscriber","TakeUntilSubscriber.prototype.notifyNext","TakeUntilSubscriber.prototype.notifyComplete","TakeWhileOperator","TakeWhileOperator.prototype.call","TakeWhileSubscriber","TakeWhileSubscriber.prototype._next","nextOrComplete","TakeWhileSubscriber.prototype.nextOrComplete","predicateResult","defaultThrottleConfig","leading","trailing","ThrottleOperator","ThrottleOperator.prototype.call","ThrottleSubscriber","_leading","_trailing","ThrottleSubscriber.prototype._next","_sendValue","_throttled","send","throttle","ThrottleSubscriber.prototype.send","ThrottleSubscriber.prototype.throttle","tryDurationSelector","ThrottleSubscriber.prototype.tryDurationSelector","throttlingDone","ThrottleSubscriber.prototype.throttlingDone","ThrottleSubscriber.prototype.notifyNext","ThrottleSubscriber.prototype.notifyComplete","ThrottleTimeOperator","ThrottleTimeOperator.prototype.call","ThrottleTimeSubscriber","_hasTrailingValue","_trailingValue","ThrottleTimeSubscriber.prototype._next","ThrottleTimeSubscriber.prototype._complete","ThrottleTimeSubscriber.prototype.clearThrottle","TimeInterval","interval","TimeoutWithOperator.prototype.call","TimeoutWithSubscriber","scheduleTimeout","dispatchTimeout","TimeoutWithSubscriber.dispatchTimeout","TimeoutWithSubscriber.prototype.scheduleTimeout","TimeoutWithSubscriber.prototype._next","TimeoutWithSubscriber.prototype._unsubscribe","Timestamp","timestamp","WindowOperator","windowBoundaries","WindowOperator.prototype.call","windowSubscriber","WindowSubscriber","sourceSubscription","WindowSubscriber.prototype.notifyNext","WindowSubscriber.prototype.notifyError","WindowSubscriber.prototype.notifyComplete","WindowSubscriber.prototype._next","WindowSubscriber.prototype._error","WindowSubscriber.prototype._complete","WindowSubscriber.prototype._unsubscribe","WindowSubscriber.prototype.openWindow","prevWindow","newWindow","WindowCountOperator","windowSize","startWindowEvery","WindowCountOperator.prototype.call","WindowCountSubscriber","windows","WindowCountSubscriber.prototype._next","c","window_1","WindowCountSubscriber.prototype._error","WindowCountSubscriber.prototype._complete","WindowCountSubscriber.prototype._unsubscribe","WindowTimeOperator","maxWindowSize","WindowTimeOperator.prototype.call","WindowTimeSubscriber","CountedSubject","_numberOfNextedValues","CountedSubject.prototype.next","WindowTimeSubscriber.prototype._next","numberOfNextedValues","WindowTimeSubscriber.prototype._error","WindowTimeSubscriber.prototype._complete","window_2","WindowTimeSubscriber.prototype.openWindow","WindowTimeSubscriber.prototype.closeWindow","WindowToggleOperator","WindowToggleOperator.prototype.call","WindowToggleSubscriber","openSubscription","WindowToggleSubscriber.prototype._next","WindowToggleSubscriber.prototype._error","WindowToggleSubscriber.prototype._complete","WindowToggleSubscriber.prototype._unsubscribe","context_3","WindowToggleSubscriber.prototype.notifyNext","context_4","WindowToggleSubscriber.prototype.notifyError","WindowToggleSubscriber.prototype.notifyComplete","inner","WindowToggleSubscriber.prototype.closeWindow","WindowOperator$1","WindowSubscriber$1","unsubscribeClosingNotification","WindowSubscriber.prototype.unsubscribeClosingNotification","closingNotification","WithLatestFromOperator","WithLatestFromOperator.prototype.call","WithLatestFromSubscriber","WithLatestFromSubscriber.prototype.notifyNext","found","WithLatestFromSubscriber.prototype.notifyComplete","WithLatestFromSubscriber.prototype._next","_tryProject","WithLatestFromSubscriber.prototype._tryProject","_operators","freeze","auditTime","bufferOperatorFunction","bufferCount","bufferCountOperatorFunction","bufferTime","bufferTimeOperatorFunction","bufferToggle","bufferToggleOperatorFunction","bufferWhen","catchError","catchErrorOperatorFunction","combineAll","combineLatest","combineLatest$1","concat$1","concatMapTo","innerObservable","debounce","debounceTime","delayFor","delayWhen","dematerialize","dematerializeOperatorFunction","distinct","distinctUntilKeyChanged","elementAt","hasDefaultValue","v","endWith","every","exhaust","expand","finalize","find","findIndex","groupBy","ignoreElements","ignoreElementsOperatorFunction","mapTo","materialize","materializeOperatorFunction","comparer","merge$1","flatMap","mergeMapTo","mergeScan","min","observeOn","observeOnOperatorFunction","onErrorResumeNext$1","pairwise","partition","pluck","properties","publish","publishBehavior","publishLast","publishReplay","selectorOrScheduler","race$1","raceOperatorFunction","repeat","repeatWhen","retry","retryWhen","sample","sampleTime","sequenceEqual","share","shareReplay","single","skip","skipLast","skipUntil","skipWhile","startWith","subscribeOn","subscribeOnOperatorFunction","switchAll","switchMapTo","takeUntil","takeWhile","throttleTime","timeInterval","current","timeout","toArray","window$1","windowOperatorFunction","windowCount","windowCountOperatorFunction","windowTimeOperatorFunction","windowToggle","windowWhen","windowWhenOperatorFunction","withLatestFrom","zip$1","zipOperatorFunction","zipAll","SubscriptionLog","subscribedFrame","unsubscribedFrame","SubscriptionLoggable","logSubscribedFrame","SubscriptionLoggable.prototype.logSubscribedFrame","logUnsubscribedFrame","SubscriptionLoggable.prototype.logUnsubscribedFrame","subscriptionLogs","oldSubscriptionLog","ColdObservable","messages","scheduleMessages","ColdObservable.prototype.scheduleMessages","messagesLength","HotObservable","HotObservable.prototype._subscribe","setup","HotObservable.prototype.setup","TestScheduler","assertDeepEqual","defaultMaxFrame","hotObservables","coldObservables","flushTests","runMode","createTime","TestScheduler.prototype.createTime","marbles","createColdObservable","TestScheduler.prototype.createColdObservable","parseMarbles","cold","createHotObservable","TestScheduler.prototype.createHotObservable","materializeInnerObservable","TestScheduler.prototype.materializeInnerObservable","outerFrame","expectObservable","TestScheduler.prototype.expectObservable","subscriptionMarbles","actual","flushTest","ready","subscriptionParsed","parseMarblesAsSubscriptions","unsubscriptionFrame","subscriptionFrame","toBe","expected","expectSubscriptions","TestScheduler.prototype.expectSubscriptions","actualSubscriptionLogs","marblesArray","TestScheduler.prototype.flush","test","TestScheduler.parseMarblesAsSubscriptions","groupStart","_loop_1","nextFrame","advanceFrameBy","match","durationInMs","unit","this_1","out_i_1","TestScheduler.parseMarbles","materializeInnerObservables","testMessages","subIndex","replace","_loop_2","this_2","out_i_2","run","TestScheduler.prototype.run","prevFrameTimeFactor","prevMaxFrames","helpers","hot","ret","_testing","__self","self","WorkerGlobalScope","__global","_root","urlOrRequest","createXHR","crossDomain","XMLHttpRequest","XDomainRequest","progId","progIds","ActiveXObject","withCredentials","prop","AjaxObservable.prototype._subscribe","AjaxSubscriber","post","put","patch","getJSON","FormData","serializeBody","AjaxSubscriber.prototype.next","AjaxResponse","AjaxSubscriber.prototype.send","user","password","setupEvents","open","setHeaders","AjaxSubscriber.prototype.serializeBody","contentType","splitIndex","substring","encodeURIComponent","stringify","AjaxSubscriber.prototype.setHeaders","setRequestHeader","AjaxSubscriber.prototype.setupEvents","xhrTimeout","progressSubscriber","ajaxTimeoutError","AjaxTimeoutError","xhrReadyStateChange","xhrLoad","readyState","status_1","ajaxError","AjaxError","ontimeout","upload","xhrProgress_1","onprogress","xhrError_1","onerror","onreadystatechange","onload","AjaxSubscriber.prototype.unsubscribe","abort","originalEvent","AjaxTimeoutErrorImpl","_ajax","ajax","DEFAULT_WEBSOCKET_CONFIG","deserializer","data","serializer","WebSocketSubject","urlConfigOrSource","_config","_output","WebSocketCtor","WebSocket","WebSocketSubject.prototype.lift","sock","_resetState","WebSocketSubject.prototype._resetState","_socket","multiplex","WebSocketSubject.prototype.multiplex","subMsg","unsubMsg","messageFilter","_connectSocket","WebSocketSubject.prototype._connectSocket","protocol","binaryType","socket","close","onopen","socket.onopen","openObserver","msg","closingObserver","code","reason","WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT","socket.onerror","onclose","socket.onclose","closeObserver","wasClean","onmessage","socket.onmessage","WebSocketSubject.prototype._subscribe","WebSocketSubject.prototype.unsubscribe","webSocket$$1","_webSocket","webSocket","webSocket$1","operators","testing","asapScheduler","asyncScheduler","queueScheduler","animationFrameScheduler","isObservable","ArgumentOutOfRangeError","ObjectUnsubscribedError","TimeoutError","generate","initialStateOrOptions","resultSelectorOrObservable","initialState","iif","trueResult","falseResult","never","pairs","range","using","resourceFactory","resource"]} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/AsyncSubject.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/AsyncSubject.d.ts index d129f8a93c2e6d..fde2be1399718c 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/AsyncSubject.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/AsyncSubject.d.ts @@ -2,6 +2,9 @@ import { Subject } from './Subject'; import { Subscriber } from './Subscriber'; import { Subscription } from './Subscription'; /** + * A variant of Subject that only emits a value when it completes. It will emit + * its latest value to all its observers on completion. + * * @class AsyncSubject */ export declare class AsyncSubject extends Subject { diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/AsyncSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/AsyncSubject.js.map index 43aa8b670b2a56..56ffa67e996901 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/AsyncSubject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/AsyncSubject.js.map @@ -1 +1 @@ -{"version":3,"file":"AsyncSubject.js","sources":["../src/internal/AsyncSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,+CAA8C;AAK9C;IAAqC,gCAAU;IAA/C;QAAA,qEAsCC;QArCS,WAAK,GAAM,IAAI,CAAC;QAChB,aAAO,GAAY,KAAK,CAAC;QACzB,kBAAY,GAAY,KAAK,CAAC;;IAmCxC,CAAC;IAhCC,iCAAU,GAAV,UAAW,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,4BAAK,GAAL,UAAM,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,iBAAM,IAAI,YAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtCD,CAAqC,iBAAO,GAsC3C;AAtCY,oCAAY"} +{"version":3,"file":"AsyncSubject.js","sources":["../src/internal/AsyncSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,+CAA8C;AAQ9C;IAAqC,gCAAU;IAA/C;QAAA,qEAsCC;QArCS,WAAK,GAAM,IAAI,CAAC;QAChB,aAAO,GAAY,KAAK,CAAC;QACzB,kBAAY,GAAY,KAAK,CAAC;;IAmCxC,CAAC;IAhCC,iCAAU,GAAV,UAAW,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,4BAAK,GAAL,UAAM,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,iBAAM,IAAI,YAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtCD,CAAqC,iBAAO,GAsC3C;AAtCY,oCAAY"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/BehaviorSubject.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/BehaviorSubject.d.ts index 01e0ebb534a032..c84b2122f54c06 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/BehaviorSubject.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/BehaviorSubject.d.ts @@ -2,6 +2,9 @@ import { Subject } from './Subject'; import { Subscriber } from './Subscriber'; import { Subscription } from './Subscription'; /** + * A variant of Subject that requires an initial value and emits its current + * value whenever it is subscribed to. + * * @class BehaviorSubject */ export declare class BehaviorSubject extends Subject { diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/BehaviorSubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/BehaviorSubject.js.map index 19677f05e145b2..54d4006b650d50 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/BehaviorSubject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/BehaviorSubject.js.map @@ -1 +1 @@ -{"version":3,"file":"BehaviorSubject.js","sources":["../src/internal/BehaviorSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAoC;AAIpC,0EAAyE;AAKzE;IAAwC,mCAAU;IAEhD,yBAAoB,MAAS;QAA7B,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAG;;IAE7B,CAAC;IAED,sBAAI,kCAAK;aAAT;YACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;;;OAAA;IAGD,oCAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,YAAY,GAAG,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,iDAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,8BAAI,GAAJ,UAAK,KAAQ;QACX,iBAAM,IAAI,YAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IACH,sBAAC;AAAD,CAAC,AAhCD,CAAwC,iBAAO,GAgC9C;AAhCY,0CAAe"} +{"version":3,"file":"BehaviorSubject.js","sources":["../src/internal/BehaviorSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAoC;AAIpC,0EAAyE;AAQzE;IAAwC,mCAAU;IAEhD,yBAAoB,MAAS;QAA7B,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAG;;IAE7B,CAAC;IAED,sBAAI,kCAAK;aAAT;YACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;;;OAAA;IAGD,oCAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,YAAY,GAAG,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,iDAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,8BAAI,GAAJ,UAAK,KAAQ;QACX,iBAAM,IAAI,YAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IACH,sBAAC;AAAD,CAAC,AAhCD,CAAwC,iBAAO,GAgC9C;AAhCY,0CAAe"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/Observable.js b/tools/node_modules/eslint/node_modules/rxjs/internal/Observable.js index e05cfc33506ce9..693947bbcebd97 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/Observable.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/Observable.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +var canReportError_1 = require("./util/canReportError"); var toSubscriber_1 = require("./util/toSubscriber"); var observable_1 = require("../internal/symbol/observable"); var pipe_1 = require("./util/pipe"); @@ -24,7 +25,7 @@ var Observable = (function () { operator.call(sink, this.source); } else { - sink._addParentTeardownLogic(this.source || (config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + sink.add(this.source || (config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? this._subscribe(sink) : this._trySubscribe(sink)); } @@ -47,7 +48,12 @@ var Observable = (function () { sink.syncErrorThrown = true; sink.syncErrorValue = err; } - sink.error(err); + if (canReportError_1.canReportError(sink)) { + sink.error(err); + } + else { + console.warn(err); + } } }; Observable.prototype.forEach = function (next, promiseCtor) { diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/Observable.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/Observable.js.map index 18b6a59ea2c3bc..d32d96b3dd4dda 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/Observable.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/Observable.js.map @@ -1 +1 @@ -{"version":3,"file":"Observable.js","sources":["../src/internal/Observable.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Observable.js","sources":["../src/internal/Observable.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/ReplaySubject.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/ReplaySubject.d.ts index e9dad072f5f001..28383d00d0f5e6 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/ReplaySubject.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/ReplaySubject.d.ts @@ -3,6 +3,10 @@ import { SchedulerLike } from './types'; import { Subscriber } from './Subscriber'; import { Subscription } from './Subscription'; /** + * A variant of Subject that "replays" or emits old values to new subscribers. + * It buffers a set number of values and will emit those values immediately to + * any new subscribers in addition to emitting new values to existing subscribers. + * * @class ReplaySubject */ export declare class ReplaySubject extends Subject { diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/ReplaySubject.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/ReplaySubject.js.map index 92dcfed8af8aa6..b04e61c29df2a6 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/ReplaySubject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/ReplaySubject.js.map @@ -1 +1 @@ -{"version":3,"file":"ReplaySubject.js","sources":["../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"ReplaySubject.js","sources":["../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/Subject.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/Subject.d.ts index 2ff148a31f21fc..ec4db2c808c6be 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/Subject.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/Subject.d.ts @@ -11,6 +11,12 @@ export declare class SubjectSubscriber extends Subscriber { constructor(destination: Subject); } /** + * A Subject is a special type of Observable that allows values to be + * multicasted to many Observables. Subjects are like EventEmitters. + * + * Every Subject is an Observable and an Observer. You can subscribe to a + * Subject, and you can call next to feed values as well as error and complete. + * * @class Subject */ export declare class Subject extends Observable implements SubscriptionLike { @@ -31,6 +37,12 @@ export declare class Subject extends Observable implements SubscriptionLik _trySubscribe(subscriber: Subscriber): TeardownLogic; /** @deprecated This is an internal implementation detail, do not use. */ _subscribe(subscriber: Subscriber): Subscription; + /** + * Creates a new Observable with this Subject as the source. You can do this + * to create customize Observer-side logic of the Subject and conceal it from + * code that uses the Observable. + * @return {Observable} Observable that the Subject casts to + */ asObservable(): Observable; } /** diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/Subject.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/Subject.js.map index 96dcab6caabee1..b82263f4d3b3aa 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/Subject.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/Subject.js.map @@ -1 +1 @@ -{"version":3,"file":"Subject.js","sources":["../src/internal/Subject.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Subject.js","sources":["../src/internal/Subject.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.d.ts index 338c54d703cc2a..7aeae6322433a3 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.d.ts @@ -1,4 +1,4 @@ -import { Observer, PartialObserver, TeardownLogic } from './types'; +import { Observer, PartialObserver } from './types'; import { Subscription } from './Subscription'; /** * Implements the {@link Observer} interface and extends the @@ -28,7 +28,7 @@ export declare class Subscriber extends Subscription implements Observer { /** @internal */ syncErrorThrown: boolean; /** @internal */ syncErrorThrowable: boolean; protected isStopped: boolean; - protected destination: PartialObserver; + protected destination: PartialObserver | Subscriber; private _parentSubscription; /** * @param {Observer|function(value: T): void} [destinationOrNext] A partially @@ -67,10 +67,6 @@ export declare class Subscriber extends Subscription implements Observer { protected _error(err: any): void; protected _complete(): void; /** @deprecated This is an internal implementation detail, do not use. */ - _addParentTeardownLogic(parentTeardownLogic: TeardownLogic): void; - /** @deprecated This is an internal implementation detail, do not use. */ - _unsubscribeParentSubscription(): void; - /** @deprecated This is an internal implementation detail, do not use. */ _unsubscribeAndRecycle(): Subscriber; } /** diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.js b/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.js index a6358d2433c687..f4af095f4ef038 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.js @@ -38,11 +38,10 @@ var Subscriber = (function (_super) { break; } if (typeof destinationOrNext === 'object') { - if (isTrustedSubscriber(destinationOrNext)) { - var trustedSubscriber = destinationOrNext[rxSubscriber_1.rxSubscriber](); - _this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable; - _this.destination = trustedSubscriber; - trustedSubscriber._addParentTeardownLogic(_this); + if (destinationOrNext instanceof Subscriber) { + _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + _this.destination = destinationOrNext; + destinationOrNext.add(_this); } else { _this.syncErrorThrowable = true; @@ -72,14 +71,12 @@ var Subscriber = (function (_super) { if (!this.isStopped) { this.isStopped = true; this._error(err); - this._unsubscribeParentSubscription(); } }; Subscriber.prototype.complete = function () { if (!this.isStopped) { this.isStopped = true; this._complete(); - this._unsubscribeParentSubscription(); } }; Subscriber.prototype.unsubscribe = function () { @@ -100,16 +97,6 @@ var Subscriber = (function (_super) { this.destination.complete(); this.unsubscribe(); }; - Subscriber.prototype._addParentTeardownLogic = function (parentTeardownLogic) { - if (parentTeardownLogic !== this) { - this._parentSubscription = this.add(parentTeardownLogic); - } - }; - Subscriber.prototype._unsubscribeParentSubscription = function () { - if (this._parentSubscription !== null) { - this._parentSubscription.unsubscribe(); - } - }; Subscriber.prototype._unsubscribeAndRecycle = function () { var _a = this, _parent = _a._parent, _parents = _a._parents; this._parent = null; @@ -260,7 +247,4 @@ var SafeSubscriber = (function (_super) { return SafeSubscriber; }(Subscriber)); exports.SafeSubscriber = SafeSubscriber; -function isTrustedSubscriber(obj) { - return obj instanceof Subscriber || ('_addParentTeardownLogic' in obj && obj[rxSubscriber_1.rxSubscriber]); -} //# sourceMappingURL=Subscriber.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.js.map index 43c11191dfb148..2c81dec213a830 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/Subscriber.js.map @@ -1 +1 @@ -{"version":3,"file":"Subscriber.js","sources":["../src/internal/Subscriber.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Subscriber.js","sources":["../src/internal/Subscriber.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/Subscription.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/Subscription.js.map index 5e64307eec6b5f..090a70d4f51a3a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/Subscription.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/Subscription.js.map @@ -1 +1 @@ -{"version":3,"file":"Subscription.js","sources":["../src/internal/Subscription.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"Subscription.js","sources":["../src/internal/Subscription.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindCallback.js b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindCallback.js index e2022cf32d0760..ac6efeb134be94 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindCallback.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindCallback.js @@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); var Observable_1 = require("../Observable"); var AsyncSubject_1 = require("../AsyncSubject"); var map_1 = require("../operators/map"); +var canReportError_1 = require("../util/canReportError"); var isArray_1 = require("../util/isArray"); var isScheduler_1 = require("../util/isScheduler"); function bindCallback(callbackFunc, resultSelector, scheduler) { @@ -49,7 +50,12 @@ function bindCallback(callbackFunc, resultSelector, scheduler) { callbackFunc.apply(context, args.concat([handler])); } catch (err) { - subject.error(err); + if (canReportError_1.canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } } } return subject.subscribe(subscriber); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindCallback.js.map index 8b393270b37adc..82cb98143e6374 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindCallback.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindCallback.js.map @@ -1 +1 @@ -{"version":3,"file":"bindCallback.js","sources":["../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"bindCallback.js","sources":["../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindNodeCallback.js b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindNodeCallback.js index 2688ba9d575ebf..135bbd22cfaa78 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindNodeCallback.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindNodeCallback.js @@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); var Observable_1 = require("../Observable"); var AsyncSubject_1 = require("../AsyncSubject"); var map_1 = require("../operators/map"); +var canReportError_1 = require("../util/canReportError"); var isScheduler_1 = require("../util/isScheduler"); var isArray_1 = require("../util/isArray"); function bindNodeCallback(callbackFunc, resultSelector, scheduler) { @@ -55,7 +56,12 @@ function bindNodeCallback(callbackFunc, resultSelector, scheduler) { callbackFunc.apply(context, args.concat([handler])); } catch (err) { - subject.error(err); + if (canReportError_1.canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } } } return subject.subscribe(subscriber); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindNodeCallback.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindNodeCallback.js.map index 3c929853918958..025fdc592efe89 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindNodeCallback.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/bindNodeCallback.js.map @@ -1 +1 @@ -{"version":3,"file":"bindNodeCallback.js","sources":["../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"bindNodeCallback.js","sources":["../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/zip.js b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/zip.js index 0d023d2f6b800a..1bfd53063539a7 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/zip.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/zip.js @@ -67,6 +67,7 @@ var ZipSubscriber = (function (_super) { ZipSubscriber.prototype._complete = function () { var iterators = this.iterators; var len = iterators.length; + this.unsubscribe(); if (len === 0) { this.destination.complete(); return; @@ -75,7 +76,8 @@ var ZipSubscriber = (function (_super) { for (var i = 0; i < len; i++) { var iterator = iterators[i]; if (iterator.stillUnsubscribed) { - this.add(iterator.subscribe(iterator, i)); + var destination = this.destination; + destination.add(iterator.subscribe(iterator, i)); } else { this.active--; diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/zip.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/zip.js.map index 92fe68208abda0..d4b27fac67e3b0 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/observable/zip.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/observable/zip.js.map @@ -1 +1 @@ -{"version":3,"file":"zip.js","sources":["../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"zip.js","sources":["../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delay.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delay.js index 0af503f233ff21..b05d8b8232a3a9 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delay.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delay.js @@ -64,7 +64,8 @@ var DelaySubscriber = (function (_super) { }; DelaySubscriber.prototype._schedule = function (scheduler) { this.active = true; - this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + var destination = this.destination; + destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { source: this, destination: this.destination, scheduler: scheduler })); }; @@ -86,9 +87,11 @@ var DelaySubscriber = (function (_super) { this.errored = true; this.queue = []; this.destination.error(err); + this.unsubscribe(); }; DelaySubscriber.prototype._complete = function () { this.scheduleNotification(Notification_1.Notification.createComplete()); + this.unsubscribe(); }; return DelaySubscriber; }(Subscriber_1.Subscriber)); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delay.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delay.js.map index 3b8335d66a25c9..bff1565cf3762b 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delay.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delay.js.map @@ -1 +1 @@ -{"version":3,"file":"delay.js","sources":["../../src/internal/operators/delay.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"delay.js","sources":["../../src/internal/operators/delay.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delayWhen.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delayWhen.js index e737d464f8b4e4..c7451da9a91004 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delayWhen.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delayWhen.js @@ -76,6 +76,7 @@ var DelayWhenSubscriber = (function (_super) { DelayWhenSubscriber.prototype._complete = function () { this.completed = true; this.tryComplete(); + this.unsubscribe(); }; DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { subscription.unsubscribe(); @@ -88,7 +89,8 @@ var DelayWhenSubscriber = (function (_super) { DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { var notifierSubscription = subscribeToResult_1.subscribeToResult(this, delayNotifier, value); if (notifierSubscription && !notifierSubscription.closed) { - this.add(notifierSubscription); + var destination = this.destination; + destination.add(notifierSubscription); this.delayNotifierSubscriptions.push(notifierSubscription); } }; @@ -129,6 +131,7 @@ var SubscriptionDelaySubscriber = (function (_super) { this.parent.error(err); }; SubscriptionDelaySubscriber.prototype._complete = function () { + this.unsubscribe(); this.subscribeToSource(); }; SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delayWhen.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delayWhen.js.map index 5ecbf6f9c4b342..95bda722c53aad 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delayWhen.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/delayWhen.js.map @@ -1 +1 @@ -{"version":3,"file":"delayWhen.js","sources":["../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"delayWhen.js","sources":["../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/exhaustMap.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/exhaustMap.js index e0b0a90e374f27..e30bc63b830248 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/exhaustMap.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/exhaustMap.js @@ -66,7 +66,8 @@ var ExhaustMapSubscriber = (function (_super) { }; ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) { var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult_1.subscribeToResult(this, result, value, index, innerSubscriber); }; ExhaustMapSubscriber.prototype._complete = function () { @@ -74,6 +75,7 @@ var ExhaustMapSubscriber = (function (_super) { if (!this.hasSubscription) { this.destination.complete(); } + this.unsubscribe(); }; ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.destination.next(innerValue); @@ -82,7 +84,8 @@ var ExhaustMapSubscriber = (function (_super) { this.destination.error(err); }; ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.hasSubscription = false; if (this.hasCompleted) { this.destination.complete(); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/exhaustMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/exhaustMap.js.map index a977279e60a315..78eb097689fb8a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/exhaustMap.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/exhaustMap.js.map @@ -1 +1 @@ -{"version":3,"file":"exhaustMap.js","sources":["../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"exhaustMap.js","sources":["../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/expand.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/expand.js index b5d4e4b816266e..f615199a6b8a57 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/expand.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/expand.js @@ -73,7 +73,8 @@ var ExpandSubscriber = (function (_super) { } else { var state = { subscriber: this, result: result, value: value, index: index }; - this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + var destination_1 = this.destination; + destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); } } else { @@ -82,20 +83,23 @@ var ExpandSubscriber = (function (_super) { }; ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { this.active++; - this.add(subscribeToResult_1.subscribeToResult(this, result, value, index)); + var destination = this.destination; + destination.add(subscribeToResult_1.subscribeToResult(this, result, value, index)); }; ExpandSubscriber.prototype._complete = function () { this.hasCompleted = true; if (this.hasCompleted && this.active === 0) { this.destination.complete(); } + this.unsubscribe(); }; ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { this._next(innerValue); }; ExpandSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.active--; if (buffer && buffer.length > 0) { this._next(buffer.shift()); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/expand.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/expand.js.map index 325e0c01d825c3..645ad80bc1addc 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/expand.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/expand.js.map @@ -1 +1 @@ -{"version":3,"file":"expand.js","sources":["../../src/internal/operators/expand.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"expand.js","sources":["../../src/internal/operators/expand.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeMap.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeMap.js index 4970517a178c98..bafcd26daa3d14 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeMap.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeMap.js @@ -77,7 +77,8 @@ var MergeMapSubscriber = (function (_super) { }; MergeMapSubscriber.prototype._innerSub = function (ish, value, index) { var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult_1.subscribeToResult(this, ish, value, index, innerSubscriber); }; MergeMapSubscriber.prototype._complete = function () { @@ -85,6 +86,7 @@ var MergeMapSubscriber = (function (_super) { if (this.active === 0 && this.buffer.length === 0) { this.destination.complete(); } + this.unsubscribe(); }; MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.destination.next(innerValue); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeMap.js.map index 012f7158f604f9..1840daaf612273 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeMap.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeMap.js.map @@ -1 +1 @@ -{"version":3,"file":"mergeMap.js","sources":["../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,+DAA8D;AAC9D,sDAAqD;AACrD,sDAAqD;AAErD,6BAA4B;AAC5B,2CAA0C;AA+D1C,SAAgB,QAAQ,CACtB,OAAwD,EACxD,cAAuG,EACvG,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QAExC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,QAAQ,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,WAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACzC,SAAG,CAAC,UAAC,CAAC,EAAE,EAAE,IAAK,OAAA,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAA3B,CAA2B,CAAC,CAC5C,EAFkB,CAElB,EAAE,UAAU,CAAC,CACf,EAJiC,CAIjC,CAAC;KACH;SAAM,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QAC7C,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAhBD,4BAgBC;AAED;IACE,0BAAoB,OAAwD,EACxD,UAA6C;QAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;QAD7C,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAmC;IACjE,CAAC;IAED,+BAAI,GAAJ,UAAK,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CACxC,CAAC,CAAC;IACL,CAAC;IACH,uBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,4CAAgB;AAiB7B;IAA8C,sCAAqB;IAMjE,4BAAY,WAA0B,EAClB,OAAwD,EACxD,UAA6C;QAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;QAFjE,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,aAAO,GAAP,OAAO,CAAiD;QACxD,gBAAU,GAAV,UAAU,CAAmC;QAPzD,kBAAY,GAAY,KAAK,CAAC;QAC9B,YAAM,GAAQ,EAAE,CAAC;QACjB,YAAM,GAAW,CAAC,CAAC;QACjB,WAAK,GAAW,CAAC,CAAC;;IAM5B,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAES,qCAAQ,GAAlB,UAAmB,KAAQ;QACzB,IAAI,MAA0B,CAAC;QAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,sCAAS,GAAjB,UAAkB,GAAuB,EAAE,KAAQ,EAAE,KAAa;QAChE,IAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,qCAAiB,CAAO,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IAES,sCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,uCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,2CAAc,GAAd,UAAe,QAAsB;QACnC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AA9DD,CAA8C,iCAAe,GA8D5D;AA9DY,gDAAkB"} +{"version":3,"file":"mergeMap.js","sources":["../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeScan.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeScan.js index 689c60c962fdae..189188489a43dc 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeScan.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeScan.js @@ -68,7 +68,8 @@ var MergeScanSubscriber = (function (_super) { }; MergeScanSubscriber.prototype._innerSub = function (ish, value, index) { var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult_1.subscribeToResult(this, ish, value, index, innerSubscriber); }; MergeScanSubscriber.prototype._complete = function () { @@ -79,6 +80,7 @@ var MergeScanSubscriber = (function (_super) { } this.destination.complete(); } + this.unsubscribe(); }; MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { var destination = this.destination; @@ -88,7 +90,8 @@ var MergeScanSubscriber = (function (_super) { }; MergeScanSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.active--; if (buffer.length > 0) { this._next(buffer.shift()); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeScan.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeScan.js.map index 90254001c8b240..681a8206e05548 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeScan.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/mergeScan.js.map @@ -1 +1 @@ -{"version":3,"file":"mergeScan.js","sources":["../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"mergeScan.js","sources":["../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/observeOn.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/observeOn.js index c7e2fb6f012edf..3ace8fb837303d 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/observeOn.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/observeOn.js @@ -49,16 +49,19 @@ var ObserveOnSubscriber = (function (_super) { this.unsubscribe(); }; ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { - this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + var destination = this.destination; + destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); }; ObserveOnSubscriber.prototype._next = function (value) { this.scheduleMessage(Notification_1.Notification.createNext(value)); }; ObserveOnSubscriber.prototype._error = function (err) { this.scheduleMessage(Notification_1.Notification.createError(err)); + this.unsubscribe(); }; ObserveOnSubscriber.prototype._complete = function () { this.scheduleMessage(Notification_1.Notification.createComplete()); + this.unsubscribe(); }; return ObserveOnSubscriber; }(Subscriber_1.Subscriber)); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/observeOn.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/observeOn.js.map index 140d175e8bd464..9e710ff87a68c5 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/observeOn.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/observeOn.js.map @@ -1 +1 @@ -{"version":3,"file":"observeOn.js","sources":["../../src/internal/operators/observeOn.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAC3C,gDAA+C;AAoD/C,SAAgB,SAAS,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAJD,8BAIC;AAED;IACE,2BAAoB,SAAwB,EAAU,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAPY,8CAAiB;AAc9B;IAA4C,uCAAa;IAQvD,6BAAY,WAA0B,EAClB,SAAwB,EACxB,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAFrC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAe;QACxB,WAAK,GAAL,KAAK,CAAY;;IAErC,CAAC;IAVM,4BAAQ,GAAf,UAAyD,GAAqB;QACpE,IAAA,+BAAY,EAAE,6BAAW,CAAS;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,6CAAe,GAAvB,UAAwB,YAA+B;QACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC9B,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,oCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,cAAc,EAAE,CAAC,CAAC;IACtD,CAAC;IACH,0BAAC;AAAD,CAAC,AAjCD,CAA4C,uBAAU,GAiCrD;AAjCY,kDAAmB;AAmChC;IACE,0BAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,4CAAgB"} +{"version":3,"file":"observeOn.js","sources":["../../src/internal/operators/observeOn.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAE3C,gDAA+C;AAoD/C,SAAgB,SAAS,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAJD,8BAIC;AAED;IACE,2BAAoB,SAAwB,EAAU,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAPY,8CAAiB;AAc9B;IAA4C,uCAAa;IAQvD,6BAAY,WAA0B,EAClB,SAAwB,EACxB,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAFrC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAe;QACxB,WAAK,GAAL,KAAK,CAAY;;IAErC,CAAC;IAVM,4BAAQ,GAAf,UAAyD,GAAqB;QACpE,IAAA,+BAAY,EAAE,6BAAW,CAAS;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,6CAAe,GAAvB,UAAwB,YAA+B;QACrD,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrC,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,oCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,0BAAC;AAAD,CAAC,AApCD,CAA4C,uBAAU,GAoCrD;AApCY,kDAAmB;AAsChC;IACE,0BAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,4CAAgB"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/onErrorResumeNext.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/onErrorResumeNext.js index 7294a5c1c268d5..f019891bbb05c2 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/onErrorResumeNext.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/onErrorResumeNext.js @@ -67,15 +67,18 @@ var OnErrorResumeNextSubscriber = (function (_super) { }; OnErrorResumeNextSubscriber.prototype._error = function (err) { this.subscribeToNextSource(); + this.unsubscribe(); }; OnErrorResumeNextSubscriber.prototype._complete = function () { this.subscribeToNextSource(); + this.unsubscribe(); }; OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { var next = this.nextSources.shift(); if (next) { var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); subscribeToResult_1.subscribeToResult(this, next, undefined, undefined, innerSubscriber); } else { diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map index a69590e6d5fdbf..34e20a6b924ba7 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map @@ -1 +1 @@ -{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAA0C;AAG1C,2CAA0C;AAC1C,sDAAqD;AACrD,sDAAqD;AACrD,+DAA8D;AA+E9D,SAAgB,iBAAiB;IAAO,qBAE8C;SAF9C,UAE8C,EAF9C,qBAE8C,EAF9C,IAE8C;QAF9C,gCAE8C;;IACpF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,EAA7D,CAA6D,CAAC;AAClG,CAAC;AARD,8CAQC;AAaD,SAAgB,uBAAuB;IAAO,qBAE+C;SAF/C,UAE+C,EAF/C,qBAE+C,EAF/C,IAE+C;QAF/C,gCAE+C;;IAC3F,IAAI,MAAM,GAAyB,IAAI,CAAC;IAExC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAgC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC3D;IACD,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;IAE7B,OAAO,WAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AACnF,CAAC;AAXD,0DAWC;AAED;IACE,mCAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAC5D,CAAC;IAED,wCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;IACH,gCAAC;AAAD,CAAC,AAPD,IAOC;AAED;IAAgD,+CAAqB;IACnE,qCAAsB,WAA0B,EAC5B,WAAwC;QAD5D,YAEE,kBAAM,WAAW,CAAC,SACnB;QAHqB,iBAAW,GAAX,WAAW,CAAe;QAC5B,iBAAW,GAAX,WAAW,CAA6B;;IAE5D,CAAC;IAED,iDAAW,GAAX,UAAY,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,oDAAc,GAAd,UAAe,QAAiC;QAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,4CAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,+CAAS,GAAnB;QACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,2DAAqB,GAA7B;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,IAAI,EAAE;YACR,IAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,qCAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;SACtE;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,kCAAC;AAAD,CAAC,AAhCD,CAAgD,iCAAe,GAgC9D"} +{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAA0C;AAI1C,2CAA0C;AAC1C,sDAAqD;AACrD,sDAAqD;AACrD,+DAA8D;AA+E9D,SAAgB,iBAAiB;IAAO,qBAE8C;SAF9C,UAE8C,EAF9C,qBAE8C,EAF9C,IAE8C;QAF9C,gCAE8C;;IACpF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,EAA7D,CAA6D,CAAC;AAClG,CAAC;AARD,8CAQC;AAaD,SAAgB,uBAAuB;IAAO,qBAE+C;SAF/C,UAE+C,EAF/C,qBAE+C,EAF/C,IAE+C;QAF/C,gCAE+C;;IAC3F,IAAI,MAAM,GAAyB,IAAI,CAAC;IAExC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAgC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC3D;IACD,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;IAE7B,OAAO,WAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AACnF,CAAC;AAXD,0DAWC;AAED;IACE,mCAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAC5D,CAAC;IAED,wCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;IACH,gCAAC;AAAD,CAAC,AAPD,IAOC;AAED;IAAgD,+CAAqB;IACnE,qCAAsB,WAA0B,EAC5B,WAAwC;QAD5D,YAEE,kBAAM,WAAW,CAAC,SACnB;QAHqB,iBAAW,GAAX,WAAW,CAAe;QAC5B,iBAAW,GAAX,WAAW,CAA6B;;IAE5D,CAAC;IAED,iDAAW,GAAX,UAAY,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,oDAAc,GAAd,UAAe,QAAiC;QAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,4CAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,+CAAS,GAAnB;QACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,2DAAqB,GAA7B;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,IAAI,EAAE;YACR,IAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;YACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACjC,qCAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;SACtE;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,kCAAC;AAAD,CAAC,AAnCD,CAAgD,iCAAe,GAmC9D"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/reduce.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/reduce.js index 80fc35fb4c2861..63296cf63f0e12 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/reduce.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/reduce.js @@ -11,9 +11,7 @@ function reduce(accumulator, seed) { }; } return function reduceOperatorFunction(source) { - return pipe_1.pipe(scan_1.scan(function (acc, value, index) { - return accumulator(acc, value, index + 1); - }), takeLast_1.takeLast(1))(source); + return pipe_1.pipe(scan_1.scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast_1.takeLast(1))(source); }; } exports.reduce = reduce; diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/reduce.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/reduce.js.map index cc2ce9d214cdb2..dce85a948f2982 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/reduce.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/reduce.js.map @@ -1 +1 @@ -{"version":3,"file":"reduce.js","sources":["../../src/internal/operators/reduce.ts"],"names":[],"mappings":";;AACA,+BAA8B;AAC9B,uCAAsC;AACtC,mDAAkD;AAElD,qCAAoC;AAwDpC,SAAgB,MAAM,CAAO,WAAoD,EAAE,IAAQ;IAMzF,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,WAAI,CAAC,WAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,mBAAQ,CAAC,CAAC,CAAC,EAAE,+BAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,WAAI,CAAC,WAAI,CAAW,UAAC,GAAG,EAAE,KAAK,EAAE,KAAK;YAC3C,OAAO,WAAW,CAAI,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,EAAE,mBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAkB,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AAhBD,wBAgBC"} +{"version":3,"file":"reduce.js","sources":["../../src/internal/operators/reduce.ts"],"names":[],"mappings":";;AACA,+BAA8B;AAC9B,uCAAsC;AACtC,mDAAkD;AAElD,qCAAoC;AAwDpC,SAAgB,MAAM,CAAO,WAAoD,EAAE,IAAQ;IAMzF,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,WAAI,CAAC,WAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,mBAAQ,CAAC,CAAC,CAAC,EAAE,+BAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,WAAI,CACT,WAAI,CAAC,UAAC,GAAM,EAAE,KAAQ,EAAE,KAAa,IAAQ,OAAA,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAlC,CAAkC,CAAC,EAChF,mBAAQ,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC;AAjBD,wBAiBC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.d.ts index 672b6d0dc03842..636b6cbe23c508 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.d.ts @@ -80,4 +80,5 @@ export declare class SequenceEqualSubscriber extends Subscriber { checkValues(): void; emit(value: boolean): void; nextB(value: T): void; + completeB(): void; } diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.js index e741dae1ab8cd8..badbfe84d58b10 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.js @@ -40,7 +40,7 @@ var SequenceEqualSubscriber = (function (_super) { _this._a = []; _this._b = []; _this._oneComplete = false; - _this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); + _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); return _this; } SequenceEqualSubscriber.prototype._next = function (value) { @@ -59,6 +59,7 @@ var SequenceEqualSubscriber = (function (_super) { else { this._oneComplete = true; } + this.unsubscribe(); }; SequenceEqualSubscriber.prototype.checkValues = function () { var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor; @@ -94,6 +95,14 @@ var SequenceEqualSubscriber = (function (_super) { this.checkValues(); } }; + SequenceEqualSubscriber.prototype.completeB = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + }; return SequenceEqualSubscriber; }(Subscriber_1.Subscriber)); exports.SequenceEqualSubscriber = SequenceEqualSubscriber; @@ -109,9 +118,11 @@ var SequenceEqualCompareToSubscriber = (function (_super) { }; SequenceEqualCompareToSubscriber.prototype._error = function (err) { this.parent.error(err); + this.unsubscribe(); }; SequenceEqualCompareToSubscriber.prototype._complete = function () { - this.parent._complete(); + this.parent.completeB(); + this.unsubscribe(); }; return SequenceEqualCompareToSubscriber; }(Subscriber_1.Subscriber)); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.js.map index 27fe1d8ba5e558..b7d68c07eee50b 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/sequenceEqual.js.map @@ -1 +1 @@ -{"version":3,"file":"sequenceEqual.js","sources":["../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} +{"version":3,"file":"sequenceEqual.js","sources":["../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.d.ts index 94082b9e6821c7..0ad6766c63f97e 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.d.ts @@ -33,7 +33,7 @@ import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; * @see {@link publishReplay} * * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer. - * @param {Number} [windowTime=Number.MAX_VALUE] Maximum time length of the replay buffer in milliseconds. + * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds. * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function * will be invoked on. * @return {Observable} An observable sequence that contains the elements of a sequence produced diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.js index 81c7a8a1619c61..b18fdf17d0ceb8 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); var ReplaySubject_1 = require("../ReplaySubject"); function shareReplay(bufferSize, windowTime, scheduler) { if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; } - if (windowTime === void 0) { windowTime = Number.MAX_VALUE; } + if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; } return function (source) { return source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); }; } exports.shareReplay = shareReplay; diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.js.map index e000efd3101a60..5306656aef9e7b 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/shareReplay.js.map @@ -1 +1 @@ -{"version":3,"file":"shareReplay.js","sources":["../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":";;AACA,kDAAiD;AA+CjD,SAAgB,WAAW,CACzB,UAA6C,EAC7C,UAAqC,EACrC,SAAyB;IAFzB,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAC7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,SAAS;IAGrC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAAnE,CAAmE,CAAC;AACxG,CAAC;AAND,kCAMC;AAED,SAAS,mBAAmB,CAAI,UAAmB,EAAE,UAAmB,EAAE,SAAyB;IACjG,IAAI,OAAyB,CAAC;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAA0B,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,6BAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,YAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,YAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,IAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,QAAQ,KAAK,CAAC,IAAI,UAAU,EAAE;gBAChD,YAAY,CAAC,WAAW,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"} +{"version":3,"file":"shareReplay.js","sources":["../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":";;AACA,kDAAiD;AA+CjD,SAAgB,WAAW,CACzB,UAA6C,EAC7C,UAA6C,EAC7C,SAAyB;IAFzB,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAC7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAG7C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAAnE,CAAmE,CAAC;AACxG,CAAC;AAND,kCAMC;AAED,SAAS,mBAAmB,CAAI,UAAmB,EAAE,UAAmB,EAAE,SAAyB;IACjG,IAAI,OAAyB,CAAC;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAA0B,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,6BAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,YAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,YAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,IAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,QAAQ,KAAK,CAAC,IAAI,UAAU,EAAE;gBAChD,YAAY,CAAC,WAAW,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/switchMap.js b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/switchMap.js index 78d44ee0af6361..2a7f28f7061d60 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/switchMap.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/switchMap.js @@ -60,7 +60,8 @@ var SwitchMapSubscriber = (function (_super) { innerSubscription.unsubscribe(); } var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + var destination = this.destination; + destination.add(innerSubscriber); this.innerSubscription = subscribeToResult_1.subscribeToResult(this, result, value, index, innerSubscriber); }; SwitchMapSubscriber.prototype._complete = function () { @@ -68,12 +69,14 @@ var SwitchMapSubscriber = (function (_super) { if (!innerSubscription || innerSubscription.closed) { _super.prototype._complete.call(this); } + this.unsubscribe(); }; SwitchMapSubscriber.prototype._unsubscribe = function () { this.innerSubscription = null; }; SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); + var destination = this.destination; + destination.remove(innerSub); this.innerSubscription = null; if (this.isStopped) { _super.prototype._complete.call(this); diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/switchMap.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/switchMap.js.map index 269d624ee572f7..6e01bbf7aa1851 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/switchMap.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/switchMap.js.map @@ -1 +1 @@ -{"version":3,"file":"switchMap.js","sources":["../../src/internal/operators/switchMap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,sDAAqD;AACrD,sDAAqD;AACrD,+DAA8D;AAE9D,6BAA4B;AAC5B,2CAA0C;AAoD1C,SAAgB,SAAS,CACvB,OAAwD,EACxD,cAA4F;IAE5F,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,WAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1C,SAAG,CAAC,UAAC,CAAC,EAAE,EAAE,IAAK,OAAA,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAA3B,CAA2B,CAAC,CAC5C,EAFmB,CAEnB,CAAC,CACH,EAJiC,CAIjC,CAAC;KACH;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAA3C,CAA2C,CAAC;AAChF,CAAC;AAZD,8BAYC;AAED;IACE,2BAAoB,OAAwD;QAAxD,YAAO,GAAP,OAAO,CAAiD;IAC5E,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,uCAAqB;IAI3D,6BAAY,WAA0B,EAClB,OAAwD;QAD5E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,aAAO,GAAP,OAAO,CAAiD;QAJpE,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAA0B,CAAC;QAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO;SACR;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,uCAAS,GAAjB,UAAkB,MAA0B,EAAE,KAAQ,EAAE,KAAa;QACnE,IAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACjC;QACD,IAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,qCAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAC1F,CAAC;IAES,uCAAS,GAAnB;QACS,IAAA,0CAAiB,CAAS;QACjC,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;YAClD,iBAAM,SAAS,WAAE,CAAC;SACnB;IACH,CAAC;IAES,0CAAY,GAAtB;QACE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,4CAAc,GAAd,UAAe,QAAsB;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,iBAAM,SAAS,WAAE,CAAC;SACnB;IACH,CAAC;IAED,wCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IACH,0BAAC;AAAD,CAAC,AAvDD,CAAwC,iCAAe,GAuDtD"} +{"version":3,"file":"switchMap.js","sources":["../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"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"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/takeWhile.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/takeWhile.d.ts index 9ff21b016df1d3..2ac91be6d34f3b 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/takeWhile.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/takeWhile.d.ts @@ -1,41 +1,3 @@ -import { MonoTypeOperatorFunction } from '../types'; -/** - * Emits values emitted by the source Observable so long as each value satisfies - * the given `predicate`, and then completes as soon as this `predicate` is not - * satisfied. - * - * Takes values from the source only while they pass the - * condition given. When the first value does not satisfy, it completes. - * - * ![](takeWhile.png) - * - * `takeWhile` subscribes and begins mirroring the source Observable. Each value - * emitted on the source is given to the `predicate` function which returns a - * boolean, representing a condition to be satisfied by the source values. The - * output Observable emits the source values until such time as the `predicate` - * returns false, at which point `takeWhile` stops mirroring the source - * Observable and completes the output Observable. - * - * ## Example - * Emit click events only while the clientX property is greater than 200 - * ```javascript - * const clicks = fromEvent(document, 'click'); - * const result = clicks.pipe(takeWhile(ev => ev.clientX > 200)); - * result.subscribe(x => console.log(x)); - * ``` - * - * @see {@link take} - * @see {@link takeLast} - * @see {@link takeUntil} - * @see {@link skip} - * - * @param {function(value: T, index: number): boolean} predicate A function that - * evaluates a value emitted by the source Observable and returns a boolean. - * Also takes the (zero-based) index as the second argument. - * @return {Observable} An Observable that emits the values from the source - * Observable so long as each value satisfies the condition defined by the - * `predicate`, then completes. - * @method takeWhile - * @owner Observable - */ +import { OperatorFunction, MonoTypeOperatorFunction } from '../types'; +export declare function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction; export declare function takeWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/takeWhile.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/takeWhile.js.map index e409e938ab2a3f..e0ea244bd7121e 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/operators/takeWhile.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/operators/takeWhile.js.map @@ -1 +1 @@ -{"version":3,"file":"takeWhile.js","sources":["../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AA0C3C,SAAgB,SAAS,CAAI,SAA+C;IAC1E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAFD,8BAEC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAqC,uCAAa;IAGhD,6BAAY,WAA0B,EAClB,SAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAH3D,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAQ,EAAE,eAAwB;QACvD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA5BD,CAAqC,uBAAU,GA4B9C"} +{"version":3,"file":"takeWhile.js","sources":["../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AA6C3C,SAAgB,SAAS,CAAI,SAA+C;IAC1E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAFD,8BAEC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAqC,uCAAa;IAGhD,6BAAY,WAA0B,EAClB,SAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAH3D,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAQ,EAAE,eAAwB;QACvD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA5BD,CAAqC,uBAAU,GA4B9C"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts index 04c68eb9f054ef..20da948cd33a21 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts @@ -1,3 +1,4 @@ +/** @deprecated do not use, this is no longer checked by RxJS internals */ export declare const rxSubscriber: string | symbol; /** * @deprecated use rxSubscriber instead diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.js b/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.js index 966b6b394d49ee..76afcae331fbc4 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.js +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.js @@ -1,7 +1,7 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') - ? Symbol.for('rxSubscriber') - : '@@rxSubscriber'; +exports.rxSubscriber = typeof Symbol === 'function' + ? Symbol('rxSubscriber') + : '@@rxSubscriber_' + Math.random(); exports.$$rxSubscriber = exports.rxSubscriber; //# sourceMappingURL=rxSubscriber.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.js.map index ea303c31860879..6bff4d4ce4b10a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/symbol/rxSubscriber.js.map @@ -1 +1 @@ -{"version":3,"file":"rxSubscriber.js","sources":["../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GACvB,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC;IAChE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IAC5B,CAAC,CAAC,gBAAgB,CAAC;AAKV,QAAA,cAAc,GAAG,oBAAY,CAAC"} +{"version":3,"file":"rxSubscriber.js","sources":["../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":";;AACa,QAAA,YAAY,GACvB,OAAO,MAAM,KAAK,UAAU;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IACxB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAK3B,QAAA,cAAc,GAAG,oBAAY,CAAC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/util/canReportError.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/util/canReportError.d.ts new file mode 100644 index 00000000000000..0757e7914a32ad --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/util/canReportError.d.ts @@ -0,0 +1,9 @@ +import { Subscriber } from '../Subscriber'; +import { Subject } from '../Subject'; +/** + * Determines whether the ErrorObserver is closed or stopped or has a + * destination that is closed or stopped - in which case errors will + * need to be reported via a different mechanism. + * @param observer the observer + */ +export declare function canReportError(observer: Subscriber | Subject): boolean; diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/util/canReportError.js b/tools/node_modules/eslint/node_modules/rxjs/internal/util/canReportError.js new file mode 100644 index 00000000000000..971f871ff393a4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/util/canReportError.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function canReportError(observer) { + while (observer) { + var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped; + if (closed_1 || isStopped) { + return false; + } + else if (destination && destination instanceof Subscriber_1.Subscriber) { + observer = destination; + } + else { + observer = null; + } + } + return true; +} +exports.canReportError = canReportError; +//# sourceMappingURL=canReportError.js.map \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/util/canReportError.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/util/canReportError.js.map new file mode 100644 index 00000000000000..01531e9ad144b7 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/util/canReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"canReportError.js","sources":["../../src/internal/util/canReportError.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAS3C,SAAgB,cAAc,CAAC,QAAwC;IACrE,OAAO,QAAQ,EAAE;QACT,IAAA,aAAoD,EAAlD,oBAAM,EAAE,4BAAW,EAAE,wBAAS,CAAqB;QAC3D,IAAI,QAAM,IAAI,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,WAAW,IAAI,WAAW,YAAY,uBAAU,EAAE;YAC3D,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAZD,wCAYC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/util/pipe.d.ts b/tools/node_modules/eslint/node_modules/rxjs/internal/util/pipe.d.ts index 090d158a60b073..2ec1b7997d588e 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/util/pipe.d.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/util/pipe.d.ts @@ -1,13 +1,14 @@ import { UnaryFunction } from '../types'; export declare function pipe(): UnaryFunction; -export declare function pipe(op1: UnaryFunction): UnaryFunction; -export declare function pipe(op1: UnaryFunction, op2: UnaryFunction): UnaryFunction; -export declare function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction): UnaryFunction; -export declare function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction): UnaryFunction; -export declare function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction): UnaryFunction; -export declare function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction): UnaryFunction; -export declare function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction): UnaryFunction; -export declare function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction): UnaryFunction; -export declare function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction, op9: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction; /** @internal */ export declare function pipeFromArray(fns: Array>): UnaryFunction; diff --git a/tools/node_modules/eslint/node_modules/rxjs/internal/util/pipe.js.map b/tools/node_modules/eslint/node_modules/rxjs/internal/util/pipe.js.map index dc2839276496ab..1782d001856d6d 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/internal/util/pipe.js.map +++ b/tools/node_modules/eslint/node_modules/rxjs/internal/util/pipe.js.map @@ -1 +1 @@ -{"version":3,"file":"pipe.js","sources":["../../src/internal/util/pipe.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAgB9B,SAAgB,IAAI;IAAO,aAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,wBAAkC;;IAC3D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFD,oBAEC;AAGD,SAAgB,aAAa,CAAO,GAA+B;IACjE,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,WAA+B,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAC,IAAS,EAAE,EAAuB,IAAK,OAAA,EAAE,CAAC,IAAI,CAAC,EAAR,CAAQ,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC;AAZD,sCAYC"} +{"version":3,"file":"pipe.js","sources":["../../src/internal/util/pipe.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAiB9B,SAAgB,IAAI;IAAC,aAAsC;SAAtC,UAAsC,EAAtC,qBAAsC,EAAtC,IAAsC;QAAtC,wBAAsC;;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFD,oBAEC;AAGD,SAAgB,aAAa,CAAO,GAA+B;IACjE,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,WAA+B,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAC,IAAS,EAAE,EAAuB,IAAK,OAAA,EAAE,CAAC,IAAI,CAAC,EAAR,CAAQ,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC;AAZD,sCAYC"} diff --git a/tools/node_modules/eslint/node_modules/rxjs/package.json b/tools/node_modules/eslint/node_modules/rxjs/package.json index 5db2e5bbf27a19..3c7fdf11871545 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/package.json +++ b/tools/node_modules/eslint/node_modules/rxjs/package.json @@ -171,5 +171,5 @@ }, "sideEffects": false, "typings": "./index.d.ts", - "version": "6.3.2" + "version": "6.3.3" } \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/AsyncSubject.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/AsyncSubject.ts index 09d4a54006ef0a..218e8d219f3779 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/AsyncSubject.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/AsyncSubject.ts @@ -3,6 +3,9 @@ import { Subscriber } from './Subscriber'; import { Subscription } from './Subscription'; /** + * A variant of Subject that only emits a value when it completes. It will emit + * its latest value to all its observers on completion. + * * @class AsyncSubject */ export class AsyncSubject extends Subject { diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/BehaviorSubject.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/BehaviorSubject.ts index 3a11d264b3e2a7..20de21c6688bd0 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/BehaviorSubject.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/BehaviorSubject.ts @@ -5,6 +5,9 @@ import { SubscriptionLike } from './types'; import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; /** + * A variant of Subject that requires an initial value and emits its current + * value whenever it is subscribed to. + * * @class BehaviorSubject */ export class BehaviorSubject extends Subject { diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/Observable.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/Observable.ts index d9e8f0c0d57266..01669975c534a9 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/Observable.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/Observable.ts @@ -2,6 +2,7 @@ import { Operator } from './Operator'; import { Subscriber } from './Subscriber'; import { Subscription } from './Subscription'; import { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types'; +import { canReportError } from './util/canReportError'; import { toSubscriber } from './util/toSubscriber'; import { iif } from './observable/iif'; import { throwError } from './observable/throwError'; @@ -198,7 +199,7 @@ export class Observable implements Subscribable { if (operator) { operator.call(sink, this.source); } else { - sink._addParentTeardownLogic( + sink.add( this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? this._subscribe(sink) : this._trySubscribe(sink) @@ -226,7 +227,11 @@ export class Observable implements Subscribable { sink.syncErrorThrown = true; sink.syncErrorValue = err; } - sink.error(err); + if (canReportError(sink)) { + sink.error(err); + } else { + console.warn(err); + } } } diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/ReplaySubject.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/ReplaySubject.ts index 5f4fc0928f3302..d6d8eb7dfd3bea 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/ReplaySubject.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/ReplaySubject.ts @@ -7,6 +7,10 @@ import { ObserveOnSubscriber } from './operators/observeOn'; import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; import { SubjectSubscription } from './SubjectSubscription'; /** + * A variant of Subject that "replays" or emits old values to new subscribers. + * It buffers a set number of values and will emit those values immediately to + * any new subscribers in addition to emitting new values to existing subscribers. + * * @class ReplaySubject */ export class ReplaySubject extends Subject { diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subject.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subject.ts index 4ce87298b3e57e..5bfcb69ddaba54 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subject.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subject.ts @@ -17,6 +17,12 @@ export class SubjectSubscriber extends Subscriber { } /** + * A Subject is a special type of Observable that allows values to be + * multicasted to many Observables. Subjects are like EventEmitters. + * + * Every Subject is an Observable and an Observer. You can subscribe to a + * Subject, and you can call next to feed values as well as error and complete. + * * @class Subject */ export class Subject extends Observable implements SubscriptionLike { @@ -125,6 +131,12 @@ export class Subject extends Observable implements SubscriptionLike { } } + /** + * Creates a new Observable with this Subject as the source. You can do this + * to create customize Observer-side logic of the Subject and conceal it from + * code that uses the Observable. + * @return {Observable} Observable that the Subject casts to + */ asObservable(): Observable { const observable = new Observable(); (observable).source = this; diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subscriber.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subscriber.ts index d7dd3c84de324a..40dd3522c020a9 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subscriber.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subscriber.ts @@ -45,7 +45,7 @@ export class Subscriber extends Subscription implements Observer { /** @internal */ syncErrorThrowable: boolean = false; protected isStopped: boolean = false; - protected destination: PartialObserver; // this `any` is the escape hatch to erase extra type param (e.g. R) + protected destination: PartialObserver | Subscriber; // this `any` is the escape hatch to erase extra type param (e.g. R) private _parentSubscription: Subscription | null = null; @@ -72,13 +72,10 @@ export class Subscriber extends Subscription implements Observer { break; } if (typeof destinationOrNext === 'object') { - // HACK(benlesh): For situations where Node has multiple copies of rxjs in - // node_modules, we cannot rely on `instanceof` checks - if (isTrustedSubscriber(destinationOrNext)) { - const trustedSubscriber = destinationOrNext[rxSubscriberSymbol]() as Subscriber; - this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable; - this.destination = trustedSubscriber; - trustedSubscriber._addParentTeardownLogic(this); + if (destinationOrNext instanceof Subscriber) { + this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + this.destination = destinationOrNext; + destinationOrNext.add(this); } else { this.syncErrorThrowable = true; this.destination = new SafeSubscriber(this, > destinationOrNext); @@ -116,7 +113,6 @@ export class Subscriber extends Subscription implements Observer { if (!this.isStopped) { this.isStopped = true; this._error(err); - this._unsubscribeParentSubscription(); } } @@ -130,7 +126,6 @@ export class Subscriber extends Subscription implements Observer { if (!this.isStopped) { this.isStopped = true; this._complete(); - this._unsubscribeParentSubscription(); } } @@ -156,20 +151,6 @@ export class Subscriber extends Subscription implements Observer { this.unsubscribe(); } - /** @deprecated This is an internal implementation detail, do not use. */ - _addParentTeardownLogic(parentTeardownLogic: TeardownLogic) { - if (parentTeardownLogic !== this) { - this._parentSubscription = this.add(parentTeardownLogic); - } - } - - /** @deprecated This is an internal implementation detail, do not use. */ - _unsubscribeParentSubscription() { - if (this._parentSubscription !== null) { - this._parentSubscription.unsubscribe(); - } - } - /** @deprecated This is an internal implementation detail, do not use. */ _unsubscribeAndRecycle(): Subscriber { const { _parent, _parents } = this; @@ -324,7 +305,3 @@ export class SafeSubscriber extends Subscriber { _parentSubscriber.unsubscribe(); } } - -function isTrustedSubscriber(obj: any) { - return obj instanceof Subscriber || ('_addParentTeardownLogic' in obj && obj[rxSubscriberSymbol]); -} diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subscription.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subscription.ts index 52380c03179aaa..3faac56f87891a 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subscription.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/Subscription.ts @@ -45,7 +45,6 @@ export class Subscription implements SubscriptionLike { constructor(unsubscribe?: () => void) { if (unsubscribe) { ( this)._unsubscribe = unsubscribe; - } } diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/bindCallback.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/bindCallback.ts index 1ec55260ad8dd9..3166a41fa27c13 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/bindCallback.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/bindCallback.ts @@ -3,6 +3,7 @@ import { Observable } from '../Observable'; import { AsyncSubject } from '../AsyncSubject'; import { Subscriber } from '../Subscriber'; import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; import { isArray } from '../util/isArray'; import { isScheduler } from '../util/isScheduler'; @@ -204,7 +205,11 @@ export function bindCallback( try { callbackFunc.apply(context, [...args, handler]); } catch (err) { - subject.error(err); + if (canReportError(subject)) { + subject.error(err); + } else { + console.warn(err); + } } } return subject.subscribe(subscriber); diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts index 4aefc2f7551a7e..d40e4fb6a49347 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts @@ -3,6 +3,7 @@ import { AsyncSubject } from '../AsyncSubject'; import { Subscriber } from '../Subscriber'; import { SchedulerAction, SchedulerLike } from '../types'; import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; import { isScheduler } from '../util/isScheduler'; import { isArray } from '../util/isArray'; @@ -198,7 +199,11 @@ export function bindNodeCallback( try { callbackFunc.apply(context, [...args, handler]); } catch (err) { - subject.error(err); + if (canReportError(subject)) { + subject.error(err); + } else { + console.warn(err); + } } } return subject.subscribe(subscriber); diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/combineLatest.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/combineLatest.ts index 21afe56acfc66c..008c66f3f591bd 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/combineLatest.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/combineLatest.ts @@ -69,8 +69,8 @@ export function combineLatest(...observables: Array | (( * To ensure output array has always the same length, `combineLatest` will * actually wait for all input Observables to emit at least once, * before it starts emitting results. This means if some Observable emits - * values before other Observables started emitting, all that values but last - * will be lost. On the other hand, if some Observable does not emit value but + * values before other Observables started emitting, all these values but the last + * will be lost. On the other hand, if some Observable does not emit a value but * completes, resulting Observable will complete at the same moment without * emitting anything, since it will be now impossible to include value from * completed Observable in resulting array. Also, if some input Observable does diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/zip.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/zip.ts index cea051a3d1ac03..ddae0fa9c321bf 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/zip.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/observable/zip.ts @@ -4,6 +4,7 @@ import { isArray } from '../util/isArray'; import { Operator } from '../Operator'; import { ObservableInput, PartialObserver } from '../types'; import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; import { OuterSubscriber } from '../OuterSubscriber'; import { InnerSubscriber } from '../InnerSubscriber'; import { subscribeToResult } from '../util/subscribeToResult'; @@ -126,6 +127,8 @@ export class ZipSubscriber extends Subscriber { const iterators = this.iterators; const len = iterators.length; + this.unsubscribe(); + if (len === 0) { this.destination.complete(); return; @@ -135,7 +138,8 @@ export class ZipSubscriber extends Subscriber { for (let i = 0; i < len; i++) { let iterator: ZipBufferIterator = iterators[i]; if (iterator.stillUnsubscribed) { - this.add(iterator.subscribe(iterator, i)); + const destination = this.destination as Subscription; + destination.add(iterator.subscribe(iterator, i)); } else { this.active--; // not an observable } diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/delay.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/delay.ts index 6ef71a4b64a4fe..3689e60f01d206 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/delay.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/delay.ts @@ -2,6 +2,7 @@ import { async } from '../scheduler/async'; import { isDate } from '../util/isDate'; import { Operator } from '../Operator'; import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; import { Notification } from '../Notification'; import { Observable } from '../Observable'; import { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types'; @@ -110,7 +111,8 @@ class DelaySubscriber extends Subscriber { private _schedule(scheduler: SchedulerLike): void { this.active = true; - this.add(scheduler.schedule>(DelaySubscriber.dispatch, this.delay, { + const destination = this.destination as Subscription; + destination.add(scheduler.schedule>(DelaySubscriber.dispatch, this.delay, { source: this, destination: this.destination, scheduler: scheduler })); } @@ -137,10 +139,12 @@ class DelaySubscriber extends Subscriber { this.errored = true; this.queue = []; this.destination.error(err); + this.unsubscribe(); } protected _complete() { this.scheduleNotification(Notification.createComplete()); + this.unsubscribe(); } } diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/delayWhen.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/delayWhen.ts index e8c071b8903b42..d22f26bad4d712 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/delayWhen.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/delayWhen.ts @@ -132,6 +132,7 @@ class DelayWhenSubscriber extends OuterSubscriber { protected _complete(): void { this.completed = true; this.tryComplete(); + this.unsubscribe(); } private removeSubscription(subscription: InnerSubscriber): T { @@ -149,7 +150,8 @@ class DelayWhenSubscriber extends OuterSubscriber { const notifierSubscription = subscribeToResult(this, delayNotifier, value); if (notifierSubscription && !notifierSubscription.closed) { - this.add(notifierSubscription); + const destination = this.destination as Subscription; + destination.add(notifierSubscription); this.delayNotifierSubscriptions.push(notifierSubscription); } } @@ -199,6 +201,7 @@ class SubscriptionDelaySubscriber extends Subscriber { } protected _complete() { + this.unsubscribe(); this.subscribeToSource(); } diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/exhaustMap.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/exhaustMap.ts index 67a6ee8bab5728..37b4e113cf1d19 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/exhaustMap.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/exhaustMap.ts @@ -120,7 +120,8 @@ class ExhaustMapSubscriber extends OuterSubscriber { private _innerSub(result: ObservableInput, value: T, index: number): void { const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); subscribeToResult(this, result, value, index, innerSubscriber); } @@ -129,6 +130,7 @@ class ExhaustMapSubscriber extends OuterSubscriber { if (!this.hasSubscription) { this.destination.complete(); } + this.unsubscribe(); } notifyNext(outerValue: T, innerValue: R, @@ -142,7 +144,8 @@ class ExhaustMapSubscriber extends OuterSubscriber { } notifyComplete(innerSub: Subscription): void { - this.remove(innerSub); + const destination = this.destination as Subscription; + destination.remove(innerSub); this.hasSubscription = false; if (this.hasCompleted) { diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/expand.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/expand.ts index 80c425a96ac9ca..33dde3bb383162 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/expand.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/expand.ts @@ -133,7 +133,8 @@ export class ExpandSubscriber extends OuterSubscriber { this.subscribeToProjection(result, value, index); } else { const state: DispatchArg = { subscriber: this, result, value, index }; - this.add(this.scheduler.schedule>(ExpandSubscriber.dispatch, 0, state)); + const destination = this.destination as Subscription; + destination.add(this.scheduler.schedule>(ExpandSubscriber.dispatch, 0, state)); } } else { this.buffer.push(value); @@ -142,7 +143,8 @@ export class ExpandSubscriber extends OuterSubscriber { private subscribeToProjection(result: any, value: T, index: number): void { this.active++; - this.add(subscribeToResult(this, result, value, index)); + const destination = this.destination as Subscription; + destination.add(subscribeToResult(this, result, value, index)); } protected _complete(): void { @@ -150,6 +152,7 @@ export class ExpandSubscriber extends OuterSubscriber { if (this.hasCompleted && this.active === 0) { this.destination.complete(); } + this.unsubscribe(); } notifyNext(outerValue: T, innerValue: R, @@ -160,7 +163,8 @@ export class ExpandSubscriber extends OuterSubscriber { notifyComplete(innerSub: Subscription): void { const buffer = this.buffer; - this.remove(innerSub); + const destination = this.destination as Subscription; + destination.remove(innerSub); this.active--; if (buffer && buffer.length > 0) { this._next(buffer.shift()); diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/mergeMap.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/mergeMap.ts index 3a2b9bc95052a8..d843dcdc974123 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/mergeMap.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/mergeMap.ts @@ -140,7 +140,8 @@ export class MergeMapSubscriber extends OuterSubscriber { private _innerSub(ish: ObservableInput, value: T, index: number): void { const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); subscribeToResult(this, ish, value, index, innerSubscriber); } @@ -149,6 +150,7 @@ export class MergeMapSubscriber extends OuterSubscriber { if (this.active === 0 && this.buffer.length === 0) { this.destination.complete(); } + this.unsubscribe(); } notifyNext(outerValue: T, innerValue: R, diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/mergeScan.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/mergeScan.ts index 5c34d03a31fcfa..42be3d81c2d680 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/mergeScan.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/mergeScan.ts @@ -101,7 +101,8 @@ export class MergeScanSubscriber extends OuterSubscriber { private _innerSub(ish: any, value: T, index: number): void { const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); subscribeToResult(this, ish, value, index, innerSubscriber); } @@ -113,6 +114,7 @@ export class MergeScanSubscriber extends OuterSubscriber { } this.destination.complete(); } + this.unsubscribe(); } notifyNext(outerValue: T, innerValue: R, @@ -126,7 +128,8 @@ export class MergeScanSubscriber extends OuterSubscriber { notifyComplete(innerSub: Subscription): void { const buffer = this.buffer; - this.remove(innerSub); + const destination = this.destination as Subscription; + destination.remove(innerSub); this.active--; if (buffer.length > 0) { this._next(buffer.shift()); diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/observeOn.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/observeOn.ts index 3813ce5c76e4d6..d06fe3c4d4e1a2 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/observeOn.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/observeOn.ts @@ -1,6 +1,7 @@ import { Observable } from '../Observable'; import { Operator } from '../Operator'; import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; import { Notification } from '../Notification'; import { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types'; @@ -88,7 +89,8 @@ export class ObserveOnSubscriber extends Subscriber { } private scheduleMessage(notification: Notification): void { - this.add(this.scheduler.schedule( + const destination = this.destination as Subscription; + destination.add(this.scheduler.schedule( ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination) @@ -101,10 +103,12 @@ export class ObserveOnSubscriber extends Subscriber { protected _error(err: any): void { this.scheduleMessage(Notification.createError(err)); + this.unsubscribe(); } protected _complete(): void { this.scheduleMessage(Notification.createComplete()); + this.unsubscribe(); } } diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts index d3197e5698fb5e..7c37de54c9d324 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts @@ -2,6 +2,7 @@ import { Observable } from '../Observable'; import { from } from '../observable/from'; import { Operator } from '../Operator'; import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; import { isArray } from '../util/isArray'; import { OuterSubscriber } from '../OuterSubscriber'; import { InnerSubscriber } from '../InnerSubscriber'; @@ -143,17 +144,20 @@ class OnErrorResumeNextSubscriber extends OuterSubscriber { protected _error(err: any): void { this.subscribeToNextSource(); + this.unsubscribe(); } protected _complete(): void { this.subscribeToNextSource(); + this.unsubscribe(); } private subscribeToNextSource(): void { const next = this.nextSources.shift(); if (next) { const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); subscribeToResult(this, next, undefined, undefined, innerSubscriber); } else { this.destination.complete(); diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/reduce.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/reduce.ts index 9820dd47b73247..a627dfb4eff362 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/reduce.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/reduce.ts @@ -71,8 +71,9 @@ export function reduce(accumulator: (acc: R, value: T, index?: number) => }; } return function reduceOperatorFunction(source: Observable): Observable { - return pipe(scan((acc, value, index) => { - return accumulator(acc, value, index + 1); - }), takeLast(1))(source) as Observable; + return pipe( + scan((acc: R, value: T, index: number): R => accumulator(acc, value, index + 1)), + takeLast(1), + )(source); }; } diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/sequenceEqual.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/sequenceEqual.ts index 100d9d5985f125..117b42bdb67500 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/sequenceEqual.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/sequenceEqual.ts @@ -1,6 +1,7 @@ import { Operator } from '../Operator'; import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; import { tryCatch } from '../util/tryCatch'; import { errorObject } from '../util/errorObject'; @@ -89,7 +90,7 @@ export class SequenceEqualSubscriber extends Subscriber { private compareTo: Observable, private comparor: (a: T, b: T) => boolean) { super(destination); - this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this))); + (this.destination as Subscription).add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this))); } protected _next(value: T): void { @@ -107,6 +108,7 @@ export class SequenceEqualSubscriber extends Subscriber { } else { this._oneComplete = true; } + this.unsubscribe(); } checkValues() { @@ -143,6 +145,14 @@ export class SequenceEqualSubscriber extends Subscriber { this.checkValues(); } } + + completeB() { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } else { + this._oneComplete = true; + } + } } class SequenceEqualCompareToSubscriber extends Subscriber { @@ -156,9 +166,11 @@ class SequenceEqualCompareToSubscriber extends Subscriber { protected _error(err: any): void { this.parent.error(err); + this.unsubscribe(); } protected _complete(): void { - this.parent._complete(); + this.parent.completeB(); + this.unsubscribe(); } } diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/shareReplay.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/shareReplay.ts index aa8505049c9c25..3d5371fea98854 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/shareReplay.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/shareReplay.ts @@ -38,7 +38,7 @@ import { Subscriber } from '../Subscriber'; * @see {@link publishReplay} * * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer. - * @param {Number} [windowTime=Number.MAX_VALUE] Maximum time length of the replay buffer in milliseconds. + * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds. * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function * will be invoked on. * @return {Observable} An observable sequence that contains the elements of a sequence produced @@ -48,7 +48,7 @@ import { Subscriber } from '../Subscriber'; */ export function shareReplay( bufferSize: number = Number.POSITIVE_INFINITY, - windowTime: number = Number.MAX_VALUE, + windowTime: number = Number.POSITIVE_INFINITY, scheduler?: SchedulerLike ): MonoTypeOperatorFunction { return (source: Observable) => source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/switchMap.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/switchMap.ts index ee83978c087dfd..0008c379ef8b28 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/switchMap.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/switchMap.ts @@ -114,7 +114,8 @@ class SwitchMapSubscriber extends OuterSubscriber { innerSubscription.unsubscribe(); } const innerSubscriber = new InnerSubscriber(this, undefined, undefined); - this.add(innerSubscriber); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber); } @@ -123,6 +124,7 @@ class SwitchMapSubscriber extends OuterSubscriber { if (!innerSubscription || innerSubscription.closed) { super._complete(); } + this.unsubscribe(); } protected _unsubscribe() { @@ -130,7 +132,8 @@ class SwitchMapSubscriber extends OuterSubscriber { } notifyComplete(innerSub: Subscription): void { - this.remove(innerSub); + const destination = this.destination as Subscription; + destination.remove(innerSub); this.innerSubscription = null; if (this.isStopped) { super._complete(); diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/takeWhile.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/takeWhile.ts index 03a90178b6ea82..16c396e0140524 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/takeWhile.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/operators/takeWhile.ts @@ -1,7 +1,10 @@ import { Operator } from '../Operator'; import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; -import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; +import { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +export function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction; +export function takeWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; /** * Emits values emitted by the source Observable so long as each value satisfies diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts index 7b009232a21fab..9a40544bd38e49 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts @@ -1,7 +1,8 @@ +/** @deprecated do not use, this is no longer checked by RxJS internals */ export const rxSubscriber = - (typeof Symbol === 'function' && typeof Symbol.for === 'function') - ? Symbol.for('rxSubscriber') - : '@@rxSubscriber'; + typeof Symbol === 'function' + ? Symbol('rxSubscriber') + : '@@rxSubscriber_' + Math.random(); /** * @deprecated use rxSubscriber instead diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/canReportError.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/canReportError.ts new file mode 100644 index 00000000000000..deed48eebf1f39 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/canReportError.ts @@ -0,0 +1,22 @@ +import { Subscriber } from '../Subscriber'; +import { Subject } from '../Subject'; + +/** + * Determines whether the ErrorObserver is closed or stopped or has a + * destination that is closed or stopped - in which case errors will + * need to be reported via a different mechanism. + * @param observer the observer + */ +export function canReportError(observer: Subscriber | Subject): boolean { + while (observer) { + const { closed, destination, isStopped } = observer as any; + if (closed || isStopped) { + return false; + } else if (destination && destination instanceof Subscriber) { + observer = destination; + } else { + observer = null; + } + } + return true; +} diff --git a/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/pipe.ts b/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/pipe.ts index 06d5e70ff7d47c..206f566d821d51 100644 --- a/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/pipe.ts +++ b/tools/node_modules/eslint/node_modules/rxjs/src/internal/util/pipe.ts @@ -3,18 +3,19 @@ import { UnaryFunction } from '../types'; /* tslint:disable:max-line-length */ export function pipe(): UnaryFunction; -export function pipe(op1: UnaryFunction): UnaryFunction; -export function pipe(op1: UnaryFunction, op2: UnaryFunction): UnaryFunction; -export function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction): UnaryFunction; -export function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction): UnaryFunction; -export function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction): UnaryFunction; -export function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction): UnaryFunction; -export function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction): UnaryFunction; -export function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction): UnaryFunction; -export function pipe(op1: UnaryFunction, op2: UnaryFunction, op3: UnaryFunction, op4: UnaryFunction, op5: UnaryFunction, op6: UnaryFunction, op7: UnaryFunction, op8: UnaryFunction, op9: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction; /* tslint:enable:max-line-length */ -export function pipe(...fns: Array>): UnaryFunction { +export function pipe(...fns: Array>): UnaryFunction { return pipeFromArray(fns); } diff --git a/tools/node_modules/eslint/package.json b/tools/node_modules/eslint/package.json index d78882d19aa445..09880a0388c598 100644 --- a/tools/node_modules/eslint/package.json +++ b/tools/node_modules/eslint/package.json @@ -15,7 +15,7 @@ "ajv": "^6.5.3", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", - "debug": "^3.1.0", + "debug": "^4.0.1", "doctrine": "^2.1.0", "eslint-plugin-markdown": "^1.0.0-beta.8", "eslint-scope": "^4.0.0", @@ -135,5 +135,5 @@ "release": "node Makefile.js release", "test": "node Makefile.js test" }, - "version": "5.6.0" + "version": "5.6.1" } \ No newline at end of file diff --git a/tools/test.py b/tools/test.py index b6f91aa1ebdf59..c5c9fb53c07626 100755 --- a/tools/test.py +++ b/tools/test.py @@ -705,12 +705,23 @@ def CheckedUnlink(name): PrintError("os.unlink() " + str(e)) break -def Execute(args, context, timeout=None, env={}, faketty=False, disable_core_files=False): +def Execute(args, context, timeout=None, env={}, faketty=False, disable_core_files=False, input=None): if faketty: import pty (out_master, fd_out) = pty.openpty() fd_in = fd_err = fd_out pty_out = out_master + + if input is not None: + # Before writing input data, disable echo so the input doesn't show + # up as part of the output. + import termios + attr = termios.tcgetattr(fd_in) + attr[3] = attr[3] & ~termios.ECHO + termios.tcsetattr(fd_in, termios.TCSADRAIN, attr) + + os.write(pty_out, input) + os.write(pty_out, '\x04') # End-of-file marker (Ctrl+D) else: (fd_out, outname) = tempfile.mkstemp() (fd_err, errname) = tempfile.mkstemp() diff --git a/vcbuild.bat b/vcbuild.bat index 0c7bd0f48b2d95..8627dcb296fba7 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -179,6 +179,7 @@ if defined i18n_arg set configure_flags=%configure_flags% --with-intl=%i if defined config_flags set configure_flags=%configure_flags% %config_flags% if defined target_arch set configure_flags=%configure_flags% --dest-cpu=%target_arch% if defined openssl_no_asm set configure_flags=%configure_flags% --openssl-no-asm +if defined DEBUG_HELPER set configure_flags=%configure_flags% --verbose if not exist "%~dp0deps\icu" goto no-depsicu if "%target%"=="Clean" echo deleting %~dp0deps\icu @@ -457,7 +458,7 @@ robocopy /e doc\api %config%\doc\api robocopy /e doc\api_assets %config%\doc\api\assets for %%F in (%config%\doc\api\*.md) do ( - %node_exe% tools\doc\generate.js --node-version=v%FULLVERSION% --analytics=%DOCS_ANALYTICS% %%F --output-directory=%%~dF%%~pF + %node_exe% tools\doc\generate.js --node-version=v%FULLVERSION% %%F --output-directory=%%~dF%%~pF ) :run