2015-01-22 15:21:02 +00:00
truncate _constants : {
options = {
features : "ASTREL"
} ;
input : {
function chunkData ( ) {
var x = "very long string, very long string, very long string, very long string, very long string, very long string, very long string, very long string, very long string, very long string, very long string, very long string" ;
}
}
expect : {
' {
"query" : [
2015-01-26 16:10:36 +00:00
{ "a" : 0 , "b" : 1 , "f2" : ":VarDef[1]" }
2015-01-22 15:21:02 +00:00
] ,
"assign" : [
{ "v" : 0 , "inf" : "x" } ,
2015-01-26 16:10:36 +00:00
{ "v" : 1 , "giv" : "!String!very%20long%20string%2C%20very%20long%20string%2C%20very%20long%20string%2C%20very%20long%20" }
2015-01-22 15:21:02 +00:00
]
} '
}
}
escape _constants : {
options = {
features : "ASTREL"
} ;
input : {
function chunkData ( ) {
var x = '"quoted text"' ;
}
}
expect : {
' {
"query" : [
2015-01-26 16:10:36 +00:00
{ "a" : 0 , "b" : 1 , "f2" : ":VarDef[1]" }
2015-01-22 15:21:02 +00:00
] ,
"assign" : [
{ "v" : 0 , "inf" : "x" } ,
2015-01-26 16:10:36 +00:00
{ "v" : 1 , "giv" : "!String!%22quoted%20text%22" }
2015-01-22 15:21:02 +00:00
]
} '
}
}
var _scope : {
options = {
features : "ASTREL"
} ;
input : {
function chunkData ( ) {
var a = 1 ;
var b = 2 ;
var x = a + b ;
x = a + b ;
}
}
expect : {
' {
"query" : [
2015-01-26 16:10:36 +00:00
{ "a" : 0 , "b" : 1 , "f2" : ":VarDef[1]" } ,
{ "a" : 2 , "b" : 3 , "f2" : ":VarDef[1]" } ,
{ "a" : 4 , "b" : 0 , "f2" : ":VarDef[1]Binary+[0]" } ,
{ "a" : 4 , "b" : 2 , "f2" : ":VarDef[1]Binary+[1]" } ,
{ "a" : 0 , "b" : 2 , "f2" : ":Binary+[1]" } ,
{ "a" : 4 , "b" : 0 , "f2" : ":Assign=[1]Binary+[0]" } ,
{ "a" : 4 , "b" : 2 , "f2" : ":Assign=[1]Binary+[1]" }
2015-01-22 15:21:02 +00:00
] ,
"assign" : [
{ "v" : 0 , "inf" : "a" } ,
2015-01-26 16:10:36 +00:00
{ "v" : 1 , "giv" : "!Number!1" } ,
2015-01-22 15:21:02 +00:00
{ "v" : 2 , "inf" : "b" } ,
2015-01-26 16:10:36 +00:00
{ "v" : 3 , "giv" : "!Number!2" } ,
2015-01-22 15:21:02 +00:00
{ "v" : 4 , "inf" : "x" }
]
} '
}
}
this _scope : {
options = {
features : "ASTREL"
} ;
input : {
function chunkData ( a ) {
this . x = a ;
}
function chunkData2 ( a ) {
this . x = a ;
}
}
expect : {
' {
"query" : [
2015-01-26 16:10:36 +00:00
{ "a" : 0 , "b" : 1 , "f2" : ":Assign=[1]" } ,
{ "a" : 2 , "b" : 1 , "f2" : "Dot[0]:Assign=[1]" } ,
{ "a" : 0 , "b" : 3 , "f2" : ":Assign=[1]" } ,
{ "a" : 2 , "b" : 3 , "f2" : "Dot[0]:Assign=[1]" }
2015-01-22 15:21:02 +00:00
] ,
"assign" : [
{ "v" : 0 , "giv" : "x" } ,
{ "v" : 1 , "inf" : "a" } ,
{ "v" : 2 , "giv" : "this" } ,
{ "v" : 3 , "inf" : "a" }
]
} '
}
}
this _is _given : {
options = {
features : "ASTREL"
} ;
input : {
function chunkData ( a ) {
this . x = a ;
}
}
expect : {
' {
"query" : [
2015-01-26 16:10:36 +00:00
{ "a" : 0 , "b" : 1 , "f2" : ":Assign=[1]" } ,
{ "a" : 2 , "b" : 1 , "f2" : "Dot[0]:Assign=[1]" }
2015-01-22 15:21:02 +00:00
] ,
"assign" : [
{ "v" : 0 , "giv" : "x" } ,
{ "v" : 1 , "inf" : "a" } ,
{ "v" : 2 , "giv" : "this" }
]
} '
}
}
this _attr _scope : {
options = {
features : "ASTREL"
} ;
input : {
function chunkData ( a , b ) {
this . x = a ;
this . x = b ;
}
}
expect : {
' {
"query" : [
2015-01-26 16:10:36 +00:00
{ "a" : 0 , "b" : 1 , "f2" : ":Assign=[1]" } ,
{ "a" : 2 , "b" : 1 , "f2" : "Dot[0]:Assign=[1]" } ,
{ "a" : 0 , "b" : 3 , "f2" : ":Assign=[1]" } ,
{ "a" : 2 , "b" : 3 , "f2" : "Dot[0]:Assign=[1]" }
2015-01-22 15:21:02 +00:00
] ,
"assign" : [
{ "v" : 0 , "giv" : "x" } ,
{ "v" : 1 , "inf" : "a" } ,
{ "v" : 2 , "giv" : "this" } ,
{ "v" : 3 , "inf" : "b" }
]
} '
}
}
bool _const _type : {
options = {
features : "FNAMES"
} ;
input : {
function chunkData ( ) {
var x = true ;
}
}
expect : {
' {
"query" : [
{ "a" : 0 , "b" : 1 , "f2" : "FNDECL" }
] ,
"assign" : [
{ "v" : 0 , "giv" : "chunkData" } ,
{ "v" : 1 , "inf" : "x" }
]
} '
}
}
handles _toString _call : {
options = {
features : "FNAMES"
} ;
input : {
function chunkData ( ) {
var x = true ;
x . toString ( ) ;
}
}
expect : {
' {
"query" : [
{ "a" : 0 , "b" : 1 , "f2" : "FNDECL" }
] ,
"assign" : [
{ "v" : 0 , "giv" : "chunkData" } ,
{ "v" : 1 , "inf" : "x" }
]
} '
}
}
escape _backslash : {
options = {
features : "FNAMES"
} ;
input : {
function chunkData ( x ) {
x . replace ( /\s/g , "a" ) ;
}
}
expect : {
' {
"query" : [
{ "a" : 0 , "b" : 1 , "f2" : "FNPAR" }
] ,
"assign" : [
{ "v" : 0 , "giv" : "chunkData" } ,
{ "v" : 1 , "inf" : "x" }
]
} '
}
}
func _no _duplicates : {
options = {
features : "ASTREL"
} ;
input : {
function chunkData ( ) {
var a = new chunkData ( ) ;
a = new chunkData ( ) ;
}
}
expect : {
' {
"query" : [
2015-01-26 16:10:36 +00:00
{ "a" : 0 , "b" : 1 , "f2" : ":VarDef[1]New[0]" } ,
{ "a" : 0 , "b" : 1 , "f2" : ":Assign=[1]New[0]" }
2015-01-22 15:21:02 +00:00
] ,
"assign" : [
{ "v" : 0 , "inf" : "a" } ,
{ "v" : 1 , "giv" : "chunkData" }
]
} '
}
}
func _allow _different _features _duplicates : {
options = {
features : "ASTREL"
} ;
input : {
function chunkData ( x ) {
x . foo ( 42 , 42 , 42 , 42 ) ;
return 42 ;
}
}
expect : {
' {
"query" : [
2015-01-26 16:10:36 +00:00
{ "a" : 0 , "b" : 1 , "f2" : ":Dot[0]" } ,
{ "a" : 0 , "b" : 2 , "f2" : "Dot[0]:Call[1]" } ,
{ "a" : 0 , "b" : 2 , "f2" : "Dot[0]:Call[2]" } ,
{ "a" : 0 , "b" : 2 , "f2" : "Dot[0]:Call[3]" } ,
{ "a" : 0 , "b" : 2 , "f2" : "Dot[0]:Call[4]" }
2015-01-22 15:21:02 +00:00
] ,
"assign" : [
{ "v" : 0 , "inf" : "x" } ,
{ "v" : 1 , "giv" : "foo" } ,
2015-01-26 16:10:36 +00:00
{ "v" : 2 , "giv" : "!Number!42" }
2015-01-22 15:21:02 +00:00
]
} '
}
}
method _name _fixed : {
input : {
function chunkData ( x ) {
x . foo ( ) ;
bar ( ) ;
}
}
expect : {
' {
"query" : [
2015-01-26 16:10:36 +00:00
{ "a" : 0 , "b" : 1 , "f2" : ":Dot[0]" } ,
2015-01-22 15:21:02 +00:00
{ "a" : 2 , "b" : 0 , "f2" : "FNPAR" }
] ,
"assign" : [
{ "v" : 0 , "inf" : "x" } ,
{ "v" : 1 , "giv" : "foo" } ,
{ "v" : 2 , "giv" : "chunkData" }
]
} '
}
}