Line data Source code
1 : #include "src/builtins/builtins-utils-gen.h"
2 : #include "src/builtins/builtins.h"
3 : #include "src/code-factory.h"
4 : #include "src/elements-kind.h"
5 : #include "src/heap/factory-inl.h"
6 : #include "src/objects.h"
7 : #include "src/objects/arguments.h"
8 : #include "src/objects/bigint.h"
9 : #include "src/objects/js-generator.h"
10 : #include "src/objects/js-promise.h"
11 : #include "src/objects/js-regexp-string-iterator.h"
12 : #include "src/objects/module.h"
13 : #include "src/objects/stack-frame-info.h"
14 : #include "src/builtins/builtins-array-gen.h"
15 : #include "src/builtins/builtins-collections-gen.h"
16 : #include "src/builtins/builtins-data-view-gen.h"
17 : #include "src/builtins/builtins-iterator-gen.h"
18 : #include "src/builtins/builtins-proxy-gen.h"
19 : #include "src/builtins/builtins-regexp-gen.h"
20 : #include "src/builtins/builtins-typed-array-gen.h"
21 : #include "src/builtins/builtins-constructor-gen.h"
22 : #include "src/builtins/builtins-typed-array-gen.h"
23 : #include "src/builtins/builtins-typed-array-gen.h"
24 : #include "src/builtins/builtins-typed-array-gen.h"
25 : #include "src/builtins/builtins-typed-array-gen.h"
26 : #include "src/builtins/builtins-typed-array-gen.h"
27 : #include "src/builtins/builtins-typed-array-gen.h"
28 : #include "src/builtins/builtins-typed-array-gen.h"
29 : #include "src/builtins/builtins-typed-array-gen.h"
30 : #include "torque-generated/builtins-base-from-dsl-gen.h"
31 : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
32 : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
33 : #include "torque-generated/builtins-array-from-dsl-gen.h"
34 : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
35 : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
36 : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
37 : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
38 : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
39 : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
40 : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
41 : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
42 : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
43 : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
44 : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
45 : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
46 : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
47 : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
48 : #include "torque-generated/builtins-collections-from-dsl-gen.h"
49 : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
50 : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
51 : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
52 : #include "torque-generated/builtins-object-from-dsl-gen.h"
53 : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
54 : #include "torque-generated/builtins-string-from-dsl-gen.h"
55 : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
56 : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
57 : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
58 : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
59 : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
60 : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
61 : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
62 : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
63 : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
64 : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
65 : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
66 : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
67 : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
68 : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
69 : #include "torque-generated/builtins-test-from-dsl-gen.h"
70 :
71 : namespace v8 {
72 : namespace internal {
73 :
74 0 : compiler::TNode<JSProxy> ProxyBuiltinsFromDSLAssembler::ValidateProxy(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o, compiler::TNode<String> p_method) {
75 0 : compiler::CodeAssemblerParameterizedLabel<Context, Object, String> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
76 0 : compiler::CodeAssemblerParameterizedLabel<Context, Object, String, Object> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
77 0 : compiler::CodeAssemblerParameterizedLabel<Context, Object, String, Object, JSProxy> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
78 0 : compiler::CodeAssemblerParameterizedLabel<Context, Object, String> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
79 0 : compiler::CodeAssemblerParameterizedLabel<Context, Object, String, JSProxy> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
80 0 : compiler::CodeAssemblerParameterizedLabel<Context, Object, String, JSProxy> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
81 0 : ca_.Goto(&block0, p_context, p_o, p_method);
82 :
83 0 : if (block0.is_used()) {
84 0 : compiler::TNode<Context> tmp0;
85 0 : compiler::TNode<Object> tmp1;
86 0 : compiler::TNode<String> tmp2;
87 0 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
88 0 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 11);
89 0 : compiler::TNode<JSProxy> tmp3;
90 0 : USE(tmp3);
91 0 : compiler::CodeAssemblerLabel label0(&ca_);
92 0 : tmp3 = BaseBuiltinsFromDSLAssembler(state_).Cast7JSProxy(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, &label0);
93 0 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp1, tmp3);
94 0 : if (label0.is_used()) {
95 0 : ca_.Bind(&label0);
96 0 : ca_.Goto(&block5, tmp0, tmp1, tmp2, tmp1);
97 : }
98 : }
99 :
100 0 : if (block5.is_used()) {
101 0 : compiler::TNode<Context> tmp4;
102 0 : compiler::TNode<Object> tmp5;
103 0 : compiler::TNode<String> tmp6;
104 0 : compiler::TNode<Object> tmp7;
105 0 : ca_.Bind(&block5, &tmp4, &tmp5, &tmp6, &tmp7);
106 0 : ca_.Goto(&block3, tmp4, tmp5, tmp6);
107 : }
108 :
109 0 : if (block4.is_used()) {
110 0 : compiler::TNode<Context> tmp8;
111 0 : compiler::TNode<Object> tmp9;
112 0 : compiler::TNode<String> tmp10;
113 0 : compiler::TNode<Object> tmp11;
114 0 : compiler::TNode<JSProxy> tmp12;
115 0 : ca_.Bind(&block4, &tmp8, &tmp9, &tmp10, &tmp11, &tmp12);
116 0 : ca_.Goto(&block1, tmp8, tmp9, tmp10, tmp12);
117 : }
118 :
119 0 : if (block3.is_used()) {
120 0 : compiler::TNode<Context> tmp13;
121 0 : compiler::TNode<Object> tmp14;
122 0 : compiler::TNode<String> tmp15;
123 0 : ca_.Bind(&block3, &tmp13, &tmp14, &tmp15);
124 0 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 14);
125 0 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp13}, MessageTemplate::kIncompatibleMethodReceiver, compiler::TNode<Object>{tmp15});
126 : }
127 :
128 0 : if (block1.is_used()) {
129 0 : compiler::TNode<Context> tmp16;
130 0 : compiler::TNode<Object> tmp17;
131 0 : compiler::TNode<String> tmp18;
132 0 : compiler::TNode<JSProxy> tmp19;
133 0 : ca_.Bind(&block1, &tmp16, &tmp17, &tmp18, &tmp19);
134 0 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 9);
135 0 : ca_.Goto(&block6, tmp16, tmp17, tmp18, tmp19);
136 : }
137 :
138 0 : compiler::TNode<Context> tmp20;
139 0 : compiler::TNode<Object> tmp21;
140 0 : compiler::TNode<String> tmp22;
141 0 : compiler::TNode<JSProxy> tmp23;
142 0 : ca_.Bind(&block6, &tmp20, &tmp21, &tmp22, &tmp23);
143 0 : return compiler::TNode<JSProxy>{tmp23};
144 : }
145 :
146 336 : TF_BUILTIN(ProxyRevoke, CodeStubAssembler) {
147 112 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
148 56 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
149 56 : USE(parameter0);
150 56 : compiler::TNode<Object> parameter1 = UncheckedCast<Object>(Parameter(Descriptor::kReceiver));
151 56 : USE(parameter1);
152 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
153 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
154 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
155 56 : ca_.Goto(&block0, parameter0, parameter1);
156 :
157 56 : if (block0.is_used()) {
158 56 : compiler::TNode<Context> tmp0;
159 56 : compiler::TNode<Object> tmp1;
160 56 : ca_.Bind(&block0, &tmp0, &tmp1);
161 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 24);
162 56 : compiler::TNode<IntPtrT> tmp2;
163 56 : USE(tmp2);
164 56 : tmp2 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr13ATContextSlot23ATconstexpr_ContextSlot(Context::MIN_CONTEXT_SLOTS));
165 56 : compiler::TNode<Object> tmp3;
166 56 : USE(tmp3);
167 56 : tmp3 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadContextElement(compiler::TNode<Context>{tmp0}, compiler::TNode<IntPtrT>{tmp2}));
168 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 27);
169 56 : compiler::TNode<Oddball> tmp4;
170 56 : USE(tmp4);
171 56 : tmp4 = BaseBuiltinsFromDSLAssembler(state_).Null();
172 56 : compiler::TNode<BoolT> tmp5;
173 56 : USE(tmp5);
174 56 : tmp5 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<Object>{tmp3}, compiler::TNode<HeapObject>{tmp4}));
175 56 : ca_.Branch(tmp5, &block1, &block2, tmp0, tmp1, tmp3);
176 : }
177 :
178 56 : if (block1.is_used()) {
179 56 : compiler::TNode<Context> tmp6;
180 56 : compiler::TNode<Object> tmp7;
181 56 : compiler::TNode<Object> tmp8;
182 56 : ca_.Bind(&block1, &tmp6, &tmp7, &tmp8);
183 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 28);
184 56 : compiler::TNode<Oddball> tmp9;
185 56 : USE(tmp9);
186 56 : tmp9 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
187 56 : CodeStubAssembler(state_).Return(tmp9);
188 : }
189 :
190 56 : if (block2.is_used()) {
191 56 : compiler::TNode<Context> tmp10;
192 56 : compiler::TNode<Object> tmp11;
193 56 : compiler::TNode<Object> tmp12;
194 56 : ca_.Bind(&block2, &tmp10, &tmp11, &tmp12);
195 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 32);
196 56 : compiler::TNode<Oddball> tmp13;
197 56 : USE(tmp13);
198 56 : tmp13 = BaseBuiltinsFromDSLAssembler(state_).Null();
199 56 : compiler::TNode<IntPtrT> tmp14;
200 56 : USE(tmp14);
201 56 : tmp14 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr13ATContextSlot23ATconstexpr_ContextSlot(Context::MIN_CONTEXT_SLOTS));
202 56 : CodeStubAssembler(state_).StoreContextElement(compiler::TNode<Context>{tmp10}, compiler::TNode<IntPtrT>{tmp14}, compiler::TNode<Object>{tmp13});
203 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 35);
204 56 : compiler::TNode<JSProxy> tmp15;
205 56 : USE(tmp15);
206 56 : tmp15 = ca_.UncheckedCast<JSProxy>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast7JSProxy(compiler::TNode<Context>{tmp10}, compiler::TNode<Object>{tmp12}));
207 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 38);
208 56 : compiler::TNode<Oddball> tmp16;
209 56 : USE(tmp16);
210 56 : tmp16 = BaseBuiltinsFromDSLAssembler(state_).Null();
211 56 : BaseBuiltinsFromDSLAssembler(state_).StoreJSProxyTarget(compiler::TNode<JSProxy>{tmp15}, compiler::TNode<Object>{tmp16});
212 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 41);
213 56 : compiler::TNode<Oddball> tmp17;
214 56 : USE(tmp17);
215 56 : tmp17 = BaseBuiltinsFromDSLAssembler(state_).Null();
216 56 : BaseBuiltinsFromDSLAssembler(state_).StoreJSProxyHandler(compiler::TNode<JSProxy>{tmp15}, compiler::TNode<Object>{tmp17});
217 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 44);
218 56 : compiler::TNode<Oddball> tmp18;
219 56 : USE(tmp18);
220 56 : tmp18 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
221 56 : CodeStubAssembler(state_).Return(tmp18);
222 : }
223 56 : }
224 :
225 : } // namespace internal
226 87414 : } // namespace v8
227 :
|