Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F76304246
node-helpers.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Aug 7, 06:54
Size
2 KB
Mime Type
text/x-java
Expires
Fri, Aug 9, 06:54 (1 d, 21 h)
Engine
blob
Format
Raw Data
Handle
19692716
Attached To
rOACCT Open Access Compliance Check Tool (OACCT)
node-helpers.js
View Options
import
{
parse32F
,
parse64F
,
parse32I
,
parse64I
,
parseU32
,
isNanLiteral
,
isInfLiteral
}
from
"@webassemblyjs/wast-parser"
;
import
{
longNumberLiteral
,
floatLiteral
,
numberLiteral
,
instr
}
from
"./nodes"
;
export
function
numberLiteralFromRaw
(
rawValue
)
{
var
instructionType
=
arguments
.
length
>
1
&&
arguments
[
1
]
!==
undefined
?
arguments
[
1
]
:
"i32"
;
var
original
=
rawValue
;
// Remove numeric separators _
if
(
typeof
rawValue
===
"string"
)
{
rawValue
=
rawValue
.
replace
(
/_/g
,
""
);
}
if
(
typeof
rawValue
===
"number"
)
{
return
numberLiteral
(
rawValue
,
String
(
original
));
}
else
{
switch
(
instructionType
)
{
case
"i32"
:
{
return
numberLiteral
(
parse32I
(
rawValue
),
String
(
original
));
}
case
"u32"
:
{
return
numberLiteral
(
parseU32
(
rawValue
),
String
(
original
));
}
case
"i64"
:
{
return
longNumberLiteral
(
parse64I
(
rawValue
),
String
(
original
));
}
case
"f32"
:
{
return
floatLiteral
(
parse32F
(
rawValue
),
isNanLiteral
(
rawValue
),
isInfLiteral
(
rawValue
),
String
(
original
));
}
// f64
default
:
{
return
floatLiteral
(
parse64F
(
rawValue
),
isNanLiteral
(
rawValue
),
isInfLiteral
(
rawValue
),
String
(
original
));
}
}
}
}
export
function
instruction
(
id
)
{
var
args
=
arguments
.
length
>
1
&&
arguments
[
1
]
!==
undefined
?
arguments
[
1
]
:
[];
var
namedArgs
=
arguments
.
length
>
2
&&
arguments
[
2
]
!==
undefined
?
arguments
[
2
]
:
{};
return
instr
(
id
,
undefined
,
args
,
namedArgs
);
}
export
function
objectInstruction
(
id
,
object
)
{
var
args
=
arguments
.
length
>
2
&&
arguments
[
2
]
!==
undefined
?
arguments
[
2
]
:
[];
var
namedArgs
=
arguments
.
length
>
3
&&
arguments
[
3
]
!==
undefined
?
arguments
[
3
]
:
{};
return
instr
(
id
,
object
,
args
,
namedArgs
);
}
/**
* Decorators
*/
export
function
withLoc
(
n
,
end
,
start
)
{
var
loc
=
{
start
:
start
,
end
:
end
};
n
.
loc
=
loc
;
return
n
;
}
export
function
withRaw
(
n
,
raw
)
{
n
.
raw
=
raw
;
return
n
;
}
export
function
funcParam
(
valtype
,
id
)
{
return
{
id
:
id
,
valtype
:
valtype
};
}
export
function
indexLiteral
(
value
)
{
// $FlowIgnore
var
x
=
numberLiteralFromRaw
(
value
,
"u32"
);
return
x
;
}
export
function
memIndexLiteral
(
value
)
{
// $FlowIgnore
var
x
=
numberLiteralFromRaw
(
value
,
"u32"
);
return
x
;
}
Event Timeline
Log In to Comment