// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: Presence of reserved words in string literal are allowed
es5id: 8.4_A11
description: Create string variable, thet include all reserved words
---*/

//////////////////////////////////////////////////////////////////////////////
//CHECK#1
var __delete=" break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof ";
//
//////////////////////////////////////////////////////////////////////////////
