Skip to content

Closure Rules v0.4.1

Compare
Choose a tag to compare
@jart jart released this 17 Feb 04:55
· 3 commits to 0.4 since this release

This is a maintenance release (i.e. not tracking HEAD) which upgrades the following components:

  • Closure Compiler v20161024 → v20170124 (Release notes)
    • Improved optimization of modules with named exports.
    • Several small improvements to compile-time performance.
    • Add a check that super() is called before accessing this.
    • Make type-based optimizations safer about null/undefined.
    • Improved handling of parameterized object types in NTI (Object).
    • In NTI, allow any IArrayLike to be used with .apply function calls.
    • New type inference supports @abstract.
    • CommonJS modules now use the node module resolution algorithm and support using JSON files as module source.
    • Bugfixes in DisambiguateProperties for interface inheritance and implicit use of interfaces.
  • Closure Library v20161024 → v20170124 (Release notes: [1] [2])
    • New Additions
      • Add goog.dom.safe.setIframeSrcdoc() to set srcdoc from a SafeHtml
      • Added getRotation() and setRotation() to goog.style.transform.
      • Added clearCache method on goog.ui.ac.CachingMatcher.
      • goog.html.SafeHtml.createScript() to create script tags.
      • Add goog.testing.MethodMock.fromObjectPropertyString.
      • Added goog.Math.Long.isStringInRange that returns boolean value for if string is within bounds of a Long.
      • Add site-local and link-local IP checks.
      • Added goog.function.rateLimit(), to complement debounce() and throttle().
      • Added optional BrowseEvent parameter to constructor of DragDropEvent. This parameter is set within AbstractDragDrop#endDrag.
      • Enhance MockIframeIo to simulate response text, and make active state bit and last URI actually work.
      • TrustedResourceUrl.format() no longer required a first fixed path component.
    • Backwards Incompatible Changes
      • goog.messaging.PortChannel now rejects wildcard domains as the peer origin.
      • Moved getAllProperties from MockUtil to the Object utility.
    • Other Changes
      • Fix goog.Uri.resolve so that it doesn't unescape the query parameters.
      • Properly pass the supportsCrossDomainXhrs option into WebChannelBase, fixing a bug where withCredentials wasn't being set.
      • Support ES6 methods when creating a testSuite.
      • labs.testing.Environment: Fixed a bug where an exception thrown in a tearDown method would not cause the test to fail if the exception evaluates to false.
      • disabled test that triggers a regression in Chrome.
      • Send ANIMATION_END event when click animation ends, no user visible change for sliderbase.
      • Minor documentation fix.
      • Fix JS errors when a module contains closing script tags with attributes.
      • Fixed ErrorHandler in strict mode
      • Fix JS errors when a module contains closing script tags.
      • The removeformatting plugin no longer captures a keyboard shortcut when both ctrl and cmd are pressed.
      • Keep goog.testing.TestCase.currentTestName updated to ease migration to goog.testing.TestCase.
      • CLDR 30 locale data update.
      • Fix IE11 bugs in goog.dom.selection.
      • Stop using HTMLElement.dataset in Safari, because sometimes accessing a value incorrectly returns "undefined".
      • Set browserEvent parameter within AbstractDragDrop#endDrag.
      • The constructor of goog.net.streams.JsonStreamParser now takes an optional configuration argument.
      • Resolve unknown type for property ipStr_
      • Updating documentation for clarity.
      • goog.module.get tuning
  • Closure Templates 2016-07-25 → 2017-02-01 (Release notes)
    • Add new keyword for proto initialization. Dots are also now allowed in function names, which is needed for proto instantiation.
    • Improve the performance of constructing a SoyProtoTypeProvider
    • Added proto initialization support to Tofu.
    • Accept goog.html types as sanitized types. Also support goog.Uri as {uri}.
    • Fix bug in the type resolver bug relating to expressions with null type.
    • Fix a bug where if a user wrote a {msg} with no content and a genders='...' attribute, the compiler would fail with an IndexOutOfBoundsException.
    • Many improvements to error reporting
    • Generate @typedef for opt_data which can be used in JS code.
    • Allow trailing comma in expression parser's named param list
    • Proto init call accepts null as a param value.
    • Replace calls to 'new SoyFileSet.Builder()' with SoyFileSet.builder(). The former has been deprecated for over 2 years and is going away.
    • New ProtoUtil.getBuilderMethod() utility method for creating a SoyExpression that calls ProtoMessage.newBuilder().
    • Handle proto fields with jstype = STRING. Proto fields that are typed as int64 with jstype = STRING annotation must be handled as strings in Soy code, then converted to int64 for proto init calls.
    • Improve ContentSecurityPass escaping to ensure that nonce values are valid base64.
    • Soy tofu: Data access on nonexistent key/field returns NullData, not Undefined
    • Soy cleanup: Remove SoyAbstractMap, move all code to AbstractDict. Remove SoyAbstractMap, move all code to AbstractDict. Remove SoyAbstractList, move all code to ListBackedList.
    • Soy JS codegen: support non-expressions in null coalescing expressions (?:).
  • Incremental DOM 0.5.0 → 0.5.2
  • Protobuf 3.1.0 → 3.2.0
    • Deserialization of repeated fields no longer has quadratic performance behavior.
    • UTF-8 encoding/decoding now properly supports high codepoints.
    • Added convenience methods for some well-known types: Any, Struct, and Timestamp. These make it easier to convert data between native JavaScript types and the well-known protobuf types.
  • Guava 19.0 → 20.0
  • Guice 3.0 → 4.1.0

This release can be used by adding the following to WORKSPACE:

http_archive(
    name = "io_bazel_rules_closure",
    strip_prefix = "rules_closure-0.4.1",
    sha256 = "ba5e2e10cdc4027702f96e9bdc536c6595decafa94847d08ae28c6cb48225124",
    url = "http://bazel-mirror.storage.googleapis.com/github.com/bazelbuild/rules_closure/archive/0.4.1.tar.gz",
)
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories")
closure_repositories()