Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,7 @@
"@ember/object/events.js": "ember-source/@ember/object/events.js",
"@ember/object/index.js": "ember-source/@ember/object/index.js",
"@ember/object/internals.js": "ember-source/@ember/object/internals.js",
"@ember/object/lib/classic.js": "ember-source/@ember/object/lib/classic.js",
"@ember/object/lib/computed/computed_macros.js": "ember-source/@ember/object/lib/computed/computed_macros.js",
"@ember/object/lib/computed/reduce_computed_macros.js": "ember-source/@ember/object/lib/computed/reduce_computed_macros.js",
"@ember/object/mixin.js": "ember-source/@ember/object/mixin.js",
Expand Down
5 changes: 3 additions & 2 deletions packages/@ember/-internals/container/tests/container_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import Service from '@ember/service';
import { DEBUG } from '@glimmer/env';
import { Registry } from '..';
import { factory, moduleFor, AbstractTestCase, runTask } from 'internal-test-helpers';
import { classicReopenClass } from '@ember/object/lib/classic';

moduleFor(
'Container.lookup',
Expand Down Expand Up @@ -432,7 +433,7 @@ moduleFor(
let Apple = factory();
let Orange = factory();

Apple.reopenClass({
classicReopenClass(Apple, {
_lazyInjections() {
return [{ specifier: 'orange:main' }, { specifier: 'banana:main' }];
},
Expand All @@ -459,7 +460,7 @@ moduleFor(
let Apple = factory();
let Orange = factory();

Apple.reopenClass({
classicReopenClass(Apple, {
_lazyInjections: () => {
assert.ok(true, 'should call lazy injection method');
return [{ specifier: 'orange:main' }];
Expand Down
7 changes: 7 additions & 0 deletions packages/@ember/-internals/deprecations/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,13 @@ export const DEPRECATIONS = {
until: '8.0.0',
url: 'https://deprecations.emberjs.com/id/deprecate-evented',
}),
DEPRECATE_CLASSIC_CLASSES: deprecation({
id: 'deprecate-classic-classes',
for: 'ember-source',
since: { available: '7.4.0' },
until: '8.0.0',
url: 'https://deprecations.emberjs.com/id/deprecate-classic-classes',
}),
};

export function deprecateUntil(message: string, deprecation: DeprecationObject) {
Expand Down
6 changes: 4 additions & 2 deletions packages/@ember/-internals/glimmer/lib/component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import {
getComponentCapturedArgs,
} from './component-managers/curly';
import hasDOM from '@ember/-internals/browser-environment/lib/has-dom';
import { classicExtend, classicReopenClass } from '@ember/object/lib/classic';

// Keep track of which component classes have already been processed for lazy event setup.
let lazyEventsProcessed = new WeakMap<EventDispatcher, WeakSet<object>>();
Expand Down Expand Up @@ -802,7 +803,8 @@ interface Component<S = unknown>
extends CoreView, TargetActionSupport, ActionSupport, ComponentMethods {}

class Component<S = unknown>
extends CoreView.extend(
extends classicExtend(
CoreView,
TargetActionSupport,
ActionSupport,
{
Expand Down Expand Up @@ -1689,7 +1691,7 @@ class Component<S = unknown>
}

// We continue to use reopenClass here so that positionalParams can be overridden with reopenClass in subclasses.
Component.reopenClass({
classicReopenClass(Component, {
positionalParams: [],
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { Component, Helper } from '@ember/-internals/glimmer';
import { precompileTemplate } from '@ember/template-compilation';
import { setComponentTemplate } from '@glimmer/manager';
import templateOnly from '@ember/component/template-only';
import { classicExtend } from '@ember/object/lib/classic';

function expect(value) {
if (!value) {
Expand Down Expand Up @@ -94,7 +95,7 @@ moduleFor(
// with the template already set on the existing class
let FreshClass;
if (ComponentClass && 'extend' in ComponentClass) {
FreshClass = ComponentClass.extend({});
FreshClass = classicExtend(ComponentClass, {});
} else {
FreshClass = templateOnly();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { setComponentTemplate } from '@glimmer/manager';
import { set, computed } from '@ember/object';

import { Component, htmlSafe } from '../../utils/helpers';
import { classicReopenClass } from '@ember/object/lib/classic';

moduleFor(
'Components test: attrs lookup',
Expand Down Expand Up @@ -171,7 +172,7 @@ moduleFor(
}
};

FooBarComponent.reopenClass({
classicReopenClass(FooBarComponent, {
positionalParams: ['firstPositional'],
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { moduleFor, RenderingTestCase, runTask } from 'internal-test-helpers';
import { setComponentTemplate, getComponentTemplate } from '@glimmer/manager';
import { precompileTemplate } from '@ember/template-compilation';
import { Component } from '../../utils/helpers';
import { classicExtend, classicReopenClass } from '@ember/object/lib/classic';

moduleFor(
'Components test: setComponentTemplate',
Expand Down Expand Up @@ -66,7 +67,7 @@ moduleFor(

let Thing = setComponentTemplate(
precompileTemplate('hello'),
Component.extend().reopenClass({
classicReopenClass(classicExtend(Component), {
toString() {
return 'Thing';
},
Expand All @@ -78,7 +79,7 @@ moduleFor(
}, /Cannot call `setComponentTemplate` multiple times on the same class \(`Class`\)/);
}

'@test templates set with setComponentTemplate are inherited (EmberObject.extend())'() {
'@test templates set with setComponentTemplate are inherited (classicExtend(EmberObject, ))'() {
let Parent = setComponentTemplate(precompileTemplate('hello'), class extends Component {});

this.owner.register('component:foo-bar', class extends Parent {});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import { setComponentTemplate } from '@glimmer/manager';
import templateOnly from '@ember/component/template-only';
import { backtrackingMessageFor } from '../../utils/debug-stack';
import { precompileTemplate } from '@ember/template-compilation';
import { classicExtend, classicReopenClass } from '@ember/object/lib/classic';

moduleFor(
'Components test: curly components',
Expand Down Expand Up @@ -1219,7 +1220,7 @@ moduleFor(
// import Component from '@ember/component';
// import layout from './template';
//
// export default Component.extend({
// export default classicExtend(Component, {
// layout
// });
let hello = precompileTemplate('Hello');
Expand Down Expand Up @@ -3376,7 +3377,7 @@ moduleFor(
'component:foo-bar',
setComponentTemplate(
precompileTemplate('{{this.bar}}-{{this.barCopy}}'),
Component.extend({
classicExtend(Component, {
init() {
this._super(...arguments);
this.didInit = true;
Expand Down Expand Up @@ -3454,7 +3455,7 @@ moduleFor(
() => {
this.owner.register(
'component:evented-component',
Component.extend({
classicExtend(Component, {
someTruthyProperty: true,

init() {
Expand Down Expand Up @@ -3559,7 +3560,7 @@ moduleFor(
template(
'MyVar1: {{attrs.myVar}} {{this.myVar}} MyVar2: {{this.myVar2}} {{attrs.myVar2}}',
{
component: MyComponent.reopenClass({ positionalParams: ['myVar'] }),
component: classicReopenClass(MyComponent, { positionalParams: ['myVar'] }),
strictMode: false,
}
)
Expand All @@ -3577,7 +3578,7 @@ moduleFor(
template(
'MyVar1: {{this.attrs.myVar}} {{this.myVar}} MyVar2: {{this.myVar2}} {{this.attrs.myVar2}}',
{
component: MyComponent.reopenClass({ positionalParams: ['myVar'] }),
component: classicReopenClass(MyComponent, { positionalParams: ['myVar'] }),
strictMode: false,
}
)
Expand All @@ -3598,7 +3599,7 @@ moduleFor(
precompileTemplate(
'MyVar1: {{@myVar}} {{this.myVar}} MyVar2: {{this.myVar2}} {{@myVar2}}'
),
MyComponent.reopenClass({
classicReopenClass(MyComponent, {
positionalParams: ['myVar'],
})
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import EmberObject from '@ember/object';
import { DEPRECATIONS } from '@ember/-internals/deprecations';

import { Component } from '../../utils/helpers';
import { classicExtend } from '@ember/object/lib/classic';

moduleFor(
'Components test: send',
Expand Down Expand Up @@ -99,7 +100,7 @@ moduleFor(

this.owner.register(
'component:foo-bar',
Component.extend({
classicExtend(Component, {
init() {
this._super(...arguments);
component = this;
Expand All @@ -110,7 +111,7 @@ moduleFor(
return true;
},
},
target: Controller.extend({
target: classicExtend(Controller, {
actions: {
poke: () => {
this.assert.ok(true, 'action bubbled to controller');
Expand Down Expand Up @@ -160,7 +161,7 @@ moduleFor(

this.owner.register(
'component:x-index',
class extends SuperComponent.extend(BarViewMixin) {
class extends classicExtend(SuperComponent, BarViewMixin) {
init() {
super.init(...arguments);
component = this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import GlimmerishComponent from '../../utils/glimmerish-component';
import { Component } from '../../utils/helpers';
import { precompileTemplate } from '@ember/template-compilation';
import { setComponentTemplate } from '@glimmer/manager';
import { classicExtend } from '@ember/object/lib/classic';

moduleFor(
'Component Tracked Properties',
Expand Down Expand Up @@ -96,7 +97,7 @@ moduleFor(
}

'@test creating an array proxy inside a tracking context does not trigger backtracking assertion'() {
let PromiseArray = ArrayProxy.extend(PromiseProxyMixin);
let PromiseArray = classicExtend(ArrayProxy, PromiseProxyMixin);

class LoaderComponent extends GlimmerishComponent {
get data() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { precompileTemplate } from '@ember/template-compilation';
import { setComponentTemplate } from '@glimmer/manager';

import { Component } from '../../utils/helpers';
import { classicExtend } from '@ember/object/lib/classic';

moduleFor(
'Helper Tracked Properties',
Expand Down Expand Up @@ -177,7 +178,7 @@ moduleFor(
}

'@test custom ember array properties rerender when updated'() {
let CustomArray = class extends EmberObject.extend(MutableArray) {
let CustomArray = class extends classicExtend(EmberObject, MutableArray) {
init() {
super.init(...arguments);
this._vals = [1, 2, 3];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
FalsyGenerator,
ArrayTestCases,
} from '../../utils/shared-conditional-tests';
import { classicExtend } from '@ember/object/lib/classic';

class ArrayDelegate {
constructor(content, target) {
Expand Down Expand Up @@ -1114,7 +1115,7 @@ moduleFor(
class extends EachTest {
createList(items) {
let wrapped = emberA(items);
let proxy = ArrayProxy.extend({
let proxy = classicExtend(ArrayProxy, {
init: function () {
this._super(...arguments);

Expand Down
3 changes: 2 additions & 1 deletion packages/@ember/-internals/metal/tests/computed_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
import { run } from '@ember/runloop';
import { moduleFor, AbstractTestCase, runLoopSettled } from 'internal-test-helpers';
import { destroy } from '@glimmer/destroyable';
import { classicExtend } from '@ember/object/lib/classic';

let obj, objA, objB, count, func;

Expand Down Expand Up @@ -731,7 +732,7 @@ moduleFor(
}

['@test the return value of the setter gets cached'](assert) {
let testObj = EmberObject.extend({
let testObj = classicExtend(EmberObject, {
a: '1',
sampleCP: computed('a', {
get() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import EmberObject from '@ember/object';
import { defineProperty, nativeDescDecorator } from '..';
import Mixin from '@ember/object/mixin';
import { moduleFor, AbstractTestCase } from 'internal-test-helpers';
import { classicExtend } from '@ember/object/lib/classic';

let classes = [
class {
Expand Down Expand Up @@ -66,7 +67,7 @@ let classes = [

class {
static module(title) {
return `${title}: in EmberObject.extend()`;
return `${title}: in classicExtend(EmberObject, )`;
}

constructor() {
Expand All @@ -83,7 +84,7 @@ let classes = [
}

finalize() {
this.klass = EmberObject.extend(this.props);
this.klass = classicExtend(EmberObject, this.props);
return this.klass.create();
}

Expand All @@ -94,7 +95,7 @@ let classes = [

class {
static module(title) {
return `${title}: in EmberObject.extend() through a mixin`;
return `${title}: in classicExtend(EmberObject, ) through a mixin`;
}

constructor() {
Expand All @@ -111,7 +112,7 @@ let classes = [
}

finalize() {
this.klass = EmberObject.extend(Mixin.create(this.props));
this.klass = classicExtend(EmberObject, Mixin.create(this.props));
return this.klass.create();
}

Expand Down Expand Up @@ -139,8 +140,8 @@ let classes = [
}

finalize() {
this.superklass = EmberObject.extend(this.props);
return this.superklass.extend().create();
this.superklass = classicExtend(EmberObject, this.props);
return classicExtend(this.superklass).create();
}

source() {
Expand Down
5 changes: 3 additions & 2 deletions packages/@ember/-internals/runtime/tests/helpers/array.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import {
} from '@ember/-internals/metal';
import EmberObject, { get, computed } from '@ember/object';
import { moduleFor } from 'internal-test-helpers';
import { classicExtend } from '@ember/object/lib/classic';

export function newFixture(cnt) {
let ret = [];
Expand Down Expand Up @@ -168,7 +169,7 @@ class ArrayProxyHelpers extends AbstractArrayHelper {
Implement a basic fake mutable array. This validates that any non-native
enumerable can impl this API.
*/
const TestArray = EmberObject.extend(EmberArray, {
const TestArray = classicExtend(EmberObject, EmberArray, {
_content: null,

init() {
Expand Down Expand Up @@ -204,7 +205,7 @@ const TestArray = EmberObject.extend(EmberArray, {
Implement a basic fake mutable array. This validates that any non-native
enumerable can impl this API.
*/
const TestMutableArray = EmberObject.extend(MutableArray, {
const TestMutableArray = classicExtend(EmberObject, MutableArray, {
_content: null,

init(ary = []) {
Expand Down
Loading
Loading