function CompositeDraftDecorator(decorators) {
	    _classCallCheck(this, CompositeDraftDecorator);

	    // Copy the decorator array, since we use this array order to determine
	    // precedence of decoration matching. If the array is mutated externally,
	    // we don't want to be affected here.
	    this._decorators = decorators.slice();
	  }
A CompositeDraftDecorator traverses through a list of DraftDecorator
instances to identify sections of a ContentBlock that should be rendered
in a "decorated" manner. For example, hashtags, mentions, and links may
be intended to stand out visually, be rendered as anchors, etc.

The list of decorators supplied to the constructor will be used in the
order they are provided. This allows the caller to specify a priority for
string matching, in case of match collisions among decorators.

For instance, I may have a link with a `#` in its text. Though this section
of text may match our hashtag decorator, it should not be treated as a
hashtag. I should therefore list my link DraftDecorator
before my hashtag DraftDecorator when constructing this composite
decorator instance.

Thus, when a collision like this is encountered, the earlier match is
preserved and the new match is discarded.