| Index: src/flag-definitions.h
 | 
| diff --git a/src/flag-definitions.h b/src/flag-definitions.h
 | 
| index b93d03b59c1118d3967e63e72397ee43cc224a17..3f0f7ec4fe1dd3b42fa236f63c10c41ec8706b17 100644
 | 
| --- a/src/flag-definitions.h
 | 
| +++ b/src/flag-definitions.h
 | 
| @@ -175,9 +175,12 @@ DEFINE_bool(harmony_modules, false,
 | 
|              "enable harmony modules (implies block scoping)")
 | 
|  DEFINE_bool(harmony_symbols, false,
 | 
|              "enable harmony symbols (a.k.a. private names)")
 | 
| +DEFINE_bool(harmony_promises, false, "enable harmony promises")
 | 
|  DEFINE_bool(harmony_proxies, false, "enable harmony proxies")
 | 
|  DEFINE_bool(harmony_collections, false,
 | 
| -            "enable harmony collections (sets, maps)")
 | 
| +            "enable harmony collections (sets, maps, weak sets, weak maps)")
 | 
| +DEFINE_bool(harmony_weak_collections, false,
 | 
| +            "enable only harmony weak collections (weak sets and maps)")
 | 
|  DEFINE_bool(harmony_generators, false, "enable harmony generators")
 | 
|  DEFINE_bool(harmony_iteration, false, "enable harmony iteration (for-of)")
 | 
|  DEFINE_bool(harmony_numeric_literals, false,
 | 
| @@ -197,10 +200,14 @@ DEFINE_implication(harmony, harmony_iteration)
 | 
|  DEFINE_implication(harmony, harmony_numeric_literals)
 | 
|  DEFINE_implication(harmony, harmony_strings)
 | 
|  DEFINE_implication(harmony, harmony_arrays)
 | 
| +DEFINE_implication(harmony_collections, harmony_weak_collections)
 | 
| +DEFINE_implication(harmony_promises, harmony_weak_collections)
 | 
|  DEFINE_implication(harmony_modules, harmony_scoping)
 | 
|  
 | 
|  DEFINE_implication(harmony, es_staging)
 | 
|  DEFINE_implication(es_staging, harmony_maths)
 | 
| +DEFINE_implication(es_staging, harmony_promises)
 | 
| +DEFINE_implication(es_staging, harmony_weak_collections)
 | 
|  
 | 
|  // Flags for experimental implementation features.
 | 
|  DEFINE_bool(packed_arrays, true, "optimizes arrays that have no holes")
 | 
| 
 |