Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

65 lines (56 sloc) 1.679 kb
using System;
using System.Text.RegularExpressions;
namespace IronJS.Runtime
{
public class RegExpObject : CommonObject
{
private Regex regExp;
private bool global;
public RegExpObject(Environment env, string pattern, RegexOptions options, bool global)
: base(env, env.Maps.RegExp, env.Prototypes.RegExp)
{
this.global = global;
try
{
options = (options | RegexOptions.ECMAScript) & ~RegexOptions.Compiled;
var key = Tuple.Create(options, pattern);
this.regExp = env.RegExpCache.Lookup(key, () => new Regex(pattern, options | RegexOptions.Compiled));
}
catch (ArgumentException ex)
{
env.RaiseSyntaxError<object>(ex.Message);
return;
}
}
public RegExpObject(Environment env, string pattern)
: this(env, pattern, RegexOptions.None, false)
{
}
public override string ClassName
{
get { return "RegExp"; }
}
public bool Global
{
get { return this.global; }
}
public bool IgnoreCase
{
get
{
return (this.regExp.Options & RegexOptions.IgnoreCase) == RegexOptions.IgnoreCase;
}
}
public bool MultiLine
{
get
{
return (this.regExp.Options & RegexOptions.Multiline) == RegexOptions.Multiline;
}
}
public Regex RegExp
{
get { return this.regExp; }
}
}
}
Jump to Line
Something went wrong with that request. Please try again.