From 4f0108f246cddb20acd08bb81fbd7d9eb4ab0e30 Mon Sep 17 00:00:00 2001 From: Robert Jackson Date: Mon, 13 Apr 2020 10:34:00 -0400 Subject: [PATCH] Revert "improve fn & on undefined callback message" This reverts commit f6f9f5210754155c8d081a65d78f37a561d928f7. The changes landed cause failures in CI (I should have rebased the branch to make sure that the code still worked after the last few glimmer-vm updates). ``` [0413/140947.176661:INFO:CONSOLE(52)] " Failed assertion: Promise rejected during " model is tracked": args.positional.at(...).debug is not a function TypeError: args.positional.at(...).debug is not a function at OnModifierState.updateFromArgs (http://localhost:13141/tests/ember.js:9767:68) at OnModifierManager.install (http://localhost:13141/tests/ember.js:10002:13) at TransactionImpl.commit (http://localhost:13141/tests/ember.js:48873:19) at EnvironmentImpl.commit (http://localhost:13141/tests/ember.js:49009:19) at inTransaction (http://localhost:13141/tests/ember.js:49167:13) at InteractiveRenderer._renderRoots (http://localhost:13141/tests/ember.js:11540:37) at InteractiveRenderer._renderRootsTransaction (http://localhost:13141/tests/ember.js:11601:14) at InteractiveRenderer._renderRoot (http://localhost:13141/tests/ember.js:11527:12) at InteractiveRenderer._appendDefinition (http://localhost:13141/tests/ember.js:11442:12) at InteractiveRenderer.appendOutletView (http://localhost:13141/tests/ember.js:11428:12)", source: (52) ``` (cherry picked from commit 109566acea733af6c928d1582d8f3b69d93bcd5f) --- packages/@ember/-internals/glimmer/lib/helpers/fn.ts | 3 +-- .../@ember/-internals/glimmer/lib/modifiers/on.ts | 12 ++++-------- .../glimmer/tests/integration/helpers/fn-test.js | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/packages/@ember/-internals/glimmer/lib/helpers/fn.ts b/packages/@ember/-internals/glimmer/lib/helpers/fn.ts index 34f28fabc7a..36ed5dec393 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/fn.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/fn.ts @@ -85,9 +85,8 @@ function fn({ positional }: CapturedArguments) { if (DEBUG && typeof callbackRef[INVOKE] !== 'function') { let callback = callbackRef.value(); - const debug = (callbackRef).debug && (callbackRef).debug(); assert( - `You must pass a function as the \`fn\` helpers first argument, you passed ${debug} to \`fn\` but it was ${callback}`, + `You must pass a function as the \`fn\` helpers first argument, you passed ${callback}`, typeof callback === 'function' ); } diff --git a/packages/@ember/-internals/glimmer/lib/modifiers/on.ts b/packages/@ember/-internals/glimmer/lib/modifiers/on.ts index 5ccf9121198..2c126cea48b 100644 --- a/packages/@ember/-internals/glimmer/lib/modifiers/on.ts +++ b/packages/@ember/-internals/glimmer/lib/modifiers/on.ts @@ -100,15 +100,11 @@ export class OnModifierState { this.eventName = eventName; this.shouldUpdate = true; } - if (DEBUG) { - const debug = args.positional.at(1) && (args.positional.at(1)).debug(); - const value = args.positional.at(1) && args.positional.at(1).value(); - assert( - `You must pass a function as the second argument to the \`on\` modifier, you passed ${debug} to \`on\` but it was ${value}`, - value !== undefined && typeof value === 'function' - ); - } + assert( + 'You must pass a function as the second argument to the `on` modifier', + args.positional.at(1) !== undefined && typeof args.positional.at(1).value() === 'function' + ); let userProvidedCallback = args.positional.at(1).value() as EventListener; if (userProvidedCallback !== this.userProvidedCallback) { this.userProvidedCallback = userProvidedCallback; diff --git a/packages/@ember/-internals/glimmer/tests/integration/helpers/fn-test.js b/packages/@ember/-internals/glimmer/tests/integration/helpers/fn-test.js index 2a12e852a85..24a3e7581ff 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/helpers/fn-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/helpers/fn-test.js @@ -127,7 +127,7 @@ moduleFor( arg1: 'foo', arg2: 'bar', }); - }, /You must pass a function as the `fn` helpers first argument, you passed this.myFunc to `fn` but it was null/); + }, /You must pass a function as the `fn` helpers first argument, you passed null/); } '@test asserts if the provided function accesses `this` without being bound prior to passing to fn'(