| Index: src/scopes.cc
|
| diff --git a/src/scopes.cc b/src/scopes.cc
|
| index 319aca518ed69187dc29cc817c58f9266b2a8700..ce06976c4c9d2369d208d41ccc53a9431f9cba8e 100644
|
| --- a/src/scopes.cc
|
| +++ b/src/scopes.cc
|
| @@ -593,7 +593,11 @@ class VarAndOrder {
|
| Variable* var() const { return var_; }
|
| int order() const { return order_; }
|
| static int Compare(const VarAndOrder* a, const VarAndOrder* b) {
|
| - return a->order_ - b->order_;
|
| + // Sort lexical variables to the end of the list.
|
| + bool a_is_lexical = IsLexicalVariableMode(a->var()->mode());
|
| + bool b_is_lexical = IsLexicalVariableMode(b->var()->mode());
|
| + if (a_is_lexical == b_is_lexical) return a->order_ - b->order_;
|
| + return a_is_lexical ? 1 : -1;
|
| }
|
|
|
| private:
|
|
|