From d08dde55001e6a08f486fc0ef595b48f67e44b5c Mon Sep 17 00:00:00 2001 From: Nathaniel Furniss Date: Tue, 13 Jul 2021 14:41:56 -0700 Subject: [PATCH] Remove deprecated tryInvoke for v4.0 --- packages/@ember/-internals/utils/index.ts | 2 +- .../@ember/-internals/utils/lib/invoke.ts | 51 ---------------- .../-internals/utils/tests/try_invoke_test.js | 60 ------------------- packages/@ember/utils/index.js | 1 - packages/ember/index.js | 1 - packages/ember/tests/reexports_test.js | 1 - tests/docs/expected.js | 1 - 7 files changed, 1 insertion(+), 116 deletions(-) delete mode 100644 packages/@ember/-internals/utils/tests/try_invoke_test.js diff --git a/packages/@ember/-internals/utils/index.ts b/packages/@ember/-internals/utils/index.ts index 12504123e60..6ba703fa56d 100644 --- a/packages/@ember/-internals/utils/index.ts +++ b/packages/@ember/-internals/utils/index.ts @@ -23,7 +23,7 @@ export { } from './lib/super'; export { default as inspect } from './lib/inspect'; export { default as lookupDescriptor } from './lib/lookup-descriptor'; -export { canInvoke, tryInvoke } from './lib/invoke'; +export { canInvoke } from './lib/invoke'; export { default as makeArray } from './lib/make-array'; export { getName, setName } from './lib/name'; export { default as toString } from './lib/to-string'; diff --git a/packages/@ember/-internals/utils/lib/invoke.ts b/packages/@ember/-internals/utils/lib/invoke.ts index 2581527280a..5656fbc5af3 100644 --- a/packages/@ember/-internals/utils/lib/invoke.ts +++ b/packages/@ember/-internals/utils/lib/invoke.ts @@ -1,5 +1,3 @@ -import { deprecate } from '@ember/debug'; - /** Checks to see if the `methodName` exists on the `obj`. @@ -25,52 +23,3 @@ export function canInvoke(obj: any | null | undefined, methodName: string): obj /** @module @ember/utils */ - -/** - Checks to see if the `methodName` exists on the `obj`, - and if it does, invokes it with the arguments passed. - - ```javascript - import { tryInvoke } from '@ember/utils'; - - let d = new Date('03/15/2013'); - - tryInvoke(d, 'getTime'); // 1363320000000 - tryInvoke(d, 'setFullYear', [2014]); // 1394856000000 - tryInvoke(d, 'noSuchMethod', [2014]); // undefined - ``` - - @method tryInvoke - @for @ember/utils - @static - @param {Object} obj The object to check for the method - @param {String} methodName The method name to check for - @param {Array} [args] The arguments to pass to the method - @return {*} the return value of the invoked method or undefined if it cannot be invoked - @public - @deprecated Use Javascript's optional chaining instead. -*/ -export function tryInvoke( - obj: any | undefined | null, - methodName: string, - args: Array -) { - deprecate( - `Use of tryInvoke is deprecated. Instead, consider using JavaScript's optional chaining.`, - false, - { - id: 'ember-utils.try-invoke', - until: '4.0.0', - for: 'ember-source', - since: { - enabled: '3.24.0', - }, - url: 'https://deprecations.emberjs.com/v3.x#toc_ember-utils-try-invoke', - } - ); - - if (canInvoke(obj, methodName)) { - let method = obj[methodName]; - return method.apply(obj, args); - } -} diff --git a/packages/@ember/-internals/utils/tests/try_invoke_test.js b/packages/@ember/-internals/utils/tests/try_invoke_test.js deleted file mode 100644 index a572c5f466f..00000000000 --- a/packages/@ember/-internals/utils/tests/try_invoke_test.js +++ /dev/null @@ -1,60 +0,0 @@ -import { tryInvoke } from '..'; -import { moduleFor, AbstractTestCase as TestCase } from 'internal-test-helpers'; - -let obj; - -moduleFor( - 'Ember.tryInvoke', - class extends TestCase { - constructor() { - super(); - - obj = { - aMethodThatExists() { - return true; - }, - aMethodThatTakesArguments(arg1, arg2) { - return arg1 === arg2; - }, - }; - } - - teardown() { - obj = undefined; - } - - ["@test should return undefined when the object doesn't exist"](assert) { - expectDeprecation( - () => assert.equal(tryInvoke(undefined, 'aMethodThatDoesNotExist'), undefined), - /Use of tryInvoke is deprecated/ - ); - } - - ["@test should return undefined when asked to perform a method that doesn't exist on the object"]( - assert - ) { - expectDeprecation( - () => assert.equal(tryInvoke(obj, 'aMethodThatDoesNotExist'), undefined), - /Use of tryInvoke is deprecated/ - ); - } - - ['@test should return what the method returns when asked to perform a method that exists on the object']( - assert - ) { - expectDeprecation( - () => assert.equal(tryInvoke(obj, 'aMethodThatExists'), true), - /Use of tryInvoke is deprecated/ - ); - } - - ['@test should return what the method returns when asked to perform a method that takes arguments and exists on the object']( - assert - ) { - expectDeprecation( - () => assert.equal(tryInvoke(obj, 'aMethodThatTakesArguments', [true, true]), true), - /Use of tryInvoke is deprecated/ - ); - } - } -); diff --git a/packages/@ember/utils/index.js b/packages/@ember/utils/index.js index 5049a59886e..492bce4c78b 100644 --- a/packages/@ember/utils/index.js +++ b/packages/@ember/utils/index.js @@ -1,3 +1,2 @@ export { isNone, isBlank, isEmpty, isPresent } from '@ember/-internals/metal'; -export { tryInvoke } from '@ember/-internals/utils'; export { compare, isEqual, typeOf } from '@ember/-internals/runtime'; diff --git a/packages/ember/index.js b/packages/ember/index.js index f0d1f8cab34..8922eb866f2 100644 --- a/packages/ember/index.js +++ b/packages/ember/index.js @@ -220,7 +220,6 @@ Ember.guidFor = utils.guidFor; Ember.inspect = utils.inspect; Ember.makeArray = utils.makeArray; Ember.canInvoke = utils.canInvoke; -Ember.tryInvoke = utils.tryInvoke; Ember.wrap = utils.wrap; Ember.uuid = utils.uuid; diff --git a/packages/ember/tests/reexports_test.js b/packages/ember/tests/reexports_test.js index 8960a2a1e1a..ea06450b2d9 100644 --- a/packages/ember/tests/reexports_test.js +++ b/packages/ember/tests/reexports_test.js @@ -468,7 +468,6 @@ let allExports = [ ['isEqual', '@ember/utils', 'isEqual'], ['isNone', '@ember/utils', 'isNone'], ['isPresent', '@ember/utils', 'isPresent'], - ['tryInvoke', '@ember/utils', 'tryInvoke'], ['typeOf', '@ember/utils', 'typeOf'], // @ember/version diff --git a/tests/docs/expected.js b/tests/docs/expected.js index 340eefc7de2..a5ba730d6e9 100644 --- a/tests/docs/expected.js +++ b/tests/docs/expected.js @@ -573,7 +573,6 @@ module.exports = { 'trigger', 'triggerAction', 'triggerEvent', - 'tryInvoke', 'trySet', 'type', 'typeInjection',