Skip to content

Commit 14dd191

Browse files
authored
Merge pull request #20918 from wagenet/kill-proxy
[Next] Kill ArrayProxy, ObjectProxy, and PromiseProxy
2 parents 9d26e9e + 03416b1 commit 14dd191

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+31
-3883
lines changed

broccoli/amd-compat-entrypoints/ember.debug.js

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,6 @@ d('@ember/-internals/runtime/index', emberinternalsRuntimeIndex);
5656
import * as emberinternalsRuntimeLibExtRsvp from '@ember/-internals/runtime/lib/ext/rsvp';
5757
d('@ember/-internals/runtime/lib/ext/rsvp', emberinternalsRuntimeLibExtRsvp);
5858

59-
import * as emberinternalsRuntimeLibMixinsproxy from '@ember/-internals/runtime/lib/mixins/-proxy';
60-
d('@ember/-internals/runtime/lib/mixins/-proxy', emberinternalsRuntimeLibMixinsproxy);
61-
6259
import * as emberinternalsRuntimeLibMixinsActionHandler from '@ember/-internals/runtime/lib/mixins/action_handler';
6360
d(
6461
'@ember/-internals/runtime/lib/mixins/action_handler',
@@ -176,9 +173,6 @@ d('@ember/array/lib/make-array', emberArrayLibMakeArray);
176173
import * as emberArrayMutable from '@ember/array/mutable';
177174
d('@ember/array/mutable', emberArrayMutable);
178175

179-
import * as emberArrayProxy from '@ember/array/proxy';
180-
d('@ember/array/proxy', emberArrayProxy);
181-
182176
import * as emberCanaryFeaturesIndex from '@ember/canary-features/index';
183177
d('@ember/canary-features/index', emberCanaryFeaturesIndex);
184178

@@ -287,12 +281,6 @@ d('@ember/object/observable', emberObjectObservable);
287281
import * as emberObjectObservers from '@ember/object/observers';
288282
d('@ember/object/observers', emberObjectObservers);
289283

290-
import * as emberObjectPromiseProxyMixin from '@ember/object/promise-proxy-mixin';
291-
d('@ember/object/promise-proxy-mixin', emberObjectPromiseProxyMixin);
292-
293-
import * as emberObjectProxy from '@ember/object/proxy';
294-
d('@ember/object/proxy', emberObjectProxy);
295-
296284
import * as emberOwnerIndex from '@ember/owner/index';
297285
d('@ember/owner/index', emberOwnerIndex);
298286

package.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@
203203
"@ember/-internals/routing/index.js": "ember-source/@ember/-internals/routing/index.js",
204204
"@ember/-internals/runtime/index.js": "ember-source/@ember/-internals/runtime/index.js",
205205
"@ember/-internals/runtime/lib/ext/rsvp.js": "ember-source/@ember/-internals/runtime/lib/ext/rsvp.js",
206-
"@ember/-internals/runtime/lib/mixins/-proxy.js": "ember-source/@ember/-internals/runtime/lib/mixins/-proxy.js",
207206
"@ember/-internals/runtime/lib/mixins/action_handler.js": "ember-source/@ember/-internals/runtime/lib/mixins/action_handler.js",
208207
"@ember/-internals/runtime/lib/mixins/comparable.js": "ember-source/@ember/-internals/runtime/lib/mixins/comparable.js",
209208
"@ember/-internals/runtime/lib/mixins/container_proxy.js": "ember-source/@ember/-internals/runtime/lib/mixins/container_proxy.js",
@@ -235,7 +234,6 @@
235234
"@ember/array/lib/make-array.js": "ember-source/@ember/array/lib/make-array.js",
236235
"@ember/array/make.js": "ember-source/@ember/array/make.js",
237236
"@ember/array/mutable.js": "ember-source/@ember/array/mutable.js",
238-
"@ember/array/proxy.js": "ember-source/@ember/array/proxy.js",
239237
"@ember/canary-features/index.js": "ember-source/@ember/canary-features/index.js",
240238
"@ember/component/helper.js": "ember-source/@ember/component/helper.js",
241239
"@ember/component/index.js": "ember-source/@ember/component/index.js",
@@ -275,8 +273,6 @@
275273
"@ember/object/mixin.js": "ember-source/@ember/object/mixin.js",
276274
"@ember/object/observable.js": "ember-source/@ember/object/observable.js",
277275
"@ember/object/observers.js": "ember-source/@ember/object/observers.js",
278-
"@ember/object/promise-proxy-mixin.js": "ember-source/@ember/object/promise-proxy-mixin.js",
279-
"@ember/object/proxy.js": "ember-source/@ember/object/proxy.js",
280276
"@ember/owner/index.js": "ember-source/@ember/owner/index.js",
281277
"@ember/renderer/index.js": "ember-source/@ember/renderer/index.js",
282278
"@ember/routing/-internals.js": "ember-source/@ember/routing/-internals.js",

packages/@ember/-internals/glimmer/lib/helpers/each-in.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
@module ember
33
*/
44
import { tagForObject } from '@ember/-internals/metal';
5-
import { _contentFor } from '@ember/-internals/runtime';
6-
import { isProxy } from '@ember/-internals/utils';
75
import { assert } from '@ember/debug';
86
import type { CapturedArguments } from '@glimmer/interfaces';
97
import { createComputeRef, valueForRef } from '@glimmer/reference';
@@ -176,12 +174,6 @@ export default internalHelper(({ positional }: CapturedArguments) => {
176174

177175
consumeTag(tagForObject(iterable));
178176

179-
if (isProxy(iterable)) {
180-
// this is because the each-in doesn't actually get(proxy, 'key') but bypasses it
181-
// and the proxy's tag is lazy updated on access
182-
iterable = _contentFor(iterable);
183-
}
184-
185177
return new EachInWrapper(iterable);
186178
});
187179
});

packages/@ember/-internals/glimmer/lib/utils/to-bool.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
import { isHTMLSafe } from './string';
2-
import { get, tagForProperty } from '@ember/-internals/metal';
2+
import { tagForProperty } from '@ember/-internals/metal';
33
import { isArray } from '@ember/array';
4-
import { isProxy } from '@ember/-internals/utils';
54
import { consumeTag } from '@glimmer/validator';
65

76
export default function toBool(predicate: unknown): boolean {
8-
if (isProxy(predicate)) {
9-
consumeTag(tagForProperty(predicate, 'content'));
10-
11-
return Boolean(get(predicate, 'isTruthy'));
12-
} else if (isArray(predicate)) {
7+
if (isArray(predicate)) {
138
consumeTag(tagForProperty(predicate as object, '[]'));
149

1510
return (predicate as { length: number }).length !== 0;

packages/@ember/-internals/glimmer/tests/integration/components/tracked-test.js

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import EmberObject from '@ember/object';
22
import { A } from '@ember/array';
3-
import ArrayProxy from '@ember/array/proxy';
4-
import PromiseProxyMixin from '@ember/object/promise-proxy-mixin';
53
import { tracked } from '@ember/-internals/metal';
64
import { computed, get, set } from '@ember/object';
7-
import { Promise } from 'rsvp';
85
import { moduleFor, RenderingTestCase, strip, runTask } from 'internal-test-helpers';
96
import GlimmerishComponent from '../../utils/glimmerish-component';
107
import { Component } from '../../utils/helpers';
@@ -85,56 +82,6 @@ moduleFor(
8582
this.assertText('max jackson | max jackson');
8683
}
8784

88-
'@test creating an array proxy inside a tracking context does not trigger backtracking assertion'() {
89-
let PromiseArray = ArrayProxy.extend(PromiseProxyMixin);
90-
91-
class LoaderComponent extends GlimmerishComponent {
92-
get data() {
93-
if (!this._data) {
94-
this._data = PromiseArray.create({
95-
promise: Promise.resolve([1, 2, 3]),
96-
});
97-
}
98-
99-
return this._data;
100-
}
101-
}
102-
103-
this.registerComponent('loader', {
104-
ComponentClass: LoaderComponent,
105-
template: '{{#each this.data as |item|}}{{item}}{{/each}}',
106-
});
107-
108-
this.render('<Loader/>');
109-
110-
this.assertText('123');
111-
}
112-
113-
'@test creating an array proxy inside a tracking context and immediately updating its content before usage does not trigger backtracking assertion'() {
114-
class LoaderComponent extends GlimmerishComponent {
115-
get data() {
116-
if (!this._data) {
117-
this._data = ArrayProxy.create({
118-
content: A(),
119-
});
120-
121-
this._data.content.pushObjects([1, 2, 3]);
122-
}
123-
124-
return this._data;
125-
}
126-
}
127-
128-
this.registerComponent('loader', {
129-
ComponentClass: LoaderComponent,
130-
template: '{{#each this.data as |item|}}{{item}}{{/each}}',
131-
});
132-
133-
this.render('<Loader/>');
134-
135-
this.assertText('123');
136-
}
137-
13885
'@test tracked properties that are uninitialized do not throw an error'() {
13986
class CountComponent extends Component {
14087
@tracked count;

0 commit comments

Comments
 (0)