Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/builtins/collections.tq')
-rw-r--r--deps/v8/src/builtins/collections.tq87
1 files changed, 43 insertions, 44 deletions
diff --git a/deps/v8/src/builtins/collections.tq b/deps/v8/src/builtins/collections.tq
index 60136af6336..c0d311a825f 100644
--- a/deps/v8/src/builtins/collections.tq
+++ b/deps/v8/src/builtins/collections.tq
@@ -5,54 +5,53 @@
#include 'src/builtins/builtins-collections-gen.h'
namespace collections {
- @export
- macro LoadKeyValuePairNoSideEffects(implicit context: Context)(o: JSAny):
- KeyValuePair labels MayHaveSideEffects {
- typeswitch (o) {
- case (a: FastJSArray): {
- const length: Smi = a.length;
- typeswitch (a.elements) {
- case (elements: FixedArray): {
- return KeyValuePair{
- key: length > 0 ? array::LoadElementOrUndefined(elements, 0) :
- Undefined,
- value: length > 1 ? array::LoadElementOrUndefined(elements, 1) :
- Undefined
- };
- }
- case (elements: FixedDoubleArray): {
- return KeyValuePair{
- key: length > 0 ? array::LoadElementOrUndefined(elements, 0) :
- Undefined,
- value: length > 1 ? array::LoadElementOrUndefined(elements, 1) :
- Undefined
- };
- }
- case (FixedArrayBase): deferred {
- unreachable;
- }
+@export
+macro LoadKeyValuePairNoSideEffects(implicit context: Context)(o: JSAny):
+ KeyValuePair labels MayHaveSideEffects {
+ typeswitch (o) {
+ case (a: FastJSArray): {
+ const length: Smi = a.length;
+ typeswitch (a.elements) {
+ case (elements: FixedArray): {
+ return KeyValuePair{
+ key: length > 0 ? array::LoadElementOrUndefined(elements, 0) :
+ Undefined,
+ value: length > 1 ? array::LoadElementOrUndefined(elements, 1) :
+ Undefined
+ };
+ }
+ case (elements: FixedDoubleArray): {
+ return KeyValuePair{
+ key: length > 0 ? array::LoadElementOrUndefined(elements, 0) :
+ Undefined,
+ value: length > 1 ? array::LoadElementOrUndefined(elements, 1) :
+ Undefined
+ };
+ }
+ case (FixedArrayBase): deferred {
+ unreachable;
}
- }
- case (JSReceiver): {
- goto MayHaveSideEffects;
- }
- case (o: JSAny): deferred {
- ThrowTypeError(MessageTemplate::kIteratorValueNotAnObject, o);
}
}
- }
-
- @export
- transitioning macro LoadKeyValuePair(implicit context: Context)(o: JSAny):
- KeyValuePair {
- try {
- return LoadKeyValuePairNoSideEffects(o) otherwise Generic;
+ case (JSReceiver): {
+ goto MayHaveSideEffects;
}
- label Generic {
- return KeyValuePair{
- key: GetProperty(o, Convert<Smi>(0)),
- value: GetProperty(o, Convert<Smi>(1))
- };
+ case (o: JSAny): deferred {
+ ThrowTypeError(MessageTemplate::kIteratorValueNotAnObject, o);
}
}
}
+
+@export
+transitioning macro LoadKeyValuePair(implicit context: Context)(o: JSAny):
+ KeyValuePair {
+ try {
+ return LoadKeyValuePairNoSideEffects(o) otherwise Generic;
+ } label Generic {
+ return KeyValuePair{
+ key: GetProperty(o, Convert<Smi>(0)),
+ value: GetProperty(o, Convert<Smi>(1))
+ };
+ }
+}
+}