1// Copyright 2014 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5(function(global, utils) {
6
7'use strict';
8
9%CheckIsBootstrapping();
10
11// -------------------------------------------------------------------
12// Imports
13
14var GlobalRegExp = global.RegExp;
15var GlobalRegExpPrototype = GlobalRegExp.prototype;
16var MakeTypeError;
17
18utils.Import(function(from) {
19  MakeTypeError = from.MakeTypeError;
20});
21
22// -------------------------------------------------------------------
23
24// ES6 21.2.5.15.
25function RegExpGetUnicode() {
26  if (!IS_REGEXP(this)) {
27    // TODO(littledan): Remove this RegExp compat workaround
28    if (this === GlobalRegExpPrototype) {
29      %IncrementUseCounter(kRegExpPrototypeUnicodeGetter);
30      return UNDEFINED;
31    }
32    throw MakeTypeError(kRegExpNonRegExp, "RegExp.prototype.unicode");
33  }
34  return !!REGEXP_UNICODE(this);
35}
36%FunctionSetName(RegExpGetUnicode, "RegExp.prototype.unicode");
37%SetNativeFlag(RegExpGetUnicode);
38
39utils.InstallGetter(GlobalRegExp.prototype, 'unicode', RegExpGetUnicode);
40
41})
42