Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(463)

Side by Side Diff: src/wasm/wasm-js.cc

Issue 2648223004: [wasm] Change the constant kV8MaxWasmTableSize to a command line flag. (Closed)
Patch Set: Use the wasm-limits.h values in flag-definitions.h Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/wasm/module-decoder.cc ('k') | src/wasm/wasm-limits.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/api-natives.h" 5 #include "src/api-natives.h"
6 #include "src/api.h" 6 #include "src/api.h"
7 #include "src/asmjs/asm-js.h" 7 #include "src/asmjs/asm-js.h"
8 #include "src/asmjs/asm-typer.h" 8 #include "src/asmjs/asm-typer.h"
9 #include "src/asmjs/asm-wasm-builder.h" 9 #include "src/asmjs/asm-wasm-builder.h"
10 #include "src/assert-scope.h" 10 #include "src/assert-scope.h"
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 if (!string->Equals(context, v8_str(isolate, "anyfunc")).To(&equal)) return; 453 if (!string->Equals(context, v8_str(isolate, "anyfunc")).To(&equal)) return;
454 if (!equal) { 454 if (!equal) {
455 thrower.TypeError("Descriptor property 'element' must be 'anyfunc'"); 455 thrower.TypeError("Descriptor property 'element' must be 'anyfunc'");
456 return; 456 return;
457 } 457 }
458 } 458 }
459 // The descriptor's 'initial'. 459 // The descriptor's 'initial'.
460 int initial = 0; 460 int initial = 0;
461 if (!GetIntegerProperty(isolate, &thrower, context, descriptor, 461 if (!GetIntegerProperty(isolate, &thrower, context, descriptor,
462 v8_str(isolate, "initial"), &initial, 0, 462 v8_str(isolate, "initial"), &initial, 0,
463 i::wasm::kV8MaxWasmTableSize)) { 463 i::FLAG_wasm_max_table_size)) {
464 return; 464 return;
465 } 465 }
466 // The descriptor's 'maximum'. 466 // The descriptor's 'maximum'.
467 int maximum = -1; 467 int maximum = -1;
468 Local<String> maximum_key = v8_str(isolate, "maximum"); 468 Local<String> maximum_key = v8_str(isolate, "maximum");
469 Maybe<bool> has_maximum = descriptor->Has(context, maximum_key); 469 Maybe<bool> has_maximum = descriptor->Has(context, maximum_key);
470 470
471 if (!has_maximum.IsNothing() && has_maximum.FromJust()) { 471 if (!has_maximum.IsNothing() && has_maximum.FromJust()) {
472 if (!GetIntegerProperty(isolate, &thrower, context, descriptor, maximum_key, 472 if (!GetIntegerProperty(isolate, &thrower, context, descriptor, maximum_key,
473 &maximum, initial, 473 &maximum, initial,
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 i::Handle<i::FixedArray> old_array(receiver->functions(), i_isolate); 560 i::Handle<i::FixedArray> old_array(receiver->functions(), i_isolate);
561 int old_size = old_array->length(); 561 int old_size = old_array->length();
562 int64_t new_size64 = 0; 562 int64_t new_size64 = 0;
563 if (args.Length() > 0 && !args[0]->IntegerValue(context).To(&new_size64)) { 563 if (args.Length() > 0 && !args[0]->IntegerValue(context).To(&new_size64)) {
564 return; 564 return;
565 } 565 }
566 new_size64 += old_size; 566 new_size64 += old_size;
567 567
568 int64_t max_size64 = receiver->maximum_length(); 568 int64_t max_size64 = receiver->maximum_length();
569 if (max_size64 < 0 || 569 if (max_size64 < 0 ||
570 max_size64 > static_cast<int64_t>(i::wasm::kV8MaxWasmTableSize)) { 570 max_size64 > static_cast<int64_t>(i::FLAG_wasm_max_table_size)) {
571 max_size64 = i::wasm::kV8MaxWasmTableSize; 571 max_size64 = i::FLAG_wasm_max_table_size;
572 } 572 }
573 573
574 if (new_size64 < old_size || new_size64 > max_size64) { 574 if (new_size64 < old_size || new_size64 > max_size64) {
575 v8::Local<v8::Value> e = v8::Exception::RangeError( 575 v8::Local<v8::Value> e = v8::Exception::RangeError(
576 v8_str(isolate, new_size64 < old_size ? "trying to shrink table" 576 v8_str(isolate, new_size64 < old_size ? "trying to shrink table"
577 : "maximum table size exceeded")); 577 : "maximum table size exceeded"));
578 isolate->ThrowException(e); 578 isolate->ThrowException(e);
579 return; 579 return;
580 } 580 }
581 581
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 i::Handle<i::Symbol> symbol(isolate->context()->wasm_memory_sym(), isolate); 951 i::Handle<i::Symbol> symbol(isolate->context()->wasm_memory_sym(), isolate);
952 return HasBrand(value, symbol); 952 return HasBrand(value, symbol);
953 } 953 }
954 954
955 bool WasmJs::IsWasmTableObject(Isolate* isolate, Handle<Object> value) { 955 bool WasmJs::IsWasmTableObject(Isolate* isolate, Handle<Object> value) {
956 i::Handle<i::Symbol> symbol(isolate->context()->wasm_table_sym(), isolate); 956 i::Handle<i::Symbol> symbol(isolate->context()->wasm_table_sym(), isolate);
957 return HasBrand(value, symbol); 957 return HasBrand(value, symbol);
958 } 958 }
959 } // namespace internal 959 } // namespace internal
960 } // namespace v8 960 } // namespace v8
OLDNEW
« no previous file with comments | « src/wasm/module-decoder.cc ('k') | src/wasm/wasm-limits.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698