From be1c7e50e1e8809ea56f2c9d472eccd8ffd73a97 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 04:57:58 +0200 Subject: Adding upstream version 1.44.3. Signed-off-by: Daniel Baumann --- .../misc/oktavia/testdata/jsx_typeconversion.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt (limited to 'web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt') diff --git a/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt b/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt new file mode 100644 index 00000000..ec138bb3 --- /dev/null +++ b/web/server/h2o/libh2o/misc/oktavia/testdata/jsx_typeconversion.txt @@ -0,0 +1,40 @@ +Documents > Type Conversion +Type Conversion + +The as operator is used for: conversion between primitive types (including Nullable and variant), down-casting of object types. + +The conversion rules between primitive types are defined as follows. If the source type is a Nullable type and if the value is null, a run-time exception is raised under debug builds. The behavior is unspecified for release builds. + +The result of conversion from a variant type depends on the result of the typeof operator applied to the variant. + +Down-casting of an object type returns a reference to the casted object if successful, otherwise null. + +Table 1. Conversion between the Primitive Types using the As Operator +Source Type Destination Type Result +boolean number 0 if false, 1 if true +boolean int same as above +boolean string "false" if false, "true" if true +number boolean false if 0 or NaN, otherwise true +number int fractional part is removed, becomes 0 if NaN, may get rounded to between -231 and 231-1 +number string converted to string representation +int boolean false if 0, otherwise true +int number converted to number of same value +int string converted to string representation +string boolean false if the string is empty, otherwise true +string number 0 if the string is empty, a number if the string can be parsed as a string, otherwise NaN +string int equivalent to: as number as int +Table 2. Conversion from Variant using the As Operator +Result of typeof(variant) Destination Type Result +"undefined" boolean false +"undefined" number NaN +"undefined" int 0 +"undefined" string "undefined" +"null" boolean false +"null" number 0 +"null" int 0 +"null" string "null" +"boolean" any primitive type equivalent to the result of: boolean as type +"number" any primitive type equivalent to the result of: number as type +"string" any primitive type equivalent to the result of: string as type +"object" any primitive type depends on the actual type of the value +"object" any object type reference to the object if the value is an object of the specified type, otherwise null -- cgit v1.2.3