const keywords = {
  'this': true,
  'function': true,
  'if': true,
  'return': true,
  'var': true,
  'else': true,
  'for': true,
  'new': true,
  'in': true,
  'typeof': true,
  'while': true,
  'case': true,
  'break': true,
  'try': true,
  'catch': true,
  'delete': true,
  'throw': true,
  'switch': true,
  'continue': true,
  'default': true,
  'instanceof': true,
  'do': true,
  'void': true,
  'finally': true,
  'with': true,
  'debugger': true,
  'implements': true,
  'interface': true,
  'package': true,
  'private': true,
  'protected': true,
  'public': true,
  'static': true,
  'class': true,
  'enum': true,
  'export': true,
  'extends': true,
  'import': true,
  'super': true,
  'true': true,
  'false': true,
  'null': true,
  'abstract': true,
  'boolean': true,
  'byte': true,
  'char': true,
  'const': true,
  'double': true,
  'final': true,
  'float': true,
  'goto': true,
  'int': true,
  'long': true,
  'native': true,
  'short': true,
  'synchronized': true,
  'throws': true,
  'transient': true,
  'volatile': true,
};

module.exports = function(file, api) {
  const j = api.jscodeshift;
  const {expression, statement, statements} = j.template;

  return j(file.source)
    .find(j.MemberExpression, {computed: true, property: {type: 'Literal'}})
    .filter(p => !!keywords[p.value.property.value])
    .replaceWith(
      p => j.memberExpression(p.value.object, j.identifier(p.value.property.value), false)
    )
    .toSource();
};

@@ -1184,22 +1184,28 @@
 ate;%0A%0A  
-return
+const root =
  j(file.
@@ -1211,16 +1211,45 @@
 .source)
+;%0A  const didTransform = root
 %0A    .fi
@@ -1419,16 +1419,25 @@
 ression(
+%0A        
 p.value.
@@ -1443,16 +1443,24 @@
 .object,
+%0A       
  j.ident
@@ -1493,26 +1493,79 @@
 ue),
- false)%0A    )%0A    
+%0A        false%0A      )%0A    )%0A    .size();%0A%0A  return didTransform ? root
 .toS
@@ -1571,13 +1571,20 @@
 Source()
+ : null
 ;%0A%7D;%0A

Update the computed props transform.