Skip to content

Commit

Permalink
[BUGFIX release] Deprecate Freezable and frozenCopy. Resolves #11452
Browse files Browse the repository at this point in the history
  • Loading branch information
jamiebuilds committed Jul 16, 2015
1 parent 871cbd6 commit a11ee32
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 0 deletions.
3 changes: 3 additions & 0 deletions packages/ember-runtime/lib/mixins/copyable.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
@submodule ember-runtime
*/

import Ember from 'ember-metal/core';
import { get } from 'ember-metal/property_get';
import { Mixin } from 'ember-metal/mixin';
import { Freezable } from 'ember-runtime/mixins/freezable';
Expand Down Expand Up @@ -52,9 +53,11 @@ export default Mixin.create({
@method frozenCopy
@return {Object} copy of receiver or receiver
@deprecated Use `Object.freeze` instead.
@private
*/
frozenCopy() {
Ember.deprecate('`frozenCopy` is deprecated, use Object.freeze instead.');
if (Freezable && Freezable.detect(this)) {
return get(this, 'isFrozen') ? this : this.copy().freeze();
} else {
Expand Down
7 changes: 7 additions & 0 deletions packages/ember-runtime/lib/mixins/freezable.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
@submodule ember-runtime
*/

import Ember from 'ember-metal/core';
import { Mixin } from 'ember-metal/mixin';
import { get } from 'ember-metal/property_get';
import { set } from 'ember-metal/property_set';
Expand Down Expand Up @@ -62,10 +63,16 @@ import { set } from 'ember-metal/property_set';
@class Freezable
@namespace Ember
@since Ember 0.9
@deprecated Use `Object.freeze` instead.
@private
*/
export var Freezable = Mixin.create({

init() {
Ember.deprecate('`Ember.Freezable` is deprecated, use `Object.freeze` instead.');
this._super.apply(this, arguments);
},

/**
Set to `true` when the object is frozen. Use this property to detect
whether your object is frozen or not.
Expand Down
9 changes: 9 additions & 0 deletions packages/ember-runtime/tests/mixins/freezable_test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import EmberObject from 'ember-runtime/system/object';
import {Freezable} from 'ember-runtime/mixins/freezable';

QUnit.module('Ember.Freezable');

QUnit.test('should be deprecated', function() {
expectDeprecation('`Ember.Freezable` is deprecated, use `Object.freeze` instead.');
EmberObject.extend(Freezable).create();
});
2 changes: 2 additions & 0 deletions packages/ember-runtime/tests/suites/copyable/frozenCopy.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ suite.test('frozen objects should return same instance', function() {

obj = this.newObject();
if (get(this, 'shouldBeFreezable')) {
expectDeprecation('`frozenCopy` is deprecated, use Object.freeze instead.');

ok(!Freezable || Freezable.detect(obj), 'object should be freezable');

copy = obj.frozenCopy();
Expand Down

0 comments on commit a11ee32

Please sign in to comment.