# Chapter 14. Metaprogramming ## 14.1 Property Attributes ## 14.2 Object Extensibility ## 14.3 The prototype Attribute ## 14.4 Well-Known Symbols ### 14.4.1 Symbol.iterator and Symbol.asyncIterator ### 14.4.2 Symbol.hasInstance ### 14.4.3 Symbol.toStringTag ### 14.4.4 Symbol.species ### 14.4.5 Symbol.isConcatSpreadable ### 14.4.6 Pattern-Matching Symbols ### 14.4.7 Symbol.toPrimitive ### 14.4.8 Symbol.unscopables ## 14.5 Template Tags ## 14.6 The Reflect API ## 14.7 Proxy Objects ### 14.7.1 Proxy Invariants