function defaultEmphasis(opt, key, subOpts) {
    // Caution: performance sensitive.
    if (opt) {
        opt[key] = opt[key] || {};
        opt.emphasis = opt.emphasis || {};
        opt.emphasis[key] = opt.emphasis[key] || {};

        // Default emphasis option from normal
        for (var i = 0, len = subOpts.length; i < len; i++) {
            var subOptName = subOpts[i];
            if (!opt.emphasis[key].hasOwnProperty(subOptName)
                && opt[key].hasOwnProperty(subOptName)
            ) {
                opt.emphasis[key][subOptName] = opt[key][subOptName];
            }
        }
    }
}
Mapping to exists for merge.

@public
@param {Array.<Object>|Array.<module:echarts/model/Component>} exists
@param {Object|Array.<Object>} newCptOptions
@return {Array.<Object>} Result, like [{exist: ..., option: ...}, {}],
                         index of which is the same as exists.