Commit 20b1c426 authored by rossberg@chromium.org's avatar rossberg@chromium.org

Bump number of allowed variables per scope to 65535, to address GWT.

R=jkummerow@chromium.org
BUG=151625

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 2473aa31
...@@ -229,7 +229,7 @@ function FormatMessage(message) { ...@@ -229,7 +229,7 @@ function FormatMessage(message) {
"strict_catch_variable", ["Catch variable may not be eval or arguments in strict mode"], "strict_catch_variable", ["Catch variable may not be eval or arguments in strict mode"],
"too_many_arguments", ["Too many arguments in function call (only 32766 allowed)"], "too_many_arguments", ["Too many arguments in function call (only 32766 allowed)"],
"too_many_parameters", ["Too many parameters in function definition (only 32766 allowed)"], "too_many_parameters", ["Too many parameters in function definition (only 32766 allowed)"],
"too_many_variables", ["Too many variables declared (only 32767 allowed)"], "too_many_variables", ["Too many variables declared (only 65535 allowed)"],
"strict_param_name", ["Parameter name eval or arguments is not allowed in strict mode"], "strict_param_name", ["Parameter name eval or arguments is not allowed in strict mode"],
"strict_param_dupe", ["Strict mode function may not have duplicate parameter names"], "strict_param_dupe", ["Strict mode function may not have duplicate parameter names"],
"strict_var_name", ["Variable name may not be eval or arguments in strict mode"], "strict_var_name", ["Variable name may not be eval or arguments in strict mode"],
......
...@@ -454,7 +454,7 @@ class Parser { ...@@ -454,7 +454,7 @@ class Parser {
// construct a hashable id, so if more than 2^17 are allowed, this // construct a hashable id, so if more than 2^17 are allowed, this
// should be checked. // should be checked.
static const int kMaxNumFunctionParameters = 32766; static const int kMaxNumFunctionParameters = 32766;
static const int kMaxNumFunctionLocals = 32767; static const int kMaxNumFunctionLocals = 65535;
enum Mode { enum Mode {
PARSE_LAZILY, PARSE_LAZILY,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Test that there is a limit of 32767 locals. // Test that there is a limit of 65535 locals.
function function_with_n_locals(n) { function function_with_n_locals(n) {
test_prefix = "prefix "; test_prefix = "prefix ";
...@@ -41,6 +41,7 @@ function function_with_n_locals(n) { ...@@ -41,6 +41,7 @@ function function_with_n_locals(n) {
assertEquals("prefix 0 suffix", function_with_n_locals(0)); assertEquals("prefix 0 suffix", function_with_n_locals(0));
assertEquals("prefix 16000 suffix", function_with_n_locals(16000)); assertEquals("prefix 16000 suffix", function_with_n_locals(16000));
assertEquals("prefix 32767 suffix", function_with_n_locals(32767)); assertEquals("prefix 32767 suffix", function_with_n_locals(32767));
assertEquals("prefix 65535 suffix", function_with_n_locals(65535));
assertThrows("function_with_n_locals(32768)"); assertThrows("function_with_n_locals(65536)");
assertThrows("function_with_n_locals(100000)"); assertThrows("function_with_n_locals(100000)");
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment