function MessageFormat (
  pattern/*: string */,
  locales/*:: ?: string | string[] */,
  options/*:: ?: Options */
) {
  if (!(this instanceof MessageFormat) || internals.has(this)) {
    throw new TypeError('calling MessageFormat constructor without new is invalid')
  }
  var ast = parse(pattern)
  internals.set(this, {
    ast: ast,
    format: interpret(ast, locales, options && options.types),
    locale: MessageFormat.supportedLocalesOf(locales)[0] || 'en',
    locales: locales,
    options: options
  })
}
function MessageFormat (
  pattern,
  locales,
  options
) {
  if (!(this instanceof MessageFormat) || internals.has(this)) {
    throw new TypeError('calling MessageFormat constructor without new is invalid')
  }
  var ast = parse(pattern)
  internals.set(this, {
    ast: ast,
    format: interpret(ast, locales, options && options.types),
    locale: MessageFormat.supportedLocalesOf(locales)[0] || 'en',
    locales: locales,
    options: options
  })
}
function MessageFormat ( pattern /*: string */ , locales /*:: ?: string | string[] */ , options /*:: ?: Options */ ) { if ( ! ( this instanceof MessageFormat ) || internals . has ( this ) ) { throw new TypeError ( 'calling MessageFormat constructor without new is invalid' ) } var ast = parse ( pattern ) internals . set ( this , { ast : ast , format : interpret ( ast , locales , options && options . types ) , locale : MessageFormat . supportedLocalesOf ( locales ) [ 0 ] || 'en' , locales : locales , options : options } ) }
/*!
Intl.MessageFormat prollyfill
Copyright(c) 2015 Andy VanWagoner
MIT licensed
/ * ! Intl . MessageFormat prollyfill Copyright ( c ) 2015 Andy VanWagoner MIT licensed