fix(core): remove duplicated EMPTY_OBJ constant (#41066)
The codebase currently contains several `EMPTY_OBJ` constants,
and they can end up in the bundle of an application.
A recent commit 6fbe219
tipped us off
as it introduced several `noop` occurrences in the golden symbol files.
After investigating, we decided to remove the duplicated symbols.
This probably shaves only a few bytes,
but this commit removes the duplicated functions,
by always using the one in `core/src/utils/empty`.
PR Close #41066
This commit is contained in:
parent
d44c7c209d
commit
bf158e7ff0
|
@ -12,10 +12,9 @@ import {NgModuleDef, NgModuleType} from '../metadata/ng_module_def';
|
|||
import {SchemaMetadata} from '../metadata/schema';
|
||||
import {ViewEncapsulation} from '../metadata/view';
|
||||
import {noSideEffects} from '../util/closure';
|
||||
import {EMPTY_ARRAY} from '../util/empty';
|
||||
import {EMPTY_ARRAY, EMPTY_OBJ} from '../util/empty';
|
||||
import {initNgDevMode} from '../util/ng_dev_mode';
|
||||
import {stringify} from '../util/stringify';
|
||||
import {EMPTY_OBJ} from './empty';
|
||||
import {NG_COMP_DEF, NG_DIR_DEF, NG_LOC_ID_DEF, NG_MOD_DEF, NG_PIPE_DEF} from './fields';
|
||||
import {ComponentDef, ComponentDefFeature, ComponentTemplate, ComponentType, ContentQueriesFunction, DirectiveDef, DirectiveDefFeature, DirectiveTypesOrFactory, HostBindingsFunction, PipeDef, PipeTypesOrFactory, ViewQueriesFunction} from './interfaces/definition';
|
||||
import {AttributeMarker, TAttributes, TConstantsOrFactory} from './interfaces/node';
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
/**
|
||||
* @license
|
||||
* Copyright Google LLC All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style license that can be
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
import {initNgDevMode} from '../util/ng_dev_mode';
|
||||
|
||||
/**
|
||||
* This file contains reuseable "empty" symbols that can be used as default return values
|
||||
* in different parts of the rendering code. Because the same symbols are returned, this
|
||||
* allows for identity checks against these values to be consistently used by the framework
|
||||
* code.
|
||||
*/
|
||||
|
||||
export const EMPTY_OBJ: {} = {};
|
||||
|
||||
// freezing the values prevents any code from accidentally inserting new values in
|
||||
if ((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode()) {
|
||||
// These property accesses can be ignored because ngDevMode will be set to false
|
||||
// when optimizing code and the whole if statement will be dropped.
|
||||
// tslint:disable-next-line:no-toplevel-property-access
|
||||
Object.freeze(EMPTY_OBJ);
|
||||
}
|
|
@ -7,9 +7,8 @@
|
|||
*/
|
||||
|
||||
import {Type, Writable} from '../../interface/type';
|
||||
import {EMPTY_ARRAY} from '../../util/empty';
|
||||
import {EMPTY_ARRAY, EMPTY_OBJ} from '../../util/empty';
|
||||
import {fillProperties} from '../../util/property';
|
||||
import {EMPTY_OBJ} from '../empty';
|
||||
import {ComponentDef, ContentQueriesFunction, DirectiveDef, DirectiveDefFeature, HostBindingsFunction, RenderFlags, ViewQueriesFunction} from '../interfaces/definition';
|
||||
import {TAttributes} from '../interfaces/node';
|
||||
import {isComponentDef} from '../interfaces/type_checks';
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import {OnChanges} from '../../interface/lifecycle_hooks';
|
||||
import {SimpleChange, SimpleChanges} from '../../interface/simple_change';
|
||||
import {EMPTY_OBJ} from '../empty';
|
||||
import {EMPTY_OBJ} from '../../util/empty';
|
||||
import {DirectiveDef, DirectiveDefFeature} from '../interfaces/definition';
|
||||
|
||||
/**
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
|
||||
|
||||
import {assertIndexInRange} from '../../util/assert';
|
||||
import {EMPTY_OBJ} from '../../util/empty';
|
||||
import {isObservable} from '../../util/lang';
|
||||
import {EMPTY_OBJ} from '../empty';
|
||||
import {PropertyAliasValue, TNode, TNodeFlags, TNodeType} from '../interfaces/node';
|
||||
import {GlobalTargetResolver, isProceduralRenderer, Renderer3} from '../interfaces/renderer';
|
||||
import {RElement} from '../interfaces/renderer_dom';
|
||||
|
|
|
@ -15,10 +15,9 @@ import {Query} from '../../metadata/di';
|
|||
import {Component, Directive, Input} from '../../metadata/directives';
|
||||
import {componentNeedsResolution, maybeQueueResolutionOfComponentResources} from '../../metadata/resource_loading';
|
||||
import {ViewEncapsulation} from '../../metadata/view';
|
||||
import {EMPTY_ARRAY} from '../../util/empty';
|
||||
import {EMPTY_ARRAY, EMPTY_OBJ} from '../../util/empty';
|
||||
import {initNgDevMode} from '../../util/ng_dev_mode';
|
||||
import {getComponentDef, getDirectiveDef} from '../definition';
|
||||
import {EMPTY_OBJ} from '../empty';
|
||||
import {NG_COMP_DEF, NG_DIR_DEF, NG_FACTORY_DEF} from '../fields';
|
||||
import {ComponentType} from '../interfaces/definition';
|
||||
import {stringifyForError} from '../util/stringify_utils';
|
||||
|
|
Loading…
Reference in New Issue