From 9676056f0863bddbb67b774ea0a4035a028e4ed0 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 04:50:23 +1100 Subject: [PATCH] add note about member expression resolution --- src/babel/transformation/transformers/es6/classes.js | 2 +- src/babel/traversal/path/index.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/babel/transformation/transformers/es6/classes.js b/src/babel/transformation/transformers/es6/classes.js index edcb986330..46126e45dd 100644 --- a/src/babel/transformation/transformers/es6/classes.js +++ b/src/babel/transformation/transformers/es6/classes.js @@ -209,7 +209,7 @@ class ClassTransformer { } // we have no constructor, we have a super, and the super doesn't appear to be falsy - if (!this.hasConstructor && this.hasSuper && this.path.get("superClass").evaluateTruthy() !== false) { + if (!this.hasConstructor && this.hasSuper) { var helperName = "class-super-constructor-call"; if (this.isLoose) helperName += "-loose"; constructor.body.body.push(util.template(helperName, { diff --git a/src/babel/traversal/path/index.js b/src/babel/traversal/path/index.js index f5970b7cf4..64fed848f0 100644 --- a/src/babel/traversal/path/index.js +++ b/src/babel/traversal/path/index.js @@ -277,9 +277,12 @@ export default class TraversalPath { if (binding.path === this) { return this; } else { - return binding.path.resolve();; + return binding.path.resolve(); } } else if (this.isMemberExpression()) { + // this is dangerous, as non-direct target assignments will mutate it's state + // making this resolution inaccurate + var targetKey = this.toComputedKey(); if (!t.isLiteral(targetKey)) return; var targetName = targetKey.value;