build: flatten esm5 sources before rollup (#23131)

this is needed to update to latest rules_nodejs due to breaking change in
https://github.com/bazelbuild/rules_nodejs/pull/172
It has the side-effect of correctly marking rxjs packages as side-effect-free

PR Close #23131
This commit is contained in:
Alex Eagle 2018-04-02 16:34:48 -07:00 committed by Alex Rickabaugh
parent d284404060
commit 580f05bd9c
10 changed files with 88 additions and 696 deletions

View File

@ -8,6 +8,15 @@ build --noshow_progress
# Don't run manual tests
test --test_tag_filters=-manual
# Print all the options that apply to the build.
# This helps us diagnose which options override others
# (e.g. /etc/bazel.bazelrc vs. tools/bazel.rc)
build --announce_rc
# Create dist/bin symlink to $(bazel info bazel-bin)
# We use this when uploading artifacts after the build finishes
build --symlink_prefix=dist/
# Enable experimental CircleCI bazel remote cache proxy
# See remote cache documentation in /docs/BAZEL.md
build --experimental_remote_spawn_cache --remote_rest_cache=http://localhost:7643

View File

@ -88,9 +88,15 @@ jobs:
- store_artifacts:
path: dist/bin/packages/core/test/bundling/hello_world/bundle.min.js
destination: packages/core/test/bundling/hello_world/bundle.min.js
- store_artifacts:
path: dist/bin/packages/core/test/bundling/todo/bundle.min.js
destination: packages/core/test/bundling/todo/bundle.min.js
- store_artifacts:
path: dist/bin/packages/core/test/bundling/hello_world/bundle.min.js.brotli
destination: packages/core/test/bundling/hello_world/bundle.min.js.brotli
- store_artifacts:
path: dist/bin/packages/core/test/bundling/todo/bundle.min.js.brotli
destination: packages/core/test/bundling/todo/bundle.min.js.brotli
- save_cache:
key: *cache_key

View File

@ -2,9 +2,9 @@ workspace(name = "angular")
http_archive(
name = "build_bazel_rules_nodejs",
url = "https://github.com/bazelbuild/rules_nodejs/archive/0.6.0.zip",
strip_prefix = "rules_nodejs-0.6.0",
sha256 = "e8a2bb5ca51fbafb244bc507bcebcae33a63d969f47413b319a8dcce032845bf",
url = "https://github.com/bazelbuild/rules_nodejs/archive/cd368bd71a4b04fae0eafb5c5e2c906a93772584.zip",
strip_prefix = "rules_nodejs-cd368bd71a4b04fae0eafb5c5e2c906a93772584",
sha256 = "db74c61dd8bf73cc50aed56e78b7a8ad383f5869206901506cf8d3ee27f9277f",
)
load("@build_bazel_rules_nodejs//:defs.bzl", "check_bazel_version", "node_repositories", "yarn_install")

View File

@ -2,9 +2,9 @@ workspace(name = "bazel_integration_test")
http_archive(
name = "build_bazel_rules_nodejs",
url = "https://github.com/bazelbuild/rules_nodejs/archive/0.5.3.zip",
strip_prefix = "rules_nodejs-0.5.3",
sha256 = "17a5515f59777b00cb25dbc710017a14273f825029b2ec60e0969d28914870be",
url = "https://github.com/bazelbuild/rules_nodejs/archive/cd368bd71a4b04fae0eafb5c5e2c906a93772584.zip",
strip_prefix = "rules_nodejs-cd368bd71a4b04fae0eafb5c5e2c906a93772584",
sha256 = "db74c61dd8bf73cc50aed56e78b7a8ad383f5869206901506cf8d3ee27f9277f",
)
load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories")

View File

@ -126,3 +126,45 @@ esm5_outputs_aspect = aspect(
),
},
)
def esm5_root_dir(ctx):
return ctx.label.name + ".esm5"
def flatten_esm5(ctx):
"""Merge together the .esm5 folders from the dependencies.
Two different dependencies A and B may have outputs like
`bazel-bin/path/to/A.esm5/path/to/lib.js`
`bazel-bin/path/to/B.esm5/path/to/main.js`
In order to run rollup on this app, in case main.js contains `import from './lib'`
they need to be together in the same root directory, so if we depend on both A and B
we need the outputs to be
`bazel-bin/path/to/my_rule.esm5/path/to/lib.js`
`bazel-bin/path/to/my_rule.esm5/path/to/main.js`
Args:
ctx: the skylark rule execution context
Returns:
list of flattened files
"""
esm5_sources = []
result = []
for dep in ctx.attr.deps:
if ESM5Info in dep:
transitive_output = dep[ESM5Info].transitive_output
esm5_sources.extend(transitive_output.values())
for f in depset(transitive = esm5_sources).to_list():
path = f.short_path[f.short_path.find(".esm5") + len(".esm5"):]
if (path.startswith("../")):
path = "external/" + path[3:]
rerooted_file = ctx.actions.declare_file("/".join([esm5_root_dir(ctx), path]))
result.append(rerooted_file)
# print("copy", f.short_path, "to", rerooted_file.short_path)
ctx.actions.expand_template(
output = rerooted_file,
template = f,
substitutions = {},
)
return result

View File

@ -16,7 +16,7 @@ load("@build_bazel_rules_nodejs//:internal/npm_package/npm_package.bzl",
"NPM_PACKAGE_OUTPUTS",
"create_package")
load("@build_bazel_rules_nodejs//:internal/node.bzl", "sources_aspect")
load("//packages/bazel/src:esm5.bzl", "esm5_outputs_aspect", "ESM5Info")
load("//packages/bazel/src:esm5.bzl", "esm5_outputs_aspect", "flatten_esm5", "esm5_root_dir")
# TODO(alexeagle): this list is incomplete, add more as material ramps up
WELL_KNOWN_GLOBALS = {
@ -114,19 +114,7 @@ def _ng_package_impl(ctx):
npm_package_directory = ctx.actions.declare_directory("%s.ng_pkg" % ctx.label.name)
esm_2015_files = collect_es6_sources(ctx)
esm5_sources = depset()
root_dirs = []
for dep in ctx.attr.deps:
if ESM5Info in dep:
# TODO(alexeagle): we could make the module resolution in the rollup plugin
# faster if we kept the files grouped with their root dir. This approach just
# passes in both lists and requires multiple lookups (with expensive exception
# handling) to locate the files again.
transitive_output = dep[ESM5Info].transitive_output
root_dirs.extend(transitive_output.keys())
esm5_sources = depset(transitive=[esm5_sources] + transitive_output.values())
esm5_sources = depset(flatten_esm5(ctx))
# These accumulators match the directory names where the files live in the
# Angular package format.
@ -190,7 +178,7 @@ def _ng_package_impl(ctx):
umd_output = ctx.outputs.umd
min_output = ctx.outputs.umd_min
config = write_rollup_config(ctx, [], root_dirs)
config = write_rollup_config(ctx, [], "/".join([ctx.bin_dir.path, ctx.label.package, esm5_root_dir(ctx)]))
fesm2015.append(_rollup(ctx, config, es2015_entry_point, esm_2015_files, fesm2015_output))
fesm5.append(_rollup(ctx, config, es5_entry_point, esm5_sources, fesm5_output))

View File

@ -18,11 +18,11 @@ load("@build_bazel_rules_nodejs//internal/rollup:rollup_bundle.bzl",
"run_rollup",
"run_uglify")
load("@build_bazel_rules_nodejs//internal:collect_es6_sources.bzl", collect_es2015_sources = "collect_es6_sources")
load(":esm5.bzl", "esm5_outputs_aspect", "ESM5Info")
load(":esm5.bzl", "esm5_outputs_aspect", "flatten_esm5", "esm5_root_dir")
PACKAGES=["core", "common"]
PACKAGES=["packages/core/src", "packages/common/src", "external/rxjs"]
PLUGIN_CONFIG="{sideEffectFreeModules: [\n%s]}" % ",\n".join(
[" 'packages/{0}/{0}.esm5'".format(p) for p in PACKAGES])
[" '.esm5/{0}'".format(p) for p in PACKAGES])
BO_ROLLUP="angular_devkit/packages/angular_devkit/build_optimizer/src/build-optimizer/rollup-plugin.js"
BO_PLUGIN="require('%s').default(%s)" % (BO_ROLLUP, PLUGIN_CONFIG)
@ -41,21 +41,10 @@ def _ng_rollup_bundle(ctx):
esm2015_rollup_config = write_rollup_config(ctx, filename = "_%s.rollup_es6.conf.js")
run_rollup(ctx, collect_es2015_sources(ctx), esm2015_rollup_config, ctx.outputs.build_es6)
esm5_sources = []
root_dirs = []
esm5_sources = flatten_esm5(ctx)
for dep in ctx.attr.deps:
if ESM5Info in dep:
# TODO(alexeagle): we could make the module resolution in the rollup plugin
# faster if we kept the files grouped with their root dir. This approach just
# passes in both lists and requires multiple lookups (with expensive exception
# handling) to locate the files again.
transitive_output = dep[ESM5Info].transitive_output
root_dirs.extend(transitive_output.keys())
esm5_sources.extend(transitive_output.values())
rollup_config = write_rollup_config(ctx, [BO_PLUGIN], root_dirs)
run_rollup(ctx, depset(transitive = esm5_sources).to_list(), rollup_config, ctx.outputs.build_es5)
rollup_config = write_rollup_config(ctx, [BO_PLUGIN], "/".join([ctx.bin_dir.path, ctx.label.package, esm5_root_dir(ctx)]))
run_rollup(ctx, esm5_sources, rollup_config, ctx.outputs.build_es5)
run_uglify(ctx, ctx.outputs.build_es5, ctx.outputs.build_es5_min,
comments = False)

View File

@ -1,139 +1,31 @@
[
{
"name": "AnonymousSubject"
},
{
"name": "CLEAN_PROMISE"
},
{
"name": "ConnectableSubscriber"
},
{
"name": "Context"
},
{
"name": "CountedSubject"
},
{
"name": "DelayMessage"
},
{
"name": "EMPTY$1"
},
{
"name": "EMPTY$2"
},
{
"name": "EMPTY_RENDERER_TYPE_ID"
},
{
"name": "EmptyError"
},
{
"name": "GroupDurationSubscriber"
},
{
"name": "GroupedObservable"
},
{
"name": "HelloWorld"
},
{
"name": "INeedToExistEvenThoughIAmNotNeeded"
},
{
"name": "InnerRefCountSubscription"
},
{
"name": "InnerSubscriber"
},
{
"name": "NG_HOST_SYMBOL"
},
{
"name": "NG_PROJECT_AS_ATTR_NAME"
},
{
"name": "NONE"
},
{
"name": "Notification"
},
{
"name": "ObjectUnsubscribedError"
},
{
"name": "Observable"
},
{
"name": "ObserveOnMessage"
},
{
"name": "ObserveOnSubscriber"
},
{
"name": "OuterSubscriber"
},
{
"name": "QueueAction"
},
{
"name": "ROOT_DIRECTIVE_INDICES"
},
{
"name": "RefCountOperator$1"
},
{
"name": "RefCountSubscriber$1"
},
{
"name": "ReplayEvent"
},
{
"name": "SafeSubscriber"
},
{
"name": "SequenceEqualCompareToSubscriber"
},
{
"name": "StaticArrayIterator"
},
{
"name": "StaticIterator"
},
{
"name": "Subject"
},
{
"name": "SubjectSubscriber"
},
{
"name": "SubjectSubscription"
},
{
"name": "Subscriber"
},
{
"name": "Subscription"
},
{
"name": "SubscriptionDelaySubscriber"
},
{
"name": "UNDEFINED_RENDERER_TYPE_ID"
},
{
"name": "UnsubscriptionError"
},
{
"name": "ZipBufferIterator"
},
{
"name": "__extends"
},
{
"name": "_enable_super_gross_mode_that_will_cause_bad_things"
},
{
"name": "_renderCompCount"
},
@ -158,9 +50,6 @@
{
"name": "componentRefresh"
},
{
"name": "config"
},
{
"name": "createLNode"
},
@ -188,54 +77,12 @@
{
"name": "detectChangesInternal"
},
{
"name": "dispatch"
},
{
"name": "dispatchBufferClose"
},
{
"name": "dispatchBufferCreation"
},
{
"name": "dispatchBufferTimeSpanOnly"
},
{
"name": "dispatchNext$2"
},
{
"name": "dispatchNext$3"
},
{
"name": "dispatchNotification"
},
{
"name": "dispatchWindowClose"
},
{
"name": "dispatchWindowCreation"
},
{
"name": "dispatchWindowTimeSpanOnly"
},
{
"name": "domRendererFactory3"
},
{
"name": "empty"
},
{
"name": "empty$1"
},
{
"name": "emptyScheduled"
},
{
"name": "enterView"
},
{
"name": "errorObject"
},
{
"name": "executeHooks"
},
@ -245,9 +92,6 @@
{
"name": "executeInitHooks"
},
{
"name": "extendStatics"
},
{
"name": "extractDirectiveDef"
},
@ -257,87 +101,30 @@
{
"name": "firstTemplatePass"
},
{
"name": "flattenUnsubscriptionErrors"
},
{
"name": "fromArray"
},
{
"name": "getDirectiveInstance"
},
{
"name": "getOrCreateTView"
},
{
"name": "getPromiseCtor"
},
{
"name": "getSymbolIterator$1"
},
{
"name": "hostElement"
},
{
"name": "hostReportError"
},
{
"name": "initChangeDetectorIfExisting"
},
{
"name": "invertObject"
},
{
"name": "isArray"
},
{
"name": "isArrayLike"
},
{
"name": "isFunction"
},
{
"name": "isObject"
},
{
"name": "isProceduralRenderer"
},
{
"name": "isPromise"
},
{
"name": "isScheduler"
},
{
"name": "isTrustedSubscriber"
},
{
"name": "iterator"
},
{
"name": "leaveView"
},
{
"name": "locateHostElement"
},
{
"name": "noop"
},
{
"name": "observable"
},
{
"name": "of"
},
{
"name": "pipeFromArray"
},
{
"name": "queue"
},
{
"name": "refCount"
},
{
"name": "refreshChildComponents"
},
@ -359,12 +146,6 @@
{
"name": "resolveRendererType2"
},
{
"name": "rxSubscriber"
},
{
"name": "scalar"
},
{
"name": "setHostBindings"
},
@ -374,39 +155,9 @@
{
"name": "stringify$1"
},
{
"name": "subscribeTo"
},
{
"name": "subscribeToArray"
},
{
"name": "subscribeToIterable"
},
{
"name": "subscribeToObservable"
},
{
"name": "subscribeToPromise"
},
{
"name": "subscribeToResult"
},
{
"name": "text"
},
{
"name": "throwError"
},
{
"name": "toSubscriber"
},
{
"name": "tryCatch"
},
{
"name": "tryCatcher"
},
{
"name": "viewAttached"
}

View File

@ -2,42 +2,15 @@
{
"name": "APP_ROOT"
},
{
"name": "AnonymousSubject"
},
{
"name": "CIRCULAR$1"
},
{
"name": "ConnectableSubscriber"
},
{
"name": "Context"
},
{
"name": "CountedSubject"
},
{
"name": "DelayMessage"
},
{
"name": "EMPTY$1"
},
{
"name": "EMPTY_ARRAY$1"
},
{
"name": "EmptyError"
},
{
"name": "GET_PROPERTY_NAME$1"
},
{
"name": "GroupDurationSubscriber"
},
{
"name": "GroupedObservable"
},
{
"name": "INJECTOR$1"
},
@ -47,120 +20,42 @@
{
"name": "InjectionToken"
},
{
"name": "InnerRefCountSubscription"
},
{
"name": "InnerSubscriber"
},
{
"name": "NONE"
},
{
"name": "NOT_YET"
},
{
"name": "NULL_INJECTOR$1"
},
{
"name": "Notification"
},
{
"name": "NullInjector"
},
{
"name": "ObjectUnsubscribedError"
},
{
"name": "Observable"
},
{
"name": "ObserveOnMessage"
},
{
"name": "ObserveOnSubscriber"
},
{
"name": "Optional"
},
{
"name": "OuterSubscriber"
},
{
"name": "PARAMETERS"
},
{
"name": "QueueAction"
},
{
"name": "R3Injector"
},
{
"name": "RefCountOperator$1"
},
{
"name": "RefCountSubscriber$1"
},
{
"name": "ReplayEvent"
},
{
"name": "SafeSubscriber"
},
{
"name": "ScopedService"
},
{
"name": "Self"
},
{
"name": "SequenceEqualCompareToSubscriber"
},
{
"name": "SkipSelf"
},
{
"name": "StaticArrayIterator"
},
{
"name": "StaticIterator"
},
{
"name": "Subject"
},
{
"name": "SubjectSubscriber"
},
{
"name": "SubjectSubscription"
},
{
"name": "Subscriber"
},
{
"name": "Subscription"
},
{
"name": "SubscriptionDelaySubscriber"
},
{
"name": "THROW_IF_NOT_FOUND"
},
{
"name": "USE_VALUE$1"
},
{
"name": "UnsubscriptionError"
},
{
"name": "ZipBufferIterator"
},
{
"name": "_THROW_IF_NOT_FOUND"
},
{
"name": "__extends"
},
{
"name": "__read"
},
@ -170,12 +65,6 @@
{
"name": "_currentInjector"
},
{
"name": "_enable_super_gross_mode_that_will_cause_bad_things"
},
{
"name": "config"
},
{
"name": "couldBeInjectableType"
},
@ -191,81 +80,21 @@
{
"name": "defineInjector"
},
{
"name": "dispatch"
},
{
"name": "dispatchBufferClose"
},
{
"name": "dispatchBufferCreation"
},
{
"name": "dispatchBufferTimeSpanOnly"
},
{
"name": "dispatchNext$2"
},
{
"name": "dispatchNext$3"
},
{
"name": "dispatchNotification"
},
{
"name": "dispatchWindowClose"
},
{
"name": "dispatchWindowCreation"
},
{
"name": "dispatchWindowTimeSpanOnly"
},
{
"name": "empty"
},
{
"name": "empty$1"
},
{
"name": "emptyScheduled"
},
{
"name": "errorObject"
},
{
"name": "extendStatics"
},
{
"name": "flattenUnsubscriptionErrors"
},
{
"name": "forwardRef"
},
{
"name": "fromArray"
},
{
"name": "getClosureSafeProperty$1"
},
{
"name": "getNullInjector"
},
{
"name": "getPromiseCtor"
},
{
"name": "getSymbolIterator$1"
},
{
"name": "hasDeps"
},
{
"name": "hasOnDestroy"
},
{
"name": "hostReportError"
},
{
"name": "inject"
},
@ -275,42 +104,18 @@
{
"name": "injectableDefRecord"
},
{
"name": "isArray"
},
{
"name": "isArrayLike"
},
{
"name": "isExistingProvider"
},
{
"name": "isFactoryProvider"
},
{
"name": "isFunction"
},
{
"name": "isObject"
},
{
"name": "isPromise"
},
{
"name": "isScheduler"
},
{
"name": "isTrustedSubscriber"
},
{
"name": "isTypeProvider"
},
{
"name": "isValueProvider"
},
{
"name": "iterator"
},
{
"name": "makeMetadataCtor"
},
@ -320,70 +125,16 @@
{
"name": "makeRecord"
},
{
"name": "noop"
},
{
"name": "observable"
},
{
"name": "of"
},
{
"name": "pipeFromArray"
},
{
"name": "providerToRecord"
},
{
"name": "queue"
},
{
"name": "refCount"
},
{
"name": "resolveForwardRef"
},
{
"name": "rxSubscriber"
},
{
"name": "scalar"
},
{
"name": "setCurrentInjector"
},
{
"name": "stringify"
},
{
"name": "subscribeTo"
},
{
"name": "subscribeToArray"
},
{
"name": "subscribeToIterable"
},
{
"name": "subscribeToObservable"
},
{
"name": "subscribeToPromise"
},
{
"name": "subscribeToResult"
},
{
"name": "throwError"
},
{
"name": "toSubscriber"
},
{
"name": "tryCatch"
},
{
"name": "tryCatcher"
}
]

View File

@ -17,27 +17,12 @@
{
"name": "CommonModule"
},
{
"name": "ConnectableSubscriber"
},
{
"name": "Context"
},
{
"name": "CountedSubject"
},
{
"name": "DefaultIterableDiffer"
},
{
"name": "DefaultIterableDifferFactory"
},
{
"name": "DelayMessage"
},
{
"name": "EMPTY$1"
},
{
"name": "EMPTY$2"
},
@ -53,21 +38,12 @@
{
"name": "EmbeddedViewRef$1"
},
{
"name": "EmptyError"
},
{
"name": "EventEmitter"
},
{
"name": "GET_PROPERTY_NAME$1"
},
{
"name": "GroupDurationSubscriber"
},
{
"name": "GroupedObservable"
},
{
"name": "INJECTOR"
},
@ -77,12 +53,6 @@
{
"name": "InjectionToken"
},
{
"name": "InnerRefCountSubscription"
},
{
"name": "InnerSubscriber"
},
{
"name": "IterableChangeRecord_"
},
@ -92,9 +62,6 @@
{
"name": "NG_PROJECT_AS_ATTR_NAME"
},
{
"name": "NONE"
},
{
"name": "NOT_YET"
},
@ -113,9 +80,6 @@
{
"name": "NgOnChangesFeature"
},
{
"name": "Notification"
},
{
"name": "NullInjector"
},
@ -125,27 +89,15 @@
{
"name": "Observable"
},
{
"name": "ObserveOnMessage"
},
{
"name": "ObserveOnSubscriber"
},
{
"name": "Optional"
},
{
"name": "OuterSubscriber"
},
{
"name": "PARAMETERS"
},
{
"name": "PRIVATE_PREFIX"
},
{
"name": "QueueAction"
},
{
"name": "R3Injector"
},
@ -155,36 +107,18 @@
{
"name": "RecordViewTuple"
},
{
"name": "RefCountOperator$1"
},
{
"name": "RefCountSubscriber$1"
},
{
"name": "ReplayEvent"
},
{
"name": "SafeSubscriber"
},
{
"name": "Self"
},
{
"name": "SequenceEqualCompareToSubscriber"
},
{
"name": "SimpleChange"
},
{
"name": "SkipSelf"
},
{
"name": "StaticArrayIterator"
},
{
"name": "StaticIterator"
},
{
"name": "Subject"
},
@ -200,9 +134,6 @@
{
"name": "Subscription"
},
{
"name": "SubscriptionDelaySubscriber"
},
{
"name": "THROW_IF_NOT_FOUND"
},
@ -230,9 +161,6 @@
{
"name": "ViewContainerRef$1"
},
{
"name": "ZipBufferIterator"
},
{
"name": "_CLEAN_PROMISE"
},
@ -251,6 +179,21 @@
{
"name": "__extends"
},
{
"name": "__extends$1"
},
{
"name": "__extends$2"
},
{
"name": "__extends$4"
},
{
"name": "__extends$5"
},
{
"name": "__extends$6"
},
{
"name": "__global"
},
@ -410,36 +353,6 @@
{
"name": "directiveCreate"
},
{
"name": "dispatch"
},
{
"name": "dispatchBufferClose"
},
{
"name": "dispatchBufferCreation"
},
{
"name": "dispatchBufferTimeSpanOnly"
},
{
"name": "dispatchNext$2"
},
{
"name": "dispatchNext$3"
},
{
"name": "dispatchNotification"
},
{
"name": "dispatchWindowClose"
},
{
"name": "dispatchWindowCreation"
},
{
"name": "dispatchWindowTimeSpanOnly"
},
{
"name": "domRendererFactory3"
},
@ -458,12 +371,6 @@
{
"name": "empty"
},
{
"name": "empty$1"
},
{
"name": "emptyScheduled"
},
{
"name": "enterView"
},
@ -512,9 +419,6 @@
{
"name": "forwardRef"
},
{
"name": "fromArray"
},
{
"name": "generateInitialInputs"
},
@ -575,9 +479,6 @@
{
"name": "getSymbolIterator"
},
{
"name": "getSymbolIterator$1"
},
{
"name": "getTypeNameForDebugging"
},
@ -635,9 +536,6 @@
{
"name": "isArray"
},
{
"name": "isArrayLike"
},
{
"name": "isCssClassMatching"
},
@ -677,12 +575,6 @@
{
"name": "isProceduralRenderer"
},
{
"name": "isPromise"
},
{
"name": "isScheduler"
},
{
"name": "isTrustedSubscriber"
},
@ -695,9 +587,6 @@
{
"name": "iterateListLike"
},
{
"name": "iterator"
},
{
"name": "leaveView"
},
@ -737,18 +626,12 @@
{
"name": "observable"
},
{
"name": "of"
},
{
"name": "pipeFromArray"
},
{
"name": "providerToRecord"
},
{
"name": "queue"
},
{
"name": "queueComponentIndexForCheck"
},
@ -770,9 +653,6 @@
{
"name": "queueViewHooks"
},
{
"name": "refCount"
},
{
"name": "refreshChildComponents"
},
@ -815,9 +695,6 @@
{
"name": "saveResolvedLocalsInData"
},
{
"name": "scalar"
},
{
"name": "scheduleTick"
},
@ -845,33 +722,12 @@
{
"name": "stringify$1"
},
{
"name": "subscribeTo"
},
{
"name": "subscribeToArray"
},
{
"name": "subscribeToIterable"
},
{
"name": "subscribeToObservable"
},
{
"name": "subscribeToPromise"
},
{
"name": "subscribeToResult"
},
{
"name": "text"
},
{
"name": "textBinding"
},
{
"name": "throwError"
},
{
"name": "throwErrorIfNoChangesMode"
},