| Index: pkg/compiler/lib/src/universe/side_effects.dart
|
| diff --git a/pkg/compiler/lib/src/universe/side_effects.dart b/pkg/compiler/lib/src/universe/side_effects.dart
|
| index a599e0942a78e2f582a2d3bc187ddb913dab7c2f..2c39999dddec2a30f4605d97a581eea46b3e6e7e 100644
|
| --- a/pkg/compiler/lib/src/universe/side_effects.dart
|
| +++ b/pkg/compiler/lib/src/universe/side_effects.dart
|
| @@ -8,8 +8,8 @@ class SideEffects {
|
| // Changes flags.
|
| static const int FLAG_CHANGES_INDEX = 0;
|
| static const int FLAG_CHANGES_INSTANCE_PROPERTY = FLAG_CHANGES_INDEX + 1;
|
| - static const int FLAG_CHANGES_STATIC_PROPERTY
|
| - = FLAG_CHANGES_INSTANCE_PROPERTY + 1;
|
| + static const int FLAG_CHANGES_STATIC_PROPERTY =
|
| + FLAG_CHANGES_INSTANCE_PROPERTY + 1;
|
| static const int FLAG_CHANGES_COUNT = FLAG_CHANGES_STATIC_PROPERTY + 1;
|
|
|
| // Depends flags (one for each changes flag).
|
| @@ -33,13 +33,18 @@ class SideEffects {
|
| clearAllSideEffects();
|
| }
|
|
|
| - bool operator==(other) => _flags == other._flags;
|
| + bool operator ==(other) => _flags == other._flags;
|
|
|
| int get hashCode => throw new UnsupportedError('SideEffects.hashCode');
|
|
|
| bool _getFlag(int position) => (_flags & (1 << position)) != 0;
|
| - void _setFlag(int position) { _flags |= (1 << position); }
|
| - void _clearFlag(int position) { _flags &= ~(1 << position); }
|
| + void _setFlag(int position) {
|
| + _flags |= (1 << position);
|
| + }
|
| +
|
| + void _clearFlag(int position) {
|
| + _flags &= ~(1 << position);
|
| + }
|
|
|
| int getChangesFlags() => _flags & ((1 << FLAG_CHANGES_COUNT) - 1);
|
| int getDependsOnFlags() {
|
| @@ -49,14 +54,19 @@ class SideEffects {
|
| bool hasSideEffects() => getChangesFlags() != 0;
|
| bool dependsOnSomething() => getDependsOnFlags() != 0;
|
|
|
| - void setAllSideEffects() { _flags |= ((1 << FLAG_CHANGES_COUNT) - 1); }
|
| + void setAllSideEffects() {
|
| + _flags |= ((1 << FLAG_CHANGES_COUNT) - 1);
|
| + }
|
|
|
| - void clearAllSideEffects() { _flags &= ~((1 << FLAG_CHANGES_COUNT) - 1); }
|
| + void clearAllSideEffects() {
|
| + _flags &= ~((1 << FLAG_CHANGES_COUNT) - 1);
|
| + }
|
|
|
| void setDependsOnSomething() {
|
| int count = FLAG_DEPENDS_ON_COUNT - FLAG_CHANGES_COUNT;
|
| _flags |= (((1 << count) - 1) << FLAG_CHANGES_COUNT);
|
| }
|
| +
|
| void clearAllDependencies() {
|
| int count = FLAG_DEPENDS_ON_COUNT - FLAG_CHANGES_COUNT;
|
| _flags &= ~(((1 << count) - 1) << FLAG_CHANGES_COUNT);
|
| @@ -65,40 +75,64 @@ class SideEffects {
|
| bool dependsOnStaticPropertyStore() {
|
| return _getFlag(FLAG_DEPENDS_ON_STATIC_PROPERTY_STORE);
|
| }
|
| +
|
| void setDependsOnStaticPropertyStore() {
|
| _setFlag(FLAG_DEPENDS_ON_STATIC_PROPERTY_STORE);
|
| }
|
| +
|
| void clearDependsOnStaticPropertyStore() {
|
| _clearFlag(FLAG_DEPENDS_ON_STATIC_PROPERTY_STORE);
|
| }
|
| - void setChangesStaticProperty() { _setFlag(FLAG_CHANGES_STATIC_PROPERTY); }
|
| +
|
| + void setChangesStaticProperty() {
|
| + _setFlag(FLAG_CHANGES_STATIC_PROPERTY);
|
| + }
|
| +
|
| void clearChangesStaticProperty() {
|
| _clearFlag(FLAG_CHANGES_STATIC_PROPERTY);
|
| }
|
| +
|
| bool changesStaticProperty() => _getFlag(FLAG_CHANGES_STATIC_PROPERTY);
|
|
|
| bool dependsOnIndexStore() => _getFlag(FLAG_DEPENDS_ON_INDEX_STORE);
|
| - void setDependsOnIndexStore() { _setFlag(FLAG_DEPENDS_ON_INDEX_STORE); }
|
| - void clearDependsOnIndexStore() { _clearFlag(FLAG_DEPENDS_ON_INDEX_STORE); }
|
| - void setChangesIndex() { _setFlag(FLAG_CHANGES_INDEX); }
|
| - void clearChangesIndex() { _clearFlag(FLAG_CHANGES_INDEX); }
|
| + void setDependsOnIndexStore() {
|
| + _setFlag(FLAG_DEPENDS_ON_INDEX_STORE);
|
| + }
|
| +
|
| + void clearDependsOnIndexStore() {
|
| + _clearFlag(FLAG_DEPENDS_ON_INDEX_STORE);
|
| + }
|
| +
|
| + void setChangesIndex() {
|
| + _setFlag(FLAG_CHANGES_INDEX);
|
| + }
|
| +
|
| + void clearChangesIndex() {
|
| + _clearFlag(FLAG_CHANGES_INDEX);
|
| + }
|
| +
|
| bool changesIndex() => _getFlag(FLAG_CHANGES_INDEX);
|
|
|
| bool dependsOnInstancePropertyStore() {
|
| return _getFlag(FLAG_DEPENDS_ON_INSTANCE_PROPERTY_STORE);
|
| }
|
| +
|
| void setDependsOnInstancePropertyStore() {
|
| _setFlag(FLAG_DEPENDS_ON_INSTANCE_PROPERTY_STORE);
|
| }
|
| +
|
| void clearDependsOnInstancePropertyStore() {
|
| _setFlag(FLAG_DEPENDS_ON_INSTANCE_PROPERTY_STORE);
|
| }
|
| +
|
| void setChangesInstanceProperty() {
|
| _setFlag(FLAG_CHANGES_INSTANCE_PROPERTY);
|
| }
|
| +
|
| void clearChangesInstanceProperty() {
|
| _clearFlag(FLAG_CHANGES_INSTANCE_PROPERTY);
|
| }
|
| +
|
| bool changesInstanceProperty() => _getFlag(FLAG_CHANGES_INSTANCE_PROPERTY);
|
|
|
| static int computeDependsOnFlags(int flags) => flags << FLAG_CHANGES_COUNT;
|
|
|