Revision: 9646
Author: [email protected]
Date: Mon Oct 17 02:07:05 2011
Log: Port r9543 to the 3.4 branch.
TBR:danno
[email protected]
Review URL: http://codereview.chromium.org/8311015
http://code.google.com/p/v8/source/detail?r=9646
Modified:
/branches/3.4/src/compiler.cc
/branches/3.4/src/compiler.h
/branches/3.4/src/parser.cc
/branches/3.4/src/version.cc
/branches/3.4/test/mjsunit/regress/regress-1521.js
=======================================
--- /branches/3.4/src/compiler.cc Tue Aug 9 05:57:00 2011
+++ /branches/3.4/src/compiler.cc Mon Oct 17 02:07:05 2011
@@ -509,9 +509,6 @@
info.MarkAsGlobal();
info.SetExtension(extension);
info.SetPreParseData(pre_data);
- if (natives == NATIVES_CODE) {
- info.MarkAsAllowingNativesSyntax();
- }
result = MakeFunctionInfo(&info);
if (extension == NULL && !result.is_null()) {
compilation_cache->PutScript(source, result);
=======================================
--- /branches/3.4/src/compiler.h Wed Jul 20 06:44:42 2011
+++ /branches/3.4/src/compiler.h Mon Oct 17 02:07:05 2011
@@ -83,12 +83,6 @@
ASSERT(is_lazy());
flags_ |= IsInLoop::encode(true);
}
- void MarkAsAllowingNativesSyntax() {
- flags_ |= IsNativesSyntaxAllowed::encode(true);
- }
- bool allows_natives_syntax() const {
- return IsNativesSyntaxAllowed::decode(flags_);
- }
void MarkAsNative() {
flags_ |= IsNative::encode(true);
}
@@ -199,8 +193,6 @@
class IsInLoop: public BitField<bool, 3, 1> {};
// Strict mode - used in eager compilation.
class IsStrictMode: public BitField<bool, 4, 1> {};
- // Native syntax (%-stuff) allowed?
- class IsNativesSyntaxAllowed: public BitField<bool, 5, 1> {};
// Is this a function from our natives.
class IsNative: public BitField<bool, 6, 1> {};
=======================================
--- /branches/3.4/src/parser.cc Mon Oct 10 04:15:23 2011
+++ /branches/3.4/src/parser.cc Mon Oct 17 02:07:05 2011
@@ -5121,12 +5121,15 @@
FunctionLiteral* result = NULL;
Handle<Script> script = info->script();
if (info->is_lazy()) {
- Parser parser(script, true, NULL, NULL);
+ bool allow_natives_syntax =
+ FLAG_allow_natives_syntax ||
+ info->is_native();
+ Parser parser(script, allow_natives_syntax, NULL, NULL);
result = parser.ParseLazy(info);
} else {
// Whether we allow %identifier(..) syntax.
bool allow_natives_syntax =
- info->allows_natives_syntax() || FLAG_allow_natives_syntax;
+ info->is_native() || FLAG_allow_natives_syntax;
ScriptDataImpl* pre_data = info->pre_parse_data();
Parser parser(script, allow_natives_syntax, info->extension(),
pre_data);
if (pre_data != NULL && pre_data->has_error()) {
=======================================
--- /branches/3.4/src/version.cc Mon Oct 10 04:15:23 2011
+++ /branches/3.4/src/version.cc Mon Oct 17 02:07:05 2011
@@ -35,7 +35,7 @@
#define MAJOR_VERSION 3
#define MINOR_VERSION 4
#define BUILD_NUMBER 14
-#define PATCH_LEVEL 31
+#define PATCH_LEVEL 32
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
#define IS_CANDIDATE_VERSION 0
=======================================
--- /branches/3.4/test/mjsunit/regress/regress-1521.js Mon Jul 4 07:01:31
2011
+++ /branches/3.4/test/mjsunit/regress/regress-1521.js Mon Oct 17 02:07:05
2011
@@ -24,6 +24,8 @@
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Flags: --allow-natives-syntax
// Optimized variable access inside through a catch context should work.
function test(x) {
@@ -44,4 +46,3 @@
}
test(3);
-
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev