tenfourfox/js/src/builtin/RegExp.js

58 lines
1.2 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// ES6 draft rev34 (2015/02/20) 21.2.5.3 get RegExp.prototype.flags
function RegExpFlagsGetter() {
// Steps 1-2.
var R = this;
if (!IsObject(R))
ThrowTypeError(JSMSG_NOT_NONNULL_OBJECT, R === null ? "null" : typeof R);
// Step 3.
var result = "";
// Steps 4-6.
if (R.global)
result += "g";
// Steps 7-9.
if (R.ignoreCase)
result += "i";
// Steps 10-12.
if (R.multiline)
result += "m";
// Steps 13-15.
if (R.unicode)
result += "u";
// Steps 16-18.
if (R.sticky)
result += "y";
// Step 19.
return result;
}
_SetCanonicalName(RegExpFlagsGetter, "get flags");
// ES6 draft rc1 21.2.5.14.
function RegExpToString()
{
// Steps 1-2.
var R = this;
if (!IsObject(R))
ThrowTypeError(JSMSG_NOT_NONNULL_OBJECT, R === null ? "null" : typeof R);
// Steps 3-4.
var pattern = R.source;
// Steps 5-6.
var flags = R.flags;
// Step 7.
return '/' + pattern + '/' + flags;
}
_SetCanonicalName(RegExpToString, "toString");