v8/test/mjsunit/property-name-eval-arguments.js
arv 64abe65210 Allow eval and arguments as property names
We incorrectly disallowed eval and arguments in accessor and method
names. This was because we checked the name inside the
ParseFunctionLiteral. We now flag accessors so that lazy parsing of
these functions are treated correctly.

BUG=v8:1984
R=adamk, dslomov@chromium.org
LOG=N

Review URL: https://codereview.chromium.org/899363002

Cr-Commit-Position: refs/heads/master@{#26497}
2015-02-06 18:04:21 +00:00

60 lines
940 B
JavaScript

// Copyright 2015 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(function TestSloppyMode() {
var e = 1, a = 2;
var o = {
get eval() {
return e;
},
set eval(v) {
e = v;
},
get arguments() {
return a;
},
set arguments(v) {
a = v;
},
};
assertEquals(1, o.eval);
o.eval = 3;
assertEquals(3, e);
assertEquals(2, o.arguments);
o.arguments = 4;
assertEquals(4, a);
})();
(function TestStrictMode() {
'use strict';
var e = 1, a = 2;
var o = {
get eval() {
return e;
},
set eval(v) {
e = v;
},
get arguments() {
return a;
},
set arguments(v) {
a = v;
},
};
assertEquals(1, o.eval);
o.eval = 3;
assertEquals(3, e);
assertEquals(2, o.arguments);
o.arguments = 4;
assertEquals(4, a);
})();