@@ -266,6 +266,79 @@ describe('when used with @babel/preset-env', () => {
266266
267267 expect ( actual ) . toEqual ( `export default Ember.Application.extend({});` ) ;
268268 } ) ;
269+
270+ it ( 'does not have issues with ember-google-maps style helper' , ( ) => {
271+ let source = `
272+ import { computed, getProperties } from '@ember/object';
273+ import ObjectProxy from '@ember/object/proxy';
274+ import PromiseProxyMixin from '@ember/object/promise-proxy-mixin';
275+
276+ let ObjectPromiseProxy = ObjectProxy.extend(PromiseProxyMixin);
277+
278+ let position = computed('lat', 'lng', function() {
279+ const { lat, lng } = getProperties(this, 'lat', 'lng');
280+ return (lat && lng) ? new google.maps.LatLng(lat, lng) : undefined;
281+ });
282+
283+ function position2() {
284+ return computed('lat', 'lng', function() {
285+ const { lat, lng } = getProperties(this, 'lat', 'lng');
286+ return (lat && lng) ? new google.maps.LatLng(lat, lng) : undefined;
287+ });
288+ }
289+
290+ function computedPromise(...args) {
291+ let func = args.pop();
292+ return computed(...args, function() {
293+ return ObjectPromiseProxy.create({
294+ promise: func.apply(this)
295+ });
296+ });
297+ }
298+
299+ export { computedPromise, position };
300+ ` ;
301+
302+ let actual = transformWithPresetEnv ( source ) ;
303+
304+ expect ( actual ) . toEqual (
305+ `var ObjectPromiseProxy = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin);
306+ var position = Ember.computed('lat', 'lng', function () {
307+ var _Ember$getProperties = Ember.getProperties(this, 'lat', 'lng'),
308+ lat = _Ember$getProperties.lat,
309+ lng = _Ember$getProperties.lng;
310+
311+ return lat && lng ? new google.maps.LatLng(lat, lng) : undefined;
312+ });
313+
314+ function position2() {
315+ return Ember.computed('lat', 'lng', function () {
316+ var _Ember$getProperties2 = Ember.getProperties(this, 'lat', 'lng'),
317+ lat = _Ember$getProperties2.lat,
318+ lng = _Ember$getProperties2.lng;
319+
320+ return lat && lng ? new google.maps.LatLng(lat, lng) : undefined;
321+ });
322+ }
323+
324+ function computedPromise() {
325+ var _Ember;
326+
327+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
328+ args[_key] = arguments[_key];
329+ }
330+
331+ var func = args.pop();
332+ return (_Ember = Ember).computed.apply(_Ember, args.concat([function () {
333+ return ObjectPromiseProxy.create({
334+ promise: func.apply(this)
335+ });
336+ }]));
337+ }
338+
339+ export { computedPromise, position };`
340+ ) ;
341+ } ) ;
269342} ) ;
270343
271344describe ( 'when used with typescript' , ( ) => {
0 commit comments