0N/Avar key;
0N/Avar count;
0N/A
0N/Aprint(count);
0N/A
0N/Aswitch (count) {
0N/A // engine only
0N/A case 1:
0N/A if (key != 'value in engine') {
0N/A throw "unexpected engine scope value";
0N/A }
0N/A if (context.getAttribute("key", context.GLOBAL_SCOPE ) != null) {
0N/A throw "unexpected global scope value";
0N/A }
0N/A break;
0N/A
0N/A // both scopes
0N/A case 2:
0N/A if (key != 'value in engine') {
0N/A throw "unexpected engine scope value";
0N/A }
0N/A if (context.getAttribute("key", context.GLOBAL_SCOPE ) !=
0N/A "value in global") {
0N/A throw "unexpected global scope value";
0N/A }
0N/A break;
0N/A
0N/A // global only
0N/A case 3:
0N/A if (key != 'value in global') {
0N/A throw "unexpected global scope value";
0N/A }
0N/A if (context.getAttribute("key", context.GLOBAL_SCOPE ) !=
0N/A "value in global") {
0N/A throw "unexpected global scope value";
0N/A }
0N/A break;
0N/A
0N/A default:
0N/A throw "unexpected count";
0N/A break;
0N/A}