# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Args for all uses of the closure compiler
common_closure_args = [
  "extra_annotation_name=attribute",
  "extra_annotation_name=demo",
  "extra_annotation_name=element",
  "extra_annotation_name=group",
  "extra_annotation_name=hero",
  "extra_annotation_name=homepage",
  "extra_annotation_name=status",
  "extra_annotation_name=submodule",
]

# Additional closure args for performing full checks.
checking_closure_args = [
  "compilation_level=SIMPLE_OPTIMIZATIONS",

  "jscomp_error=accessControls",
  "jscomp_error=ambiguousFunctionDecl",
  "jscomp_error=checkTypes",
  "jscomp_error=checkVars",
  "jscomp_error=constantProperty",
  "jscomp_error=deprecated",
  "jscomp_error=externsValidation",
  "jscomp_error=globalThis",
  "jscomp_error=invalidCasts",
  "jscomp_error=missingProperties",
  "jscomp_error=missingReturn",
  "jscomp_error=nonStandardJsDocs",
  "jscomp_error=suspiciousCode",
  "jscomp_error=undefinedNames",
  "jscomp_error=undefinedVars",
  "jscomp_error=unknownDefines",
  "jscomp_error=uselessCode",
  "jscomp_error=visibility",

  "language_in=ECMASCRIPT_2017",
  "language_out=ECMASCRIPT5_STRICT",

  "chrome_pass",
  "polymer_pass",

  "jscomp_off=duplicate",
]

# Additional closure arguments for minifying
minifying_closure_args = [
  "compilation_level=WHITESPACE_ONLY",

  "language_in=ECMASCRIPT_NEXT",
  "language_out=ECMASCRIPT6",

  # TODO(wychen): turn on 'use strict'. crbug.com/729689
  "emit_use_strict=false",
]

# For compatibility with old uses.
default_closure_args = common_closure_args + checking_closure_args

default_disabled_closure_args = [ "jscomp_off=duplicate" ]
