From fb974ca5dbd64d3325493e2f1680de329b5daf65 Mon Sep 17 00:00:00 2001 From: Robert Krimen Date: Thu, 2 May 2013 20:23:07 +0200 Subject: [PATCH] Do not throw a TypeError when trying to set global, ignoreCase, source, etc. --- regexp_test.go | 8 ++++++++ type_regexp.go | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/regexp_test.go b/regexp_test.go index afee5be..4713b60 100644 --- a/regexp_test.go +++ b/regexp_test.go @@ -199,6 +199,14 @@ func TestRegExp_source(t *testing.T) { var def = new RegExp(abc); [ abc.source, def.source, abc.source === def.source ]; `, ".,.,true") + + test(` + var abc = /./i; + var def = abc.hasOwnProperty("source"); + var ghi = abc.source; + abc.source = "xyzzy"; + [ def, abc.source ]; + `, "true,.") } func TestRegExp_newRegExp(t *testing.T) { diff --git a/type_regexp.go b/type_regexp.go index a3d2d20..ad49968 100644 --- a/type_regexp.go +++ b/type_regexp.go @@ -306,7 +306,7 @@ func (self *_regExpStash) put(name string, value Value) { switch name { case "global", "ignoreCase", "multiline", "source": // TODO Is this good enough? Check DefineOwnProperty - panic(newTypeError()) + return case "lastIndex": self._regExpObject.LastIndex = value return