anchor.diff:  .l-main-section#E
   
   :marked
  +  ## ECMA스크립트 (ECMAScript)
     ## ECMAScript
   .l-sub-section
     :marked
  +    [공식적인 자바스크립트 언어 명세](https://en.wikipedia.org/wiki/ECMAScript)를 말합니다.
  +    
       The [official JavaScript language specification](https://en.wikipedia.org/wiki/ECMAScript).
   
  +    가장 최근에 정의된 자바스크립트 버전은 [ECMA스크립트 2016](http://www.ecma-international.org/ecma-262/7.0/) ("ES2016" 또는 "ES7"라고도 함)입니다.
  +    많은 Angular 2 개발자들은 이 버전의 자바스크립트를 사용하거나 또는 이 버전과 호환이 되도록 지원하고자 하는
  +    [타입스크립트](#typesScript)와 같은 파생언어들로 애플리케이션을 작성하게 될 것입니다.
  +    
       The latest approved version of JavaScript is
       [ECMAScript 2016](http://www.ecma-international.org/ecma-262/7.0/)
       (AKA "ES2016" or "ES7") and many Angular 2 developers will write their applications
       either in this version of the language or a dialect that strives to be
       compatible with it such as [TypeScript](#typesScript).
   
  +    대부분의 모던 브라우저들은 오래된 "ECMAScript 5" (AKA ES5) 표준만을 지원합니다.
  +    ES2016, ES2015 또는 파생언어로 작성된 애플리케이션들은 ES5 자바스크립트로 "[트랜스파일](#transpile)"되어야 합니다.
  +    
       Most modern browsers today only support the much older "ECMAScript 5" (AKA ES5) standard.
       Applications written in ES2016, ES2015 or one of their dialects must be "[transpiled](#transpile)"
       to ES5 JavaScript.
   
  +    물론, Angular 2로 개발할 때 ES5를 사용하기를 선택할 수도 있습니다.
  +    
       Angular 2 developers may choose to write in ES5 directly.
   
   :marked
     ## ES2015
  -.l-sub-section
  -  :marked
  +  ## ES2015
  +.l-sub-section
  +  :marked
  +    [ECMAScript](#ecmascript) 2015의 약어입니다.
  +    
       Short hand for [ECMAScript](#ecmascript) 2015.
   :marked
     ## ES6
  -.l-sub-section
  -  :marked
  +  ## ES6
  +.l-sub-section
  +  :marked
  +    [ECMAScript](#ecmascript) 2015의 약어입니다.
  +    
       Short hand for [ECMAScript](#ecmascript) 2015.
   :marked
     ## ES5
  -.l-sub-section
  -  :marked
  +  ## ES5
  +.l-sub-section
  +  :marked
  +    [ECMAScript](#ecmascript) 5의 약어로, 대부분의 모던 브라우저들이 지원하는 자바스크립트 버전입니다.
  +    [ECMAScript](#ecmascript)를 참조하세요.
  +    
       Short hand for [ECMAScript](#ecmascript) 5, the version of JavaScript run by most modern browsers.
       See [ECMAScript](#ecmascript).
   
  
positive.code: 
  +ifDocsFor('ts|js')
    :marked
      ## Barrel
    .l-sub-section
      :marked
        A barrel is a way to *rollup exports* from several ES2015 modules into a single convenience ES2015 module.
        The barrel itself is an ES2015 module file that re-exports *selected* exports of other ES2015 modules.
  
        Imagine three ES2015 modules in a `heroes` folder:
      code-example.
  
negative.code:   a#decorator
    a#decoration
    :marked
      ## 데코레이터 (Decorator) |  데코레이션 (Decoration)
      ## Decorator | Decoration
    .l-sub-section
      block decorator-defn
        :marked
          데코레이터는 클래스와 그에 속한 프로퍼티와 메소드, 그리고 함수 인자들에 메타데이터를 적용하는 **함수**입니다.
          
          A Decorator is a **function** that adds metadata to a class, its members (properties, methods) and function arguments.
  
          데코레이터는 타입스크립트에 포함되어 있고 ES2016 (AKA ES7)에 제안된 자바스크립트 [기능](https://github.com/wycats/javascript-decorators)입니다.
          
          Decorators are a JavaScript language [feature](https://github.com/wycats/javascript-decorators), implemented in TypeScript and proposed for ES2016 (AKA ES7).
  
          Angular에서는 데코레이터를 적용대상의 바로 왼편 또는 윗편에 둡니다.
          
          We apply a decorator by positioning it
          immediately above or to the left of the thing it decorates.
  
          Angular에는 애플리케이션 파트와 상호작동하도록 도와주는 자체적인 데코레이터 세트가 있습니다.
          다음은 클래스를 Angular [컴포넌트](#component)로 정의하는 `@Component` 데코레이터와
          해당 컴포넌트의 프로퍼티에 적용된 `@Input` 데코레이터의 예시입니다.
          여기서 생략된 `@Component`의 오브젝트 인자는 본래 적절한 컴포넌트 메타데이터를 가집니다.
          ```
          @Component({...})
          export class AppComponent {
            constructor(@Inject('SpecialFoo') public foo:Foo) {}
            @Input() name:string;
          }
          ```
          데코레이터의 유효범위는 그가 적용된 대상에 한정됩니다.
          어떤 데코레이터도 파일에서 그 아래에 위치한 클래스들에 새어나가 영향을 미치지 않습니다.
                 
          Angular has its own set of decorators to help it interoperate with our application parts.
          Here is an example of a `@Component` decorator that identifies a
          class as an Angular [Component](#component) and an `@Input` decorator applied to a property
  