diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fdee4c55d08..2113636028d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,7 +65,7 @@ jobs: run: yarn test browserstack-test: - name: Browserstack Tests (Safari, Edge, IE11) + name: Browserstack Tests (Safari, Edge) runs-on: ubuntu-latest needs: [basic-test, lint] steps: @@ -183,6 +183,7 @@ jobs: env: DISABLE_SOURCE_MAPS: true BROCCOLI_ENV: production + SHOULD_TRANSPILE_FOR_NODE: true run: yarn ember build -prod - name: test run: yarn test:node diff --git a/config/browserlists.js b/config/browserlists.js index ec586851a0c..f41ffc0d40f 100644 --- a/config/browserlists.js +++ b/config/browserlists.js @@ -1,9 +1,8 @@ const allSupportedBrowsers = [ 'last 2 Chrome versions', 'last 2 Firefox versions', - 'last 2 Safari versions', + 'Safari 12', 'last 2 Edge versions', - 'ie 11', ]; const modernBrowsers = [ diff --git a/config/targets.js b/config/targets.js index 5a831d045e1..16827078166 100644 --- a/config/targets.js +++ b/config/targets.js @@ -6,4 +6,5 @@ const shouldTranspile = Boolean(process.env.SHOULD_TRANSPILE); module.exports = { browsers: isProduction || shouldTranspile ? allSupportedBrowsers : modernBrowsers, + ...(process.env.SHOULD_TRANSPILE_FOR_NODE ? { node: 'current' } : undefined), }; diff --git a/lib/index.js b/lib/index.js index ccfe09c7dc7..406ac88e808 100644 --- a/lib/index.js +++ b/lib/index.js @@ -201,7 +201,6 @@ module.exports = { require.resolve('@babel/plugin-transform-block-scoping'), { throwIfClosureRequired: true }, ], - [require.resolve('@babel/plugin-transform-object-assign')], ], }), }; @@ -295,12 +294,6 @@ module.exports = { let targets = (this.project && this.project.targets && this.project.targets.browsers) || []; let targetNode = (this.project && this.project.targets && this.project.targets.node) || false; - if (targets.includes('ie 11')) { - this.ui.writeWarnLine( - 'Internet Explorer 11 is listed in your compilation targets, but it will no longer be supported in the next major version of Ember. Please update your targets to remove IE 11 and include new targets that are within the updated support policy. For details on the new browser support policy, see:\n\n - The official documentation: http://emberjs.com/browser-support\n - the deprecation guide: https://deprecations.emberjs.com/v3.x#toc_3-0-browser-support-policy\n' - ); - } - const isProduction = process.env.EMBER_ENV === 'production'; if ( diff --git a/lib/transforms/inject-babel-helpers.js b/lib/transforms/inject-babel-helpers.js index 829be8114b2..b89e1ab5df4 100644 --- a/lib/transforms/inject-babel-helpers.js +++ b/lib/transforms/inject-babel-helpers.js @@ -21,9 +21,7 @@ function injectBabelHelpersPlugin(isEmberSource) { return { pre(file) { file.set('helperGenerator', function (name) { - if (name === 'extends') { - return addNamed(file.path, 'assign', '@ember/polyfills'); - } else if (isEmberSource && name === 'asyncToGenerator') { + if (isEmberSource && name === 'asyncToGenerator') { // Returning a falsy value will cause the helper to be inlined, // which is fine for local tests return false; diff --git a/package.json b/package.json index 2d670d37ec9..d3a51855060 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,6 @@ "dependencies": { "@babel/helper-module-imports": "^7.8.3", "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-object-assign": "^7.8.3", "@ember/edition-utils": "^1.2.0", "@glimmer/vm-babel-plugins": "0.79.4", "babel-plugin-debug-macros": "^0.3.3", diff --git a/packages/@ember/-internals/console/index.d.ts b/packages/@ember/-internals/console/index.d.ts deleted file mode 100644 index bf03766f40b..00000000000 --- a/packages/@ember/-internals/console/index.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -declare const Logger: { - log(...args: string[]): void; - warn(...args: string[]): void; - error(...args: string[]): void; - info(...args: string[]): void; - debug(...args: string[]): void; - assert(...args: string[]): void; -}; - -export default Logger; diff --git a/packages/@ember/-internals/console/index.js b/packages/@ember/-internals/console/index.js deleted file mode 100644 index 38bda85f0aa..00000000000 --- a/packages/@ember/-internals/console/index.js +++ /dev/null @@ -1,201 +0,0 @@ -import { deprecate } from '@ember/debug'; -import { LOGGER } from '@ember/deprecated-features'; - -// Deliver message that the function is deprecated - -const DEPRECATION_MESSAGE = 'Use of Ember.Logger is deprecated. Please use `console` for logging.'; -const DEPRECATION_ID = 'ember-console.deprecate-logger'; -const DEPRECATION_URL = - 'https://deprecations.emberjs.com/v3.x#toc_use-console-rather-than-ember-logger'; -/** - @module ember -*/ - -/** - Inside Ember-Metal, simply uses the methods from `imports.console`. - Override this to provide more robust logging functionality. - - @class Logger - @deprecated Use 'console' instead - - @namespace Ember - @public -*/ -let DEPRECATED_LOGGER; - -if (LOGGER) { - DEPRECATED_LOGGER = { - /** - Logs the arguments to the console. - You can pass as many arguments as you want and they will be joined together with a space. - - ```javascript - var foo = 1; - Ember.Logger.log('log value of foo:', foo); - // "log value of foo: 1" will be printed to the console - ``` - - @method log - @for Ember.Logger - @param {*} arguments - @public - */ - log() { - deprecate(DEPRECATION_MESSAGE, false, { - id: DEPRECATION_ID, - until: '4.0.0', - url: DEPRECATION_URL, - for: 'ember-source', - since: { - enabled: '3.2.0', - }, - }); - return console.log(...arguments); // eslint-disable-line no-console - }, - - /** - Prints the arguments to the console with a warning icon. - You can pass as many arguments as you want and they will be joined together with a space. - - ```javascript - Ember.Logger.warn('Something happened!'); - // "Something happened!" will be printed to the console with a warning icon. - ``` - - @method warn - @for Ember.Logger - @param {*} arguments - @public - */ - warn() { - deprecate(DEPRECATION_MESSAGE, false, { - id: DEPRECATION_ID, - until: '4.0.0', - url: DEPRECATION_URL, - for: 'ember-source', - since: { - enabled: '3.2.0', - }, - }); - return console.warn(...arguments); // eslint-disable-line no-console - }, - - /** - Prints the arguments to the console with an error icon, red text and a stack trace. - You can pass as many arguments as you want and they will be joined together with a space. - - ```javascript - Ember.Logger.error('Danger! Danger!'); - // "Danger! Danger!" will be printed to the console in red text. - ``` - - @method error - @for Ember.Logger - @param {*} arguments - @public - */ - error() { - deprecate(DEPRECATION_MESSAGE, false, { - id: DEPRECATION_ID, - until: '4.0.0', - url: DEPRECATION_URL, - for: 'ember-source', - since: { - enabled: '3.2.0', - }, - }); - return console.error(...arguments); // eslint-disable-line no-console - }, - - /** - Logs the arguments to the console. - You can pass as many arguments as you want and they will be joined together with a space. - - ```javascript - var foo = 1; - Ember.Logger.info('log value of foo:', foo); - // "log value of foo: 1" will be printed to the console - ``` - - @method info - @for Ember.Logger - @param {*} arguments - @public - */ - info() { - deprecate(DEPRECATION_MESSAGE, false, { - id: DEPRECATION_ID, - until: '4.0.0', - url: DEPRECATION_URL, - for: 'ember-source', - since: { - enabled: '3.2.0', - }, - }); - return console.info(...arguments); // eslint-disable-line no-console - }, - - /** - Logs the arguments to the console in blue text. - You can pass as many arguments as you want and they will be joined together with a space. - - ```javascript - var foo = 1; - Ember.Logger.debug('log value of foo:', foo); - // "log value of foo: 1" will be printed to the console - ``` - - @method debug - @for Ember.Logger - @param {*} arguments - @public - */ - debug() { - deprecate(DEPRECATION_MESSAGE, false, { - id: DEPRECATION_ID, - until: '4.0.0', - url: DEPRECATION_URL, - for: 'ember-source', - since: { - enabled: '3.2.0', - }, - }); - /* eslint-disable no-console */ - if (console.debug) { - return console.debug(...arguments); - } - return console.info(...arguments); - /* eslint-enable no-console */ - }, - - /** - If the value passed into `Ember.Logger.assert` is not truthy it will throw an error with a stack trace. - - ```javascript - Ember.Logger.assert(true); // undefined - Ember.Logger.assert(true === false); // Throws an Assertion failed error. - Ember.Logger.assert(true === false, 'Something invalid'); // Throws an Assertion failed error with message. - ``` - - @method assert - @for Ember.Logger - @param {Boolean} bool Value to test - @param {String} message Assertion message on failed - @public - */ - assert() { - deprecate(DEPRECATION_MESSAGE, false, { - id: DEPRECATION_ID, - until: '4.0.0', - url: DEPRECATION_URL, - for: 'ember-source', - since: { - enabled: '3.2.0', - }, - }); - return console.assert(...arguments); // eslint-disable-line no-console - }, - }; -} - -export default DEPRECATED_LOGGER; diff --git a/packages/@ember/-internals/container/lib/container.ts b/packages/@ember/-internals/container/lib/container.ts index 091203bec0b..7aa15c1e545 100644 --- a/packages/@ember/-internals/container/lib/container.ts +++ b/packages/@ember/-internals/container/lib/container.ts @@ -1,7 +1,6 @@ import { Factory, LookupOptions, Owner, setOwner } from '@ember/-internals/owner'; import { dictionary, HAS_NATIVE_PROXY, HAS_NATIVE_SYMBOL, symbol } from '@ember/-internals/utils'; import { assert } from '@ember/debug'; -import { assign } from '@ember/polyfills'; import { DEBUG } from '@glimmer/env'; import Registry, { DebugRegistry, Injection } from './registry'; @@ -586,7 +585,7 @@ class FactoryManager { } if (options !== undefined) { - props = assign({}, props, options); + props = Object.assign({}, props, options); } if (DEBUG) { diff --git a/packages/@ember/-internals/container/lib/registry.ts b/packages/@ember/-internals/container/lib/registry.ts index 8659ac9e2f1..6d8634d8537 100644 --- a/packages/@ember/-internals/container/lib/registry.ts +++ b/packages/@ember/-internals/container/lib/registry.ts @@ -1,7 +1,6 @@ import { Factory } from '@ember/-internals/owner'; import { dictionary, intern } from '@ember/-internals/utils'; import { assert } from '@ember/debug'; -import { assign } from '@ember/polyfills'; import { DEBUG } from '@glimmer/env'; import Container, { ContainerOptions, LazyInjection } from './container'; @@ -607,7 +606,7 @@ export default class Registry implements IRegistry { resolverKnown = this.resolver.knownForType(type); } - return assign({}, fallbackKnown, localKnown, resolverKnown); + return Object.assign({}, fallbackKnown, localKnown, resolverKnown); } isValidFullName(fullName: string): boolean { diff --git a/packages/@ember/-internals/container/tests/container_test.js b/packages/@ember/-internals/container/tests/container_test.js index 4fc52d28452..8a9a3311887 100644 --- a/packages/@ember/-internals/container/tests/container_test.js +++ b/packages/@ember/-internals/container/tests/container_test.js @@ -1,5 +1,4 @@ import { getOwner } from '@ember/-internals/owner'; -import { assign } from '@ember/polyfills'; import Service from '@ember/service'; import { DEBUG } from '@glimmer/env'; import { Registry } from '..'; @@ -831,7 +830,7 @@ moduleFor( class Component { static create(options) { let instance = new this(); - assign(instance, options); + Object.assign(instance, options); return instance; } } diff --git a/packages/@ember/-internals/extension-support/tests/container_debug_adapter_test.js b/packages/@ember/-internals/extension-support/tests/container_debug_adapter_test.js index 8043421051b..282c138a84d 100644 --- a/packages/@ember/-internals/extension-support/tests/container_debug_adapter_test.js +++ b/packages/@ember/-internals/extension-support/tests/container_debug_adapter_test.js @@ -1,5 +1,4 @@ import { moduleFor, ApplicationTestCase } from 'internal-test-helpers'; -import { assign } from '@ember/polyfills'; import { run } from '@ember/runloop'; import EmberController from '@ember/controller'; import '../index'; // Must be required to export Ember.ContainerDebugAdapter. @@ -17,7 +16,7 @@ moduleFor( } get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { autoboot: true, }); } diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts index d2cb69a1c26..21da0ed0509 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/curly.ts @@ -4,7 +4,6 @@ import { addChildView, setElementView, setViewElement } from '@ember/-internals/ import { assert, debugFreeze } from '@ember/debug'; import { EMBER_COMPONENT_IS_VISIBLE } from '@ember/deprecated-features'; import { _instrumentStart } from '@ember/instrumentation'; -import { assign } from '@ember/polyfills'; import { DEBUG } from '@glimmer/env'; import { Bounds, @@ -219,11 +218,11 @@ export default class CurlyComponentManager named = { [positionalParams]: createComputeRef(() => reifyPositional(captured)), }; - assign(named, args.named.capture()); + Object.assign(named, args.named.capture()); } else if (Array.isArray(positionalParams) && positionalParams.length > 0) { const count = Math.min(positionalParams.length, args.positional.length); named = {}; - assign(named, args.named.capture()); + Object.assign(named, args.named.capture()); for (let i = 0; i < count; i++) { // As of TS 3.7, tsc is giving us the following error on this line without the type annotation diff --git a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts index 65a8cf17d17..a2f904ea418 100644 --- a/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/component-managers/outlet.ts @@ -4,7 +4,6 @@ import { guidFor } from '@ember/-internals/utils'; import { assert } from '@ember/debug'; import EngineInstance from '@ember/engine/instance'; import { _instrumentStart } from '@ember/instrumentation'; -import { assign } from '@ember/polyfills'; import { CapturedArguments, CompilableProgram, @@ -205,7 +204,7 @@ export class OutletComponentDefinition export function createRootOutlet(outletView: OutletView): OutletComponentDefinition { if (ENV._APPLICATION_TEMPLATE_WRAPPER) { - const WRAPPED_CAPABILITIES = assign({}, CAPABILITIES, { + const WRAPPED_CAPABILITIES = Object.assign({}, CAPABILITIES, { dynamicTag: true, elementHook: true, wrapped: true, diff --git a/packages/@ember/-internals/glimmer/lib/helpers/query-param.ts b/packages/@ember/-internals/glimmer/lib/helpers/query-param.ts index a0bb4b22a4e..644e68847a5 100644 --- a/packages/@ember/-internals/glimmer/lib/helpers/query-param.ts +++ b/packages/@ember/-internals/glimmer/lib/helpers/query-param.ts @@ -3,7 +3,6 @@ */ import { QueryParams } from '@ember/-internals/routing'; import { assert, deprecate } from '@ember/debug'; -import { assign } from '@ember/polyfills'; import { CapturedArguments } from '@glimmer/interfaces'; import { createComputeRef } from '@glimmer/reference'; import { reifyNamed } from '@glimmer/runtime'; @@ -51,6 +50,6 @@ export default internalHelper(({ positional, named }: CapturedArguments) => { } ); - return new QueryParams(assign({}, reifyNamed(named) as any)); + return new QueryParams(Object.assign({}, reifyNamed(named) as any)); }); }); diff --git a/packages/@ember/-internals/glimmer/lib/modifiers/on.ts b/packages/@ember/-internals/glimmer/lib/modifiers/on.ts index 06f3beb0fa2..a7286d4c522 100644 --- a/packages/@ember/-internals/glimmer/lib/modifiers/on.ts +++ b/packages/@ember/-internals/glimmer/lib/modifiers/on.ts @@ -2,19 +2,6 @@ @module ember */ -/* - Internet Explorer 11 does not support `once` and also does not support - passing `eventOptions`. In some situations it then throws a weird script - error, like: - - ``` - Could not complete the operation due to error 80020101 - ``` - - This flag determines, whether `{ once: true }` and thus also event options in - general are supported. -*/ - /** The `{{on}}` modifier lets you easily add event listeners (it uses [EventTarget.addEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) diff --git a/packages/@ember/-internals/glimmer/lib/views/outlet.ts b/packages/@ember/-internals/glimmer/lib/views/outlet.ts index 4feb93abe9c..871a26a5837 100644 --- a/packages/@ember/-internals/glimmer/lib/views/outlet.ts +++ b/packages/@ember/-internals/glimmer/lib/views/outlet.ts @@ -1,5 +1,4 @@ import { getOwner, Owner } from '@ember/-internals/owner'; -import { assign } from '@ember/polyfills'; import { schedule } from '@ember/runloop'; import { Template } from '@glimmer/interfaces'; import { createComputeRef, Reference, updateRef } from '@glimmer/reference'; @@ -22,7 +21,7 @@ export default class OutletView { return class extends OutletView { static create(options: any) { if (options) { - return super.create(assign({}, injections, options)); + return super.create(Object.assign({}, injections, options)); } else { return super.create(injections); } @@ -31,7 +30,7 @@ export default class OutletView { } static reopenClass(injections: any): void { - assign(this, injections); + Object.assign(this, injections); } static create(options: any): OutletView { diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/contextual-components-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/contextual-components-test.js index 3920ae482c2..750f9df7538 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/contextual-components-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/contextual-components-test.js @@ -1,7 +1,6 @@ import { DEBUG } from '@glimmer/env'; import { moduleFor, RenderingTestCase, applyMixins, strip, runTask } from 'internal-test-helpers'; -import { assign } from '@ember/polyfills'; import { isEmpty } from '@ember/-internals/metal'; import { A as emberA } from '@ember/-internals/runtime'; @@ -1441,7 +1440,7 @@ class ContextualComponentMutableParamsTest extends RenderingTestCase { render(templateStr, context = {}) { super.render( `${templateStr}{{this.model.val2}}`, - assign(context, { model: { val2: 8 } }) + Object.assign(context, { model: { val2: 8 } }) ); } } diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/input-angle-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/input-angle-test.js index 35b3362de0a..905498e9f86 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/input-angle-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/input-angle-test.js @@ -1,7 +1,6 @@ import { RenderingTestCase, moduleFor, runDestroy, runTask } from 'internal-test-helpers'; import { EMBER_MODERNIZED_BUILT_IN_COMPONENTS } from '@ember/canary-features'; import { action } from '@ember/object'; -import { assign } from '@ember/polyfills'; import { Checkbox, TextArea, TextField } from '@ember/-internals/glimmer'; import { set } from '@ember/-internals/metal'; import { TargetActionSupport } from '@ember/-internals/runtime'; @@ -71,7 +70,7 @@ class InputRenderingTest extends RenderingTestCase { triggerEvent(type, options, selector) { let event = document.createEvent('Events'); event.initEvent(type, true, true); - assign(event, options); + Object.assign(event, options); let element = this.$(selector || 'input')[0]; runTask(() => { diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/input-curly-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/input-curly-test.js index 30d51c4e209..f32278a6d56 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/input-curly-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/input-curly-test.js @@ -2,7 +2,6 @@ import { RenderingTestCase, moduleFor, runDestroy, runTask } from 'internal-test import { EMBER_MODERNIZED_BUILT_IN_COMPONENTS } from '@ember/canary-features'; import { action } from '@ember/object'; -import { assign } from '@ember/polyfills'; import { set } from '@ember/-internals/metal'; import { jQueryDisabled, jQuery } from '@ember/-internals/views'; @@ -70,7 +69,7 @@ class InputRenderingTest extends RenderingTestCase { triggerEvent(type, options) { let event = document.createEvent('Events'); event.initEvent(type, true, true); - assign(event, options); + Object.assign(event, options); let element = this.$input()[0]; runTask(() => { diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/target-action-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/target-action-test.js index e6f1a7ba792..6e991250fbc 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/target-action-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/target-action-test.js @@ -6,7 +6,6 @@ import { runTask, } from 'internal-test-helpers'; -import { assign } from '@ember/polyfills'; import { set, Mixin } from '@ember/-internals/metal'; import Controller from '@ember/controller'; import { Object as EmberObject } from '@ember/-internals/runtime'; @@ -45,7 +44,7 @@ moduleFor( renderDelegate(template = '{{action-delegate}}', context = {}) { let root = this; - context = assign(context, { + context = Object.assign(context, { send(actionName, ...args) { root.sendCount++; root.actionCounts[actionName] = root.actionCounts[actionName] || 0; diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/textarea-angle-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/textarea-angle-test.js index 2d728f7190f..bf528bd57d4 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/textarea-angle-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/textarea-angle-test.js @@ -2,12 +2,11 @@ import { RenderingTestCase, moduleFor, classes, applyMixins, runTask } from 'int import { EMBER_MODERNIZED_BUILT_IN_COMPONENTS } from '@ember/canary-features'; import { action } from '@ember/object'; -import { assign } from '@ember/polyfills'; import { set } from '@ember/-internals/metal'; class TextAreaRenderingTest extends RenderingTestCase { assertTextArea({ attrs, value } = {}) { - let mergedAttrs = assign({ class: classes('ember-view ember-text-area') }, attrs); + let mergedAttrs = Object.assign({ class: classes('ember-view ember-text-area') }, attrs); this.assertComponentElement(this.firstChild, { tagName: 'textarea', attrs: mergedAttrs, @@ -21,7 +20,7 @@ class TextAreaRenderingTest extends RenderingTestCase { triggerEvent(type, options = {}) { let event = document.createEvent('Events'); event.initEvent(type, true, true); - assign(event, options); + Object.assign(event, options); this.firstChild.dispatchEvent(event); } diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/textarea-curly-test.js b/packages/@ember/-internals/glimmer/tests/integration/components/textarea-curly-test.js index 50aa67adc1b..939883178ac 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/textarea-curly-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/components/textarea-curly-test.js @@ -2,12 +2,11 @@ import { RenderingTestCase, moduleFor, classes, applyMixins, runTask } from 'int import { EMBER_MODERNIZED_BUILT_IN_COMPONENTS } from '@ember/canary-features'; import { action } from '@ember/object'; -import { assign } from '@ember/polyfills'; import { set } from '@ember/-internals/metal'; class TextAreaRenderingTest extends RenderingTestCase { assertTextArea({ attrs, value } = {}) { - let mergedAttrs = assign({ class: classes('ember-view ember-text-area') }, attrs); + let mergedAttrs = Object.assign({ class: classes('ember-view ember-text-area') }, attrs); this.assertComponentElement(this.firstChild, { tagName: 'textarea', attrs: mergedAttrs, @@ -21,7 +20,7 @@ class TextAreaRenderingTest extends RenderingTestCase { triggerEvent(type, options = {}) { let event = document.createEvent('Events'); event.initEvent(type, true, true); - assign(event, options); + Object.assign(event, options); this.firstChild.dispatchEvent(event); } diff --git a/packages/@ember/-internals/glimmer/tests/integration/helpers/element-action-test.js b/packages/@ember/-internals/glimmer/tests/integration/helpers/element-action-test.js index cc095a37d76..70dc35952ab 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/helpers/element-action-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/helpers/element-action-test.js @@ -32,8 +32,6 @@ function getActionIds(element) { ); } -const isIE11 = !window.ActiveXObject && 'ActiveXObject' in window; - if (EMBER_IMPROVED_INSTRUMENTATION) { moduleFor( 'Helpers test: element action instrumentation', @@ -1144,11 +1142,7 @@ moduleFor( .trigger('click', { [prop]: value })[0]; if (expected) { assert.ok(showCalled, `should call action with ${prop}:${value}`); - - // IE11 does not allow simulated events to have a valid `defaultPrevented` - if (!isIE11) { - assert.ok(event.defaultPrevented, 'should prevent default'); - } + assert.ok(event.defaultPrevented, 'should prevent default'); } else { assert.notOk(showCalled, `should not call action with ${prop}:${value}`); assert.notOk(event.defaultPrevented, 'should not prevent default'); @@ -1486,10 +1480,7 @@ moduleFor( event = this.$('a').trigger('click')[0]; }); - // IE11 does not allow simulated events to have a valid `defaultPrevented` - if (!isIE11) { - this.assert.equal(event.defaultPrevented, true, 'should preventDefault'); - } + this.assert.equal(event.defaultPrevented, true, 'should preventDefault'); } ['@test it should target the proper component when `action` is in yielded block [GH #12409]']() { diff --git a/packages/@ember/-internals/glimmer/tests/integration/modifiers/on-test.js b/packages/@ember/-internals/glimmer/tests/integration/modifiers/on-test.js index 7d9556715a8..54b320cb33e 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/modifiers/on-test.js +++ b/packages/@ember/-internals/glimmer/tests/integration/modifiers/on-test.js @@ -5,8 +5,6 @@ import { on } from '@glimmer/runtime'; import { Component } from '../../utils/helpers'; -const isIE11 = !window.ActiveXObject && 'ActiveXObject' in window; - moduleFor( '{{on}} Modifier', class extends RenderingTestCase { @@ -41,8 +39,6 @@ moduleFor( if (isChrome || isFirefox) { assert.strictEqual(SUPPORTS_EVENT_OPTIONS, true, 'is true in chrome and firefox'); - } else if (isIE11) { - assert.strictEqual(SUPPORTS_EVENT_OPTIONS, false, 'is false in IE11'); } else { assert.expect(0); } @@ -136,11 +132,7 @@ moduleFor( runTask(() => this.$('button').click()); assert.equal(count, 1, 'has been called 1 times'); - if (isIE11) { - this.assertCounts({ adds: 1, removes: 1 }); - } else { - this.assertCounts({ adds: 1, removes: 0 }); - } + this.assertCounts({ adds: 1, removes: 0 }); } '@test changing from `once=false` to `once=true` ensures the callback can only be called once'( @@ -169,11 +161,7 @@ moduleFor( runTask(() => this.$('button').click()); assert.equal(count, 3, 'is not called again'); - if (isIE11) { - this.assertCounts({ adds: 2, removes: 2 }); - } else { - this.assertCounts({ adds: 2, removes: 1 }); - } + this.assertCounts({ adds: 2, removes: 1 }); } '@test by default bubbling is used (capture: false)'(assert) { diff --git a/packages/@ember/-internals/glimmer/tests/utils/shared-conditional-tests.js b/packages/@ember/-internals/glimmer/tests/utils/shared-conditional-tests.js index 08f8550a229..9868ed3a1dc 100644 --- a/packages/@ember/-internals/glimmer/tests/utils/shared-conditional-tests.js +++ b/packages/@ember/-internals/glimmer/tests/utils/shared-conditional-tests.js @@ -2,7 +2,6 @@ import { RenderingTestCase, applyMixins, runTask } from 'internal-test-helpers'; -import { assign } from '@ember/polyfills'; import { htmlSafe } from '@ember/-internals/glimmer'; import { get, set } from '@ember/-internals/metal'; import { @@ -115,7 +114,7 @@ export class FalsyGenerator extends AbstractGenerator { export class StableTruthyGenerator extends TruthyGenerator { generate(value, idx) { - return assign(super.generate(value, idx), { + return Object.assign(super.generate(value, idx), { [`@test it maintains DOM stability when condition changes from ${value} to another truthy value and back [${idx}]`]() { this.renderValues(value); @@ -141,7 +140,7 @@ export class StableTruthyGenerator extends TruthyGenerator { export class StableFalsyGenerator extends FalsyGenerator { generate(value, idx) { - return assign(super.generate(value), { + return Object.assign(super.generate(value), { [`@test it maintains DOM stability when condition changes from ${value} to another falsy value and back [${idx}]`]() { this.renderValues(value); @@ -651,7 +650,7 @@ export class TogglingSyntaxConditionalsTest extends TogglingConditionalsTest { } let wrappedTemplate = this.wrapperFor(templates); - this.render(wrappedTemplate, assign({ t: 'T', f: 'F' }, context)); + this.render(wrappedTemplate, Object.assign({ t: 'T', f: 'F' }, context)); } ['@test it does not update when the unbound helper is used']() { diff --git a/packages/@ember/-internals/metal/lib/mixin.ts b/packages/@ember/-internals/metal/lib/mixin.ts index e1150da0daf..251893144cb 100644 --- a/packages/@ember/-internals/metal/lib/mixin.ts +++ b/packages/@ember/-internals/metal/lib/mixin.ts @@ -15,7 +15,6 @@ import { import { EMBER_MODERNIZED_BUILT_IN_COMPONENTS } from '@ember/canary-features'; import { assert, deprecate } from '@ember/debug'; import { ALIAS_METHOD } from '@ember/deprecated-features'; -import { assign } from '@ember/polyfills'; import { DEBUG } from '@glimmer/env'; import { _WeakSet } from '@glimmer/util'; import { @@ -204,7 +203,7 @@ function applyMergedProperties( return value; } - let newBase = assign({}, baseValue); + let newBase = Object.assign({}, baseValue); let hasFunction = false; let props = Object.keys(value); diff --git a/packages/@ember/-internals/routing/lib/services/router.ts b/packages/@ember/-internals/routing/lib/services/router.ts index 72f45380f7b..eb45385234b 100644 --- a/packages/@ember/-internals/routing/lib/services/router.ts +++ b/packages/@ember/-internals/routing/lib/services/router.ts @@ -4,7 +4,6 @@ import { symbol } from '@ember/-internals/utils'; import { EMBER_ROUTING_ROUTER_SERVICE_REFRESH } from '@ember/canary-features'; import { assert } from '@ember/debug'; import { readOnly } from '@ember/object/computed'; -import { assign } from '@ember/polyfills'; import Service from '@ember/service'; import { consumeTag, tagFor } from '@glimmer/validator'; import Route from '../system/route'; @@ -313,7 +312,7 @@ export default class RouterService extends Service { let hasQueryParams = Object.keys(queryParams).length > 0; if (hasQueryParams) { - queryParams = assign({}, queryParams); + queryParams = Object.assign({}, queryParams); this._router._prepareQueryParams( // UNSAFE: casting `routeName as string` here encodes the existing // assumption but may be wrong: `extractRouteArgs` correctly returns it diff --git a/packages/@ember/-internals/routing/lib/services/routing.ts b/packages/@ember/-internals/routing/lib/services/routing.ts index da2cf9ed5b8..7c157e5aea4 100644 --- a/packages/@ember/-internals/routing/lib/services/routing.ts +++ b/packages/@ember/-internals/routing/lib/services/routing.ts @@ -5,7 +5,6 @@ import { getOwner, Owner } from '@ember/-internals/owner'; import { symbol } from '@ember/-internals/utils'; import { readOnly } from '@ember/object/computed'; -import { assign } from '@ember/polyfills'; import Service from '@ember/service'; import EmberRouter, { QueryParam } from '../system/router'; import RouterState from '../system/router_state'; @@ -55,7 +54,7 @@ export default class RoutingService extends Service { _generateURL(routeName: string, models: {}[], queryParams: {}) { let visibleQueryParams = {}; if (queryParams) { - assign(visibleQueryParams, queryParams); + Object.assign(visibleQueryParams, queryParams); this.normalizeQueryParams(routeName, models, visibleQueryParams as QueryParam); } diff --git a/packages/@ember/-internals/routing/lib/system/dsl.ts b/packages/@ember/-internals/routing/lib/system/dsl.ts index 91366ef8aef..554120584d7 100644 --- a/packages/@ember/-internals/routing/lib/system/dsl.ts +++ b/packages/@ember/-internals/routing/lib/system/dsl.ts @@ -1,6 +1,5 @@ import { Factory } from '@ember/-internals/owner'; import { assert } from '@ember/debug'; -import { assign } from '@ember/polyfills'; import { Option } from '@glimmer/interfaces'; import { MatchCallback } from 'route-recognizer'; import { EngineInfo, EngineRouteInfo } from './engines'; @@ -136,7 +135,7 @@ export default class DSLImpl implements DSL { if (this.options.engineInfo) { let localFullName = name.slice(this.options.engineInfo.fullName.length + 1); - let routeInfo: EngineRouteInfo = assign({ localFullName }, this.options.engineInfo); + let routeInfo: EngineRouteInfo = Object.assign({ localFullName }, this.options.engineInfo); if (serialize) { routeInfo.serializeMethod = serialize; @@ -206,7 +205,7 @@ export default class DSLImpl implements DSL { this.options.engineInfo = engineInfo; } - let optionsForChild = assign({ engineInfo }, this.options); + let optionsForChild = Object.assign({ engineInfo }, this.options); let childDSL = new DSLImpl(fullName, optionsForChild); createRoute(childDSL, 'loading'); @@ -222,14 +221,14 @@ export default class DSLImpl implements DSL { } let localFullName = 'application'; - let routeInfo = assign({ localFullName }, engineInfo); + let routeInfo = Object.assign({ localFullName }, engineInfo); if (this.enableLoadingSubstates) { // These values are important to register the loading routes under their // proper names for the Router and within the Engine's registry. let substateName = `${name}_loading`; let localFullName = `application_loading`; - let routeInfo = assign({ localFullName }, engineInfo); + let routeInfo = Object.assign({ localFullName }, engineInfo); createRoute(this, substateName, { resetNamespace: options.resetNamespace, }); @@ -237,7 +236,7 @@ export default class DSLImpl implements DSL { substateName = `${name}_error`; localFullName = `application_error`; - routeInfo = assign({ localFullName }, engineInfo); + routeInfo = Object.assign({ localFullName }, engineInfo); createRoute(this, substateName, { resetNamespace: options.resetNamespace, path: dummyErrorRoute, diff --git a/packages/@ember/-internals/routing/lib/system/route.ts b/packages/@ember/-internals/routing/lib/system/route.ts index 3398444d948..4cccb54d96d 100644 --- a/packages/@ember/-internals/routing/lib/system/route.ts +++ b/packages/@ember/-internals/routing/lib/system/route.ts @@ -25,7 +25,6 @@ import Controller from '@ember/controller'; import { assert, deprecate, info, isTesting } from '@ember/debug'; import { ROUTER_EVENTS } from '@ember/deprecated-features'; import { dependentKeyCompat } from '@ember/object/compat'; -import { assign } from '@ember/polyfills'; import { once } from '@ember/runloop'; import { classify } from '@ember/string'; import { DEBUG } from '@glimmer/env'; @@ -435,7 +434,7 @@ class Route extends EmberObject.extend(ActionHandler, Evented) implements IRoute let state = transition ? transition[STATE_SYMBOL] : this._router._routerMicrolib.state; let fullName = route.fullRouteName; - let params = assign({}, state!.params[fullName!]); + let params = Object.assign({}, state!.params[fullName!]); let queryParams = getQueryParamsFor(route, state!); return Object.keys(queryParams).reduce((params, key) => { @@ -2403,7 +2402,7 @@ export function getFullQueryParams(router: EmberRouter, state: TransitionState 0) { - let visibleQueryParams = assign({}, queryParams); + let visibleQueryParams = Object.assign({}, queryParams); this.emberRouter._prepareQueryParams(routeName, models, visibleQueryParams); return shallowEqual(visibleQueryParams, state.queryParams); diff --git a/packages/@ember/-internals/routing/lib/utils.ts b/packages/@ember/-internals/routing/lib/utils.ts index 71c666d244b..2e35a299543 100644 --- a/packages/@ember/-internals/routing/lib/utils.ts +++ b/packages/@ember/-internals/routing/lib/utils.ts @@ -2,7 +2,6 @@ import { get } from '@ember/-internals/metal'; import { getOwner } from '@ember/-internals/owner'; import { deprecate } from '@ember/debug'; import EmberError from '@ember/error'; -import { assign } from '@ember/polyfills'; import Router, { STATE_SYMBOL } from 'router_js'; import Route from './system/route'; import EmberRouter, { PrivateRouteInfo, QueryParam } from './system/router'; @@ -182,7 +181,7 @@ function accumulateQueryParamDescriptors(_desc: QueryParam, accum: {}) { } tmp = accum[key] || { as: null, scope: 'model' }; - assign(tmp, singleDesc); + Object.assign(tmp, singleDesc); accum[key] = tmp; } diff --git a/packages/@ember/-internals/routing/tests/location/auto_location_test.js b/packages/@ember/-internals/routing/tests/location/auto_location_test.js index 45b44c88bc1..cb33a2401e6 100644 --- a/packages/@ember/-internals/routing/tests/location/auto_location_test.js +++ b/packages/@ember/-internals/routing/tests/location/auto_location_test.js @@ -1,4 +1,3 @@ -import { assign } from '@ember/polyfills'; import { window } from '@ember/-internals/browser-environment'; import { run } from '@ember/runloop'; import { get } from '@ember/-internals/metal'; @@ -11,7 +10,7 @@ import NoneLocation from '../../lib/location/none_location'; import { buildOwner, moduleFor, AbstractTestCase } from 'internal-test-helpers'; function mockBrowserLocation(overrides, assert) { - return assign( + return Object.assign( { href: 'http://test.com/', pathname: '/', @@ -26,7 +25,7 @@ function mockBrowserLocation(overrides, assert) { } function mockBrowserHistory(overrides, assert) { - return assign( + return Object.assign( { pushState() { assert.ok(false, 'history.pushState should not be called during testing'); diff --git a/packages/@ember/-internals/routing/tests/location/util_test.js b/packages/@ember/-internals/routing/tests/location/util_test.js index 51621ca446d..cd257058713 100644 --- a/packages/@ember/-internals/routing/tests/location/util_test.js +++ b/packages/@ember/-internals/routing/tests/location/util_test.js @@ -1,10 +1,9 @@ -import { assign } from '@ember/polyfills'; import { replacePath, getPath, getQuery, getFullPath } from '../../lib/location/util'; import { supportsHistory, supportsHashChange } from '../../lib/location/util'; import { moduleFor, AbstractTestCase } from 'internal-test-helpers'; function mockBrowserLocation(overrides, assert) { - return assign( + return Object.assign( { href: 'http://test.com/', pathname: '/', diff --git a/packages/@ember/-internals/runtime/lib/system/core_object.js b/packages/@ember/-internals/runtime/lib/system/core_object.js index c2262dbb450..50bdeff67f2 100644 --- a/packages/@ember/-internals/runtime/lib/system/core_object.js +++ b/packages/@ember/-internals/runtime/lib/system/core_object.js @@ -4,7 +4,6 @@ import { getFactoryFor, setFactoryFor, INIT_FACTORY } from '@ember/-internals/container'; import { getOwner, LEGACY_OWNER } from '@ember/-internals/owner'; -import { assign } from '@ember/polyfills'; import { guidFor, lookupDescriptor, @@ -122,7 +121,7 @@ function initialize(obj, properties) { if (hasMergedProps && mergedProperties.indexOf(keyName) > -1) { let baseValue = obj[keyName]; - value = assign({}, baseValue, value); + value = Object.assign({}, baseValue, value); } } @@ -1130,7 +1129,7 @@ function flattenProps(...props) { if (hasMergedProps && mergedProperties.indexOf(keyName) > -1) { let baseValue = initProperties[keyName]; - value = assign({}, baseValue, value); + value = Object.assign({}, baseValue, value); } initProperties[keyName] = value; diff --git a/packages/@ember/-internals/utils/tests/inspect_test.js b/packages/@ember/-internals/utils/tests/inspect_test.js index a82637165d9..65555f40668 100644 --- a/packages/@ember/-internals/utils/tests/inspect_test.js +++ b/packages/@ember/-internals/utils/tests/inspect_test.js @@ -36,12 +36,7 @@ moduleFor( return this; }, }; - // IE 11 doesn't have function name - if (obj.foo.name) { - assert.equal(inspect(obj), `{ foo: [Function:foo] }`); - } else { - assert.equal(inspect(obj), `{ foo: [Function] }`); - } + assert.equal(inspect(obj), `{ foo: [Function:foo] }`); } ['@test objects without a prototype'](assert) { diff --git a/packages/@ember/-internals/views/lib/system/event_dispatcher.js b/packages/@ember/-internals/views/lib/system/event_dispatcher.js index 2b5ac3a245b..4cb32af5112 100644 --- a/packages/@ember/-internals/views/lib/system/event_dispatcher.js +++ b/packages/@ember/-internals/views/lib/system/event_dispatcher.js @@ -1,5 +1,4 @@ import { getOwner } from '@ember/-internals/owner'; -import { assign } from '@ember/polyfills'; import { assert } from '@ember/debug'; import { get, set } from '@ember/-internals/metal'; import { Object as EmberObject } from '@ember/-internals/runtime'; @@ -67,7 +66,7 @@ export default EmberObject.extend({ @type Object @private */ - events: assign( + events: Object.assign( { touchstart: 'touchStart', touchmove: 'touchMove', @@ -151,9 +150,9 @@ export default EmberObject.extend({ })() ); - let events = (this.finalEventNameMapping = assign({}, get(this, 'events'), addedEvents)); + let events = (this.finalEventNameMapping = Object.assign({}, get(this, 'events'), addedEvents)); this._reverseEventNameMapping = Object.keys(events).reduce( - (result, key) => assign(result, { [events[key]]: key }), + (result, key) => Object.assign(result, { [events[key]]: key }), {} ); let lazyEvents = this.lazyEvents; diff --git a/packages/@ember/-internals/views/lib/views/states/destroying.js b/packages/@ember/-internals/views/lib/views/states/destroying.js index 4e9ec8301be..92c60e62c8f 100644 --- a/packages/@ember/-internals/views/lib/views/states/destroying.js +++ b/packages/@ember/-internals/views/lib/views/states/destroying.js @@ -1,8 +1,7 @@ -import { assign } from '@ember/polyfills'; import EmberError from '@ember/error'; import _default from './default'; -const destroying = assign({}, _default, { +const destroying = Object.assign({}, _default, { appendChild() { throw new EmberError("You can't call appendChild on a view being destroyed"); }, diff --git a/packages/@ember/-internals/views/lib/views/states/has_element.js b/packages/@ember/-internals/views/lib/views/states/has_element.js index 21684c917fb..5b7e2c163a3 100644 --- a/packages/@ember/-internals/views/lib/views/states/has_element.js +++ b/packages/@ember/-internals/views/lib/views/states/has_element.js @@ -1,9 +1,8 @@ -import { assign } from '@ember/polyfills'; import _default from './default'; import { join } from '@ember/runloop'; import { flaggedInstrument } from '@ember/instrumentation'; -const hasElement = assign({}, _default, { +const hasElement = Object.assign({}, _default, { rerender(view) { view.renderer.rerender(view); }, diff --git a/packages/@ember/-internals/views/lib/views/states/in_dom.js b/packages/@ember/-internals/views/lib/views/states/in_dom.js index 6b638ddb78a..de086e4c845 100644 --- a/packages/@ember/-internals/views/lib/views/states/in_dom.js +++ b/packages/@ember/-internals/views/lib/views/states/in_dom.js @@ -1,10 +1,9 @@ import { teardownMandatorySetter } from '@ember/-internals/utils'; -import { assign } from '@ember/polyfills'; import EmberError from '@ember/error'; import { DEBUG } from '@glimmer/env'; import hasElement from './has_element'; -const inDOM = assign({}, hasElement, { +const inDOM = Object.assign({}, hasElement, { enter(view) { // Register the view for event handling. This hash is used by // Ember.EventDispatcher to dispatch incoming events. diff --git a/packages/@ember/-internals/views/lib/views/states/pre_render.js b/packages/@ember/-internals/views/lib/views/states/pre_render.js index 90b19ea9e62..a0a6718b46f 100644 --- a/packages/@ember/-internals/views/lib/views/states/pre_render.js +++ b/packages/@ember/-internals/views/lib/views/states/pre_render.js @@ -1,6 +1,5 @@ import _default from './default'; -import { assign } from '@ember/polyfills'; -const preRender = assign({}, _default); +const preRender = Object.assign({}, _default); export default Object.freeze(preRender); diff --git a/packages/@ember/application/instance.js b/packages/@ember/application/instance.js index 4bfe80f66ae..b87af2acd91 100644 --- a/packages/@ember/application/instance.js +++ b/packages/@ember/application/instance.js @@ -2,7 +2,6 @@ @module @ember/application */ -import { assign } from '@ember/polyfills'; import { get, set, computed } from '@ember/-internals/metal'; import * as environment from '@ember/-internals/browser-environment'; import { jQuery } from '@ember/-internals/views'; @@ -202,7 +201,7 @@ const ApplicationInstance = EngineInstance.extend({ let applicationCustomEvents = get(this.application, 'customEvents'); let instanceCustomEvents = get(this, 'customEvents'); - let customEvents = assign({}, applicationCustomEvents, instanceCustomEvents); + let customEvents = Object.assign({}, applicationCustomEvents, instanceCustomEvents); dispatcher.setup(customEvents, this.rootElement); return dispatcher; @@ -498,7 +497,7 @@ class BootOptions { toEnvironment() { // Do we really want to assign all of this!? - let env = assign({}, environment); + let env = Object.assign({}, environment); // For compatibility with existing code env.hasDOM = this.isBrowser; env.isInteractive = this.isInteractive; diff --git a/packages/@ember/application/tests/application_test.js b/packages/@ember/application/tests/application_test.js index ee39c6eb58a..5988677d2c8 100644 --- a/packages/@ember/application/tests/application_test.js +++ b/packages/@ember/application/tests/application_test.js @@ -10,7 +10,6 @@ import { _loaded } from '@ember/application'; import Controller from '@ember/controller'; import { Object as EmberObject } from '@ember/-internals/runtime'; import { setTemplates } from '@ember/-internals/glimmer'; -import { assign } from '@ember/polyfills'; import { moduleFor, ApplicationTestCase, @@ -37,7 +36,7 @@ moduleFor( } get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { rootElement: '#one', router: null, autoboot: true, @@ -45,7 +44,7 @@ moduleFor( } createSecondApplication(options) { - let myOptions = assign(this.applicationOptions, options); + let myOptions = Object.assign(this.applicationOptions, options); return (this.secondApp = Application.create(myOptions)); } @@ -187,7 +186,7 @@ moduleFor( } get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { autoboot: true, }); } diff --git a/packages/@ember/application/tests/bootstrap-test.js b/packages/@ember/application/tests/bootstrap-test.js index 7b23194b62e..41689a361cf 100644 --- a/packages/@ember/application/tests/bootstrap-test.js +++ b/packages/@ember/application/tests/bootstrap-test.js @@ -1,4 +1,3 @@ -import { assign } from '@ember/polyfills'; import { moduleFor, DefaultResolverApplicationTestCase, runTask } from 'internal-test-helpers'; moduleFor( @@ -14,7 +13,7 @@ moduleFor( } get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { autoboot: true, rootElement: '#app', }); diff --git a/packages/@ember/application/tests/dependency_injection/custom_resolver_test.js b/packages/@ember/application/tests/dependency_injection/custom_resolver_test.js index 646dc6569b0..cab5dbf46fb 100644 --- a/packages/@ember/application/tests/dependency_injection/custom_resolver_test.js +++ b/packages/@ember/application/tests/dependency_injection/custom_resolver_test.js @@ -1,5 +1,4 @@ import DefaultResolver from '@ember/application/globals-resolver'; -import { assign } from '@ember/polyfills'; import { moduleFor, DefaultResolverApplicationTestCase, runTask } from 'internal-test-helpers'; moduleFor( @@ -18,7 +17,7 @@ moduleFor( }, }); - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { Resolver, autoboot: true, }); diff --git a/packages/@ember/application/tests/initializers_test.js b/packages/@ember/application/tests/initializers_test.js index b8288f433f6..13fdb906da0 100644 --- a/packages/@ember/application/tests/initializers_test.js +++ b/packages/@ember/application/tests/initializers_test.js @@ -1,4 +1,3 @@ -import { assign } from '@ember/polyfills'; import { moduleFor, AutobootApplicationTestCase, runTask } from 'internal-test-helpers'; import Application from '..'; @@ -12,13 +11,13 @@ moduleFor( } get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { rootElement: '#one', }); } createSecondApplication(options, MyApplication = Application) { - let myOptions = assign( + let myOptions = Object.assign( this.applicationOptions, { rootElement: '#two', diff --git a/packages/@ember/application/tests/instance_initializers_test.js b/packages/@ember/application/tests/instance_initializers_test.js index 9c237b32359..34a5b1f7f4c 100644 --- a/packages/@ember/application/tests/instance_initializers_test.js +++ b/packages/@ember/application/tests/instance_initializers_test.js @@ -1,4 +1,3 @@ -import { assign } from '@ember/polyfills'; import { moduleFor, AutobootApplicationTestCase, runTask } from 'internal-test-helpers'; import ApplicationInstance from '@ember/application/instance'; import Application from '@ember/application'; @@ -13,13 +12,13 @@ moduleFor( } get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { rootElement: '#one', }); } createSecondApplication(options, MyApplication = Application) { - let myOptions = assign( + let myOptions = Object.assign( this.applicationOptions, { rootElement: '#two', diff --git a/packages/@ember/application/tests/logging_test.js b/packages/@ember/application/tests/logging_test.js index ef8ff83d0b4..b9ea7363a07 100644 --- a/packages/@ember/application/tests/logging_test.js +++ b/packages/@ember/application/tests/logging_test.js @@ -4,7 +4,6 @@ import { moduleFor, ApplicationTestCase } from 'internal-test-helpers'; import Controller from '@ember/controller'; import { Route } from '@ember/-internals/routing'; -import { assign } from '@ember/polyfills'; class LoggingApplicationTestCase extends ApplicationTestCase { constructor() { @@ -40,7 +39,7 @@ moduleFor( 'Application with LOG_ACTIVE_GENERATION=true', class extends LoggingApplicationTestCase { get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { LOG_ACTIVE_GENERATION: true, }); } @@ -102,7 +101,7 @@ moduleFor( 'Application when LOG_ACTIVE_GENERATION=false', class extends LoggingApplicationTestCase { get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { LOG_ACTIVE_GENERATION: false, }); } @@ -119,7 +118,7 @@ moduleFor( 'Application with LOG_VIEW_LOOKUPS=true', class extends LoggingApplicationTestCase { get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { LOG_VIEW_LOOKUPS: true, }); } @@ -159,7 +158,7 @@ moduleFor( 'Application with LOG_VIEW_LOOKUPS=false', class extends LoggingApplicationTestCase { get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { LOG_VIEW_LOOKUPS: false, }); } diff --git a/packages/@ember/canary-features/index.ts b/packages/@ember/canary-features/index.ts index 617810e311c..601c4f2b8fe 100644 --- a/packages/@ember/canary-features/index.ts +++ b/packages/@ember/canary-features/index.ts @@ -1,5 +1,4 @@ import { ENV } from '@ember/-internals/environment'; -import { assign } from '@ember/polyfills'; /** Set `EmberENV.FEATURES` in your application's `config/environment.js` file @@ -33,7 +32,7 @@ export const DEFAULT_FEATURES = { @since 1.1.0 @public */ -export const FEATURES = assign(DEFAULT_FEATURES, ENV.FEATURES); +export const FEATURES = Object.assign(DEFAULT_FEATURES, ENV.FEATURES); /** Determine whether the specified `feature` is enabled. Used by Ember's diff --git a/packages/@ember/deprecated-features/index.ts b/packages/@ember/deprecated-features/index.ts index d38c8bf6697..d750d8b3876 100644 --- a/packages/@ember/deprecated-features/index.ts +++ b/packages/@ember/deprecated-features/index.ts @@ -5,7 +5,6 @@ export const SEND_ACTION = !!'3.4.0'; export const EMBER_EXTEND_PROTOTYPES = !!'3.2.0-beta.5'; -export const LOGGER = !!'3.2.0-beta.1'; export const MERGE = !!'3.6.0-beta.1'; export const ROUTER_EVENTS = !!'4.0.0'; export const COMPONENT_MANAGER_STRING_LOOKUP = !!'3.8.0'; diff --git a/packages/@ember/object/index.js b/packages/@ember/object/index.js index d6ae7fbbf84..cf1f7dccc1c 100644 --- a/packages/@ember/object/index.js +++ b/packages/@ember/object/index.js @@ -1,6 +1,5 @@ import { DEBUG } from '@glimmer/env'; import { assert, deprecate } from '@ember/debug'; -import { assign } from '@ember/polyfills'; import { isElementDescriptor, setClassicDecorator } from '@ember/-internals/metal'; import { onComputedDotAccess } from '@ember/-internals/overrides'; @@ -273,7 +272,7 @@ function setupAction(target, key, actionFn) { if (!Object.prototype.hasOwnProperty.call(target, 'actions')) { let parentActions = target.actions; // we need to assign because of the way mixins copy actions down when inheriting - target.actions = parentActions ? assign({}, parentActions) : {}; + target.actions = parentActions ? Object.assign({}, parentActions) : {}; } target.actions[key] = actionFn; diff --git a/packages/@ember/runloop/tests/later_test.js b/packages/@ember/runloop/tests/later_test.js index 89f19ead224..c2f4eb14cca 100644 --- a/packages/@ember/runloop/tests/later_test.js +++ b/packages/@ember/runloop/tests/later_test.js @@ -1,5 +1,4 @@ import { moduleFor, AbstractTestCase } from 'internal-test-helpers'; -import { assign } from '@ember/polyfills'; import { run, later, _backburner, _hasScheduledTimers, _getCurrentRunLoop } from '..'; const originalSetTimeout = window.setTimeout; @@ -226,7 +225,7 @@ moduleFor( // happens when an expired timer callback takes a while to run, // which is what we simulate here. let newSetTimeoutUsed; - _backburner._platform = assign({}, originalPlatform, { + _backburner._platform = Object.assign({}, originalPlatform, { setTimeout() { let wait = arguments[arguments.length - 1]; newSetTimeoutUsed = true; diff --git a/packages/ember-template-compiler/lib/system/compile-options.ts b/packages/ember-template-compiler/lib/system/compile-options.ts index 87832571e09..f6d42c8b2ff 100644 --- a/packages/ember-template-compiler/lib/system/compile-options.ts +++ b/packages/ember-template-compiler/lib/system/compile-options.ts @@ -1,6 +1,5 @@ import { EMBER_STRICT_MODE } from '@ember/canary-features'; import { assert, deprecate } from '@ember/debug'; -import { assign } from '@ember/polyfills'; import { AST, ASTPlugin, ASTPluginEnvironment, Syntax } from '@glimmer/syntax'; import { RESOLUTION_MODE_TRANSFORMS, STRICT_MODE_TRANSFORMS } from '../plugins/index'; import { EmberPrecompileOptions, PluginFunc } from '../types'; @@ -14,7 +13,7 @@ function malformedComponentLookup(string: string) { export function buildCompileOptions(_options: EmberPrecompileOptions): EmberPrecompileOptions { let moduleName = _options.moduleName; - let options: EmberPrecompileOptions = assign( + let options: EmberPrecompileOptions = Object.assign( { meta: {}, isProduction: false, plugins: { ast: [] } }, _options, { diff --git a/packages/ember-testing/lib/events.js b/packages/ember-testing/lib/events.js index 3cf439c6876..48cd654e1c1 100644 --- a/packages/ember-testing/lib/events.js +++ b/packages/ember-testing/lib/events.js @@ -1,5 +1,4 @@ import { run } from '@ember/runloop'; -import { assign } from '@ember/polyfills'; import isFormControl from './helpers/-is-form-control'; const DEFAULT_EVENT_OPTIONS = { canBubble: true, cancelable: true }; @@ -62,7 +61,7 @@ export function fireEvent(element, type, options = {}) { clientX: x, clientY: y, }; - event = buildMouseEvent(type, assign(simulatedCoordinates, options)); + event = buildMouseEvent(type, Object.assign(simulatedCoordinates, options)); } else { event = buildBasicEvent(type, options); } @@ -80,7 +79,7 @@ function buildBasicEvent(type, options = {}) { delete options.cancelable; event.initEvent(type, bubbles, cancelable); - assign(event, options); + Object.assign(event, options); return event; } @@ -88,7 +87,7 @@ function buildMouseEvent(type, options = {}) { let event; try { event = document.createEvent('MouseEvents'); - let eventOpts = assign({}, DEFAULT_EVENT_OPTIONS, options); + let eventOpts = Object.assign({}, DEFAULT_EVENT_OPTIONS, options); event.initMouseEvent( type, eventOpts.canBubble, @@ -116,7 +115,7 @@ function buildKeyboardEvent(type, options = {}) { let event; try { event = document.createEvent('KeyEvents'); - let eventOpts = assign({}, DEFAULT_EVENT_OPTIONS, options); + let eventOpts = Object.assign({}, DEFAULT_EVENT_OPTIONS, options); event.initKeyEvent( type, eventOpts.canBubble, diff --git a/packages/ember-testing/tests/helpers_test.js b/packages/ember-testing/tests/helpers_test.js index f2902095bb5..729fd6da46f 100644 --- a/packages/ember-testing/tests/helpers_test.js +++ b/packages/ember-testing/tests/helpers_test.js @@ -1,4 +1,4 @@ -import { moduleFor, AutobootApplicationTestCase, isIE11, runTask } from 'internal-test-helpers'; +import { moduleFor, AutobootApplicationTestCase, runTask } from 'internal-test-helpers'; import { Route } from '@ember/-internals/routing'; import Controller from '@ember/controller'; @@ -343,20 +343,7 @@ if (!jQueryDisabled) { wrapper.addEventListener('mousedown', (e) => events.push(e.type)); wrapper.addEventListener('mouseup', (e) => events.push(e.type)); wrapper.addEventListener('click', (e) => events.push(e.type)); - wrapper.addEventListener('focusin', (e) => { - // IE11 _sometimes_ triggers focusin **twice** in a row - // (we believe this is when it is under higher load) - // - // the goal here is to only push a single focusin when running on - // IE11 - if (isIE11) { - if (events[events.length - 1] !== 'focusin') { - events.push(e.type); - } - } else { - events.push(e.type); - } - }); + wrapper.addEventListener('focusin', (e) => events.push(e.type)); }, }) ); diff --git a/packages/ember/index.js b/packages/ember/index.js index b8f3b854bcd..f0d1f8cab34 100644 --- a/packages/ember/index.js +++ b/packages/ember/index.js @@ -16,7 +16,6 @@ import { import * as EmberDebug from '@ember/debug'; import { assert, captureRenderTree, deprecate } from '@ember/debug'; import Backburner from 'backburner'; -import Logger from '@ember/-internals/console'; import Controller, { inject as injectController } from '@ember/controller'; import ControllerMixin from '@ember/controller/lib/controller_mixin'; import { @@ -100,7 +99,7 @@ import ApplicationInstance from '@ember/application/instance'; import Engine from '@ember/engine'; import EngineInstance from '@ember/engine/instance'; import { assign, merge } from '@ember/polyfills'; -import { LOGGER, EMBER_EXTEND_PROTOTYPES, JQUERY_INTEGRATION } from '@ember/deprecated-features'; +import { EMBER_EXTEND_PROTOTYPES, JQUERY_INTEGRATION } from '@ember/deprecated-features'; import { templateOnlyComponent, @@ -136,22 +135,6 @@ import { const Ember = {}; -import { isIE } from '@ember/-internals/browser-environment'; - -deprecate( - 'Internet Explorer 11 will no longer be supported in the next major version of Ember. For details on the new browser support policy, see the official documentation: http://emberjs.com/browser-support', - !isIE, - { - id: '3-0-browser-support-policy', - url: 'https://deprecations.emberjs.com/v3.x#toc_3-0-browser-support-policy', - until: '4.0.0', - for: 'ember-source', - since: { - enabled: '3.26.0', - }, - } -); - Ember.isNamespace = true; Ember.toString = function () { return 'Ember'; @@ -376,11 +359,6 @@ Object.defineProperty(Ember, 'testing', { Ember._Backburner = Backburner; -// ****@ember/-internals/console**** -if (LOGGER) { - Ember.Logger = Logger; -} - // ****@ember/-internals/runtime**** Ember.A = A; Ember.String = { diff --git a/packages/ember/tests/integration/multiple-app-test.js b/packages/ember/tests/integration/multiple-app-test.js index a9713bb7402..b151999936a 100644 --- a/packages/ember/tests/integration/multiple-app-test.js +++ b/packages/ember/tests/integration/multiple-app-test.js @@ -2,7 +2,6 @@ import { moduleFor, ApplicationTestCase, runTask } from 'internal-test-helpers'; import Application from '@ember/application'; import { Component } from '@ember/-internals/glimmer'; import { getOwner } from '@ember/-internals/owner'; -import { assign } from '@ember/polyfills'; import { resolve } from 'rsvp'; moduleFor( @@ -20,7 +19,7 @@ moduleFor( } get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { rootElement: '#one', router: null, }); @@ -29,7 +28,7 @@ moduleFor( createSecondApplication(options) { let { applicationOptions } = this; let secondApplicationOptions = { rootElement: '#two' }; - let myOptions = assign(applicationOptions, secondApplicationOptions, options); + let myOptions = Object.assign(applicationOptions, secondApplicationOptions, options); this.secondApp = Application.create(myOptions); this.secondResolver = this.secondApp.__registry__.resolver; return this.secondApp; diff --git a/packages/ember/tests/reexports_test.js b/packages/ember/tests/reexports_test.js index 4bccf517f6b..8960a2a1e1a 100644 --- a/packages/ember/tests/reexports_test.js +++ b/packages/ember/tests/reexports_test.js @@ -519,9 +519,6 @@ let allExports = [ // @ember/-internals/meta ['meta', '@ember/-internals/meta'], - // @ember/-internals/console - ['Logger', '@ember/-internals/console', 'default'], - // @ember/-internals/views ['ViewUtils.isSimpleClick', '@ember/-internals/views', 'isSimpleClick'], ['ViewUtils.getElementView', '@ember/-internals/views', 'getElementView'], diff --git a/packages/internal-test-helpers/index.js b/packages/internal-test-helpers/index.js index bad3852df84..5a287432277 100644 --- a/packages/internal-test-helpers/index.js +++ b/packages/internal-test-helpers/index.js @@ -38,5 +38,5 @@ export { ModuleBasedResolver as ModuleBasedTestResolver, } from './lib/test-resolver'; -export { isIE11, isEdge } from './lib/browser-detect'; +export { isEdge } from './lib/browser-detect'; export { verifyInjection, verifyRegistration } from './lib/registry-check'; diff --git a/packages/internal-test-helpers/lib/apply-mixins.js b/packages/internal-test-helpers/lib/apply-mixins.js index 08cc8733d9c..0f8071c65cd 100644 --- a/packages/internal-test-helpers/lib/apply-mixins.js +++ b/packages/internal-test-helpers/lib/apply-mixins.js @@ -1,4 +1,3 @@ -import { assign } from '@ember/polyfills'; import getAllPropertyNames from './get-all-property-names'; function isGenerator(mixin) { @@ -14,10 +13,10 @@ export default function applyMixins(TestClass, ...mixins) { mixin = {}; generator.cases.forEach((value, idx) => { - assign(mixin, generator.generate(value, idx)); + Object.assign(mixin, generator.generate(value, idx)); }); - assign(TestClass.prototype, mixin); + Object.assign(TestClass.prototype, mixin); } else if (typeof mixinOrGenerator === 'function') { let properties = getAllPropertyNames(mixinOrGenerator); mixin = new mixinOrGenerator(); @@ -29,7 +28,7 @@ export default function applyMixins(TestClass, ...mixins) { }); } else { mixin = mixinOrGenerator; - assign(TestClass.prototype, mixin); + Object.assign(TestClass.prototype, mixin); } }); diff --git a/packages/internal-test-helpers/lib/browser-detect.ts b/packages/internal-test-helpers/lib/browser-detect.ts index 1d8e7d0c5a5..cf352934c41 100644 --- a/packages/internal-test-helpers/lib/browser-detect.ts +++ b/packages/internal-test-helpers/lib/browser-detect.ts @@ -1,11 +1 @@ -// `window.ActiveXObject` is "falsey" in IE11 (but not `undefined` or `false`) -// `"ActiveXObject" in window` returns `true` in all IE versions -// only IE11 will pass _both_ of these conditions - -declare global { - interface Window { - ActiveXObject: any; - } -} -export const isIE11 = !window.ActiveXObject && 'ActiveXObject' in window; export const isEdge = /Edge/.test(navigator.userAgent); diff --git a/packages/internal-test-helpers/lib/system/synthetic-events.js b/packages/internal-test-helpers/lib/system/synthetic-events.js index 79b5c10fd38..cfcda7ab534 100644 --- a/packages/internal-test-helpers/lib/system/synthetic-events.js +++ b/packages/internal-test-helpers/lib/system/synthetic-events.js @@ -1,8 +1,6 @@ import { run } from '@ember/runloop'; /* globals Element */ -import { assign } from '@ember/polyfills'; - const DEFAULT_EVENT_OPTIONS = { canBubble: true, cancelable: true }; const KEYBOARD_EVENT_TYPES = ['keydown', 'keypress', 'keyup']; const MOUSE_EVENT_TYPES = [ @@ -112,7 +110,7 @@ export function fireEvent(element, type, options = {}) { clientX: x, clientY: y, }; - event = buildMouseEvent(type, assign(simulatedCoordinates, options)); + event = buildMouseEvent(type, Object.assign(simulatedCoordinates, options)); } else { event = buildBasicEvent(type, options); } @@ -124,7 +122,7 @@ export function fireEvent(element, type, options = {}) { function buildBasicEvent(type, options = {}) { let event = document.createEvent('Events'); event.initEvent(type, true, true); - assign(event, options); + Object.assign(event, options); return event; } @@ -132,7 +130,7 @@ function buildMouseEvent(type, options = {}) { let event; try { event = document.createEvent('MouseEvents'); - let eventOpts = assign({}, DEFAULT_EVENT_OPTIONS, options); + let eventOpts = Object.assign({}, DEFAULT_EVENT_OPTIONS, options); event.initMouseEvent( type, @@ -161,7 +159,7 @@ function buildKeyboardEvent(type, options = {}) { let event; try { event = document.createEvent('KeyEvents'); - let eventOpts = assign({}, DEFAULT_EVENT_OPTIONS, options); + let eventOpts = Object.assign({}, DEFAULT_EVENT_OPTIONS, options); event.initKeyEvent( type, eventOpts.canBubble, diff --git a/packages/internal-test-helpers/lib/test-cases/abstract.js b/packages/internal-test-helpers/lib/test-cases/abstract.js index 50f0ec37d63..e9f0a81e4bf 100644 --- a/packages/internal-test-helpers/lib/test-cases/abstract.js +++ b/packages/internal-test-helpers/lib/test-cases/abstract.js @@ -1,7 +1,5 @@ /* global Element */ -import { assign } from '@ember/polyfills'; - import NodeQuery from '../node-query'; import equalInnerHTML from '../equal-inner-html'; import equalTokens from '../equal-tokens'; @@ -162,7 +160,11 @@ export default class AbstractTestCase { node, { ElementType = HTMLElement, tagName = 'div', attrs = null, content = null } ) { - attrs = assign({}, { id: regex(/^ember\d*$/), class: classes('ember-view') }, attrs || {}); + attrs = Object.assign( + {}, + { id: regex(/^ember\d*$/), class: classes('ember-view') }, + attrs || {} + ); this.assertElement(node, { ElementType, tagName, attrs, content }); } diff --git a/packages/internal-test-helpers/lib/test-cases/application.js b/packages/internal-test-helpers/lib/test-cases/application.js index 53ce885d1ce..3bd19d14c2e 100644 --- a/packages/internal-test-helpers/lib/test-cases/application.js +++ b/packages/internal-test-helpers/lib/test-cases/application.js @@ -1,7 +1,6 @@ import TestResolverApplicationTestCase from './test-resolver-application'; import Application from '@ember/application'; import { Router } from '@ember/-internals/routing'; -import { assign } from '@ember/polyfills'; import { runTask, runLoopSettled } from '../run'; @@ -24,7 +23,7 @@ export default class ApplicationTestCase extends TestResolverApplicationTestCase } get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { autoboot: false, }); } diff --git a/packages/internal-test-helpers/lib/test-cases/autoboot-application.js b/packages/internal-test-helpers/lib/test-cases/autoboot-application.js index a1b09057290..230e825ea7b 100644 --- a/packages/internal-test-helpers/lib/test-cases/autoboot-application.js +++ b/packages/internal-test-helpers/lib/test-cases/autoboot-application.js @@ -1,11 +1,10 @@ import TestResolverApplicationTestCase from './test-resolver-application'; import Application from '@ember/application'; -import { assign } from '@ember/polyfills'; import { Router } from '@ember/-internals/routing'; export default class AutobootApplicationTestCase extends TestResolverApplicationTestCase { createApplication(options, MyApplication = Application) { - let myOptions = assign(this.applicationOptions, options); + let myOptions = Object.assign(this.applicationOptions, options); let application = (this.application = MyApplication.create(myOptions)); this.resolver = application.__registry__.resolver; diff --git a/packages/internal-test-helpers/lib/test-cases/default-resolver-application.js b/packages/internal-test-helpers/lib/test-cases/default-resolver-application.js index 24d678a5bf6..83e9559fbcd 100644 --- a/packages/internal-test-helpers/lib/test-cases/default-resolver-application.js +++ b/packages/internal-test-helpers/lib/test-cases/default-resolver-application.js @@ -2,7 +2,6 @@ import AbstractApplicationTestCase from './abstract-application'; import DefaultResolver from '@ember/application/globals-resolver'; import Application from '@ember/application'; import { setTemplates, setTemplate } from '@ember/-internals/glimmer'; -import { assign } from '@ember/polyfills'; import { Router } from '@ember/-internals/routing'; import { runTask } from '../run'; @@ -26,7 +25,7 @@ export default class DefaultResolverApplicationTestCase extends AbstractApplicat } get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { name: 'TestApp', autoboot: false, Resolver: DefaultResolver, diff --git a/packages/internal-test-helpers/lib/test-cases/rendering.js b/packages/internal-test-helpers/lib/test-cases/rendering.js index b29f6ffdad3..3760da0de54 100644 --- a/packages/internal-test-helpers/lib/test-cases/rendering.js +++ b/packages/internal-test-helpers/lib/test-cases/rendering.js @@ -1,4 +1,3 @@ -import { assign } from '@ember/polyfills'; import { compile } from 'ember-template-compiler'; import { EventDispatcher } from '@ember/-internals/views'; import { helper, Helper, Component, _resetRenderers } from '@ember/-internals/glimmer'; @@ -122,7 +121,7 @@ export default class RenderingTestCase extends AbstractTestCase { }) ); - let attrs = assign({}, context, { + let attrs = Object.assign({}, context, { tagName: '', layoutName: '-top-level', }); diff --git a/packages/internal-test-helpers/lib/test-cases/router-non-application.js b/packages/internal-test-helpers/lib/test-cases/router-non-application.js index f59a298f98a..61faf22da91 100644 --- a/packages/internal-test-helpers/lib/test-cases/router-non-application.js +++ b/packages/internal-test-helpers/lib/test-cases/router-non-application.js @@ -1,4 +1,3 @@ -import { assign } from '@ember/polyfills'; import { compile } from 'ember-template-compiler'; import { EventDispatcher } from '@ember/-internals/views'; import { Component, _resetRenderers } from '@ember/-internals/glimmer'; @@ -105,7 +104,7 @@ export default class RouterNonApplicationTestCase extends AbstractTestCase { }) ); - let attrs = assign({}, context, { + let attrs = Object.assign({}, context, { tagName: '', layoutName: '-top-level', }); diff --git a/packages/internal-test-helpers/lib/test-cases/test-resolver-application.js b/packages/internal-test-helpers/lib/test-cases/test-resolver-application.js index b8d5e87af45..dc0f25387dc 100644 --- a/packages/internal-test-helpers/lib/test-cases/test-resolver-application.js +++ b/packages/internal-test-helpers/lib/test-cases/test-resolver-application.js @@ -1,11 +1,10 @@ import AbstractApplicationTestCase from './abstract-application'; import { ModuleBasedResolver } from '../test-resolver'; import { Component } from '@ember/-internals/glimmer'; -import { assign } from '@ember/polyfills'; export default class TestResolverApplicationTestCase extends AbstractApplicationTestCase { get applicationOptions() { - return assign(super.applicationOptions, { + return Object.assign(super.applicationOptions, { Resolver: ModuleBasedResolver, }); } diff --git a/testem.browserstack.js b/testem.browserstack.js index 93dda456e15..2841d5dab4e 100644 --- a/testem.browserstack.js +++ b/testem.browserstack.js @@ -37,24 +37,6 @@ const BrowserStackLaunchers = { ], protocol: 'browser', }, - BS_IE_11: { - exe: 'node_modules/.bin/browserstack-launch', - args: [ - '--os', - 'Windows', - '--osv', - '10', - '--b', - 'ie', - '--bv', - '11.0', - '-t', - '1500', - '--u', - '', - ], - protocol: 'browser', - }, }; module.exports = { diff --git a/yarn.lock b/yarn.lock index 3b5c7486188..0097dbd8538 100644 --- a/yarn.lock +++ b/yarn.lock @@ -955,8 +955,6 @@ version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-for-of@^7.9.0": version "7.9.0" @@ -1112,13 +1110,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-object-assign@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.8.3.tgz#dc3b8dd50ef03837868a37b7df791f64f288538e" - integrity sha512-i3LuN8tPDqUCRFu3dkzF2r1Nx0jp4scxtm7JxtIqI9he9Vk20YD+/zshdzR9JLsoBMlJlNR82a62vQExNEVx/Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-object-super@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" @@ -5281,9 +5272,6 @@ find-babel-config@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== - dependencies: - json5 "^0.5.1" - path-exists "^3.0.0" find-index@^1.1.0: version "1.1.0"