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

Side by Side Diff: src/wasm/wasm-objects.h

Issue 2637643002: [wasm] Table.Grow should grow dispatch tables (Closed)
Patch Set: Rebase + review Created 3 years, 11 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/wasm-module.cc ('k') | src/wasm/wasm-objects.cc » ('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 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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 #ifndef V8_WASM_OBJECTS_H_ 5 #ifndef V8_WASM_OBJECTS_H_
6 #define V8_WASM_OBJECTS_H_ 6 #define V8_WASM_OBJECTS_H_
7 7
8 #include "src/debug/interface-types.h" 8 #include "src/debug/interface-types.h"
9 #include "src/objects-inl.h" 9 #include "src/objects-inl.h"
10 #include "src/trap-handler/trap-handler.h" 10 #include "src/trap-handler/trap-handler.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 DECLARE_CASTS(WasmTableObject); 58 DECLARE_CASTS(WasmTableObject);
59 DECLARE_ACCESSORS(functions, FixedArray); 59 DECLARE_ACCESSORS(functions, FixedArray);
60 60
61 FixedArray* dispatch_tables(); 61 FixedArray* dispatch_tables();
62 uint32_t current_length(); 62 uint32_t current_length();
63 uint32_t maximum_length(); 63 uint32_t maximum_length();
64 64
65 static Handle<WasmTableObject> New(Isolate* isolate, uint32_t initial, 65 static Handle<WasmTableObject> New(Isolate* isolate, uint32_t initial,
66 uint32_t maximum, 66 uint32_t maximum,
67 Handle<FixedArray>* js_functions); 67 Handle<FixedArray>* js_functions);
68 static bool Grow(Handle<WasmTableObject> table, uint32_t count); 68 static void Grow(Isolate* isolate, Handle<WasmTableObject> table,
69 uint32_t count);
69 static Handle<FixedArray> AddDispatchTable( 70 static Handle<FixedArray> AddDispatchTable(
70 Isolate* isolate, Handle<WasmTableObject> table, 71 Isolate* isolate, Handle<WasmTableObject> table,
71 Handle<WasmInstanceObject> instance, int table_index, 72 Handle<WasmInstanceObject> instance, int table_index,
72 Handle<FixedArray> function_table, Handle<FixedArray> signature_table); 73 Handle<FixedArray> function_table, Handle<FixedArray> signature_table);
73 }; 74 };
74 75
75 // Representation of a WebAssembly.Memory JavaScript-level object. 76 // Representation of a WebAssembly.Memory JavaScript-level object.
76 class WasmMemoryObject : public JSObject { 77 class WasmMemoryObject : public JSObject {
77 public: 78 public:
78 // TODO(titzer): add the brand as an internal field instead of a property. 79 // TODO(titzer): add the brand as an internal field instead of a property.
79 enum Fields : uint8_t { kArrayBuffer, kMaximum, kInstancesLink, kFieldCount }; 80 enum Fields : uint8_t { kArrayBuffer, kMaximum, kInstancesLink, kFieldCount };
80 81
81 DECLARE_CASTS(WasmMemoryObject); 82 DECLARE_CASTS(WasmMemoryObject);
82 DECLARE_ACCESSORS(buffer, JSArrayBuffer); 83 DECLARE_ACCESSORS(buffer, JSArrayBuffer);
83 DECLARE_OPTIONAL_ACCESSORS(instances_link, WasmInstanceWrapper); 84 DECLARE_OPTIONAL_ACCESSORS(instances_link, WasmInstanceWrapper);
84 85
85 void AddInstance(Isolate* isolate, Handle<WasmInstanceObject> object); 86 void AddInstance(Isolate* isolate, Handle<WasmInstanceObject> object);
86 void ResetInstancesLink(Isolate* isolate); 87 void ResetInstancesLink(Isolate* isolate);
87 uint32_t current_pages(); 88 uint32_t current_pages();
88 int32_t maximum_pages(); // returns < 0 if there is no maximum 89 int32_t maximum_pages(); // returns < 0 if there is no maximum
89 90
90 static Handle<WasmMemoryObject> New(Isolate* isolate, 91 static Handle<WasmMemoryObject> New(Isolate* isolate,
91 Handle<JSArrayBuffer> buffer, 92 Handle<JSArrayBuffer> buffer,
92 int maximum); 93 int maximum);
93 94
94 static bool Grow(Handle<WasmMemoryObject> memory, uint32_t count); 95 static bool Grow(Isolate* isolate, Handle<WasmMemoryObject> memory,
96 uint32_t count);
95 }; 97 };
96 98
97 // Representation of a WebAssembly.Instance JavaScript-level object. 99 // Representation of a WebAssembly.Instance JavaScript-level object.
98 class WasmInstanceObject : public JSObject { 100 class WasmInstanceObject : public JSObject {
99 public: 101 public:
100 // TODO(titzer): add the brand as an internal field instead of a property. 102 // TODO(titzer): add the brand as an internal field instead of a property.
101 enum Fields { 103 enum Fields {
102 kCompiledModule, 104 kCompiledModule,
103 kMemoryObject, 105 kMemoryObject,
104 kMemoryArrayBuffer, 106 kMemoryArrayBuffer,
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 }; 454 };
453 }; 455 };
454 456
455 #undef DECLARE_ACCESSORS 457 #undef DECLARE_ACCESSORS
456 #undef DECLARE_OPTIONAL_ACCESSORS 458 #undef DECLARE_OPTIONAL_ACCESSORS
457 459
458 } // namespace internal 460 } // namespace internal
459 } // namespace v8 461 } // namespace v8
460 462
461 #endif // V8_WASM_OBJECTS_H_ 463 #endif // V8_WASM_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/wasm/wasm-module.cc ('k') | src/wasm/wasm-objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698