diff options
Diffstat (limited to 'web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt')
-rw-r--r-- | web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt b/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt new file mode 100644 index 000000000..7b79f9324 --- /dev/null +++ b/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_operator.txt @@ -0,0 +1,68 @@ +Operators + +The operators of JSX are the same to those in JavaScript (ECMA-262 3rd edition) except for the following changes. + +types of the operands accepted by the operators are more restrictive +logical operators (&& ||) return boolean +binary ?: operator has been introduced (to cover the use of || in JavaScript to return non-boolean values) +introduction of the as operator +delete is a statement instead of an operator +The table below lists the operators supported by JSX. + +Table 1. List of Operators by Precedence +Operator Returned Type Operand Type(s) +(x)[1] typeof x +func(...) return type of the function +obj.prop typeof obj.prop obj: any object type +array[index] Nullable.<T> array: Array.<T> +index: number +map[key] Nullable.<T> map: Map.<T> +key: string +x++ +x-- typeof x number or int +obj instanceof type boolean obj: any object type +type: a Class, Interface, or Mixin +x as type[2] +x as __noconvert__ type[3] type +++x +--x typeof x number or int ++x +-x typeof x number or int +~x int number or int +! x boolean any +typeof x string variant +x * y +x % y number or int[4] number or int +x / y number number or int +x + y +x - y number or int[4] number or int +x + y string string +x << y +x >> y +x >>> y int number or int +x < y +x<= y +x > y +x >= y boolean number, int, string[5] +x in y boolean x: string +y: Map.<T> +x == y +x != y boolean any except variant[5] +x & y int number or int +x ^ y int number or int +x | y int number or int +x && y boolean any +x || y boolean any +x ? y : z typeof y any[6] +x ?: y typeof x any[5] +x = y typeof x any[7] +x op[8]= y typeof x same as op +x, y typeof y any +grouping operator +cast operator +cast operator (without run-time type check) +int is returned if both operands are int +types of x and y should be equal, or either should be convertible to the other +types of y and z should be equal, or either should be convertible to the other +type of y should be convertible to type of x +any of: * / % + - << >> >>> & ^ | |